API do Twitter para Python
Hoje vou mostrar como fazer uso da API do Twitter para Python, a Python Twitter API. Sua utilização é bem simples e podemos criar vários aplicativos ou scripts para automatizar algumas tarefas no microblog, como o script que fiz no meu último post.
Instalação no Linux
Baixe o código fonte da última versão aqui.
Descompacte com o comando:
$ tar -zxvf python-twitter-XXX.tar.gz
Após descompactar entre no diretório criado e execute o seguinte comando como usuário root:
# python setup.py install
Utilização
Para utilizar a API importe o módulo twitter:
import twitter
...
As principais classes que você deve conhecer são:
twitter.Api
twitter.User
twitter.Status
twitter.DirectMessage
Para iniciar, crie uma instancia da classe twitter.Api:
import twitter api = twitter.Api()
Com este objeto você pode utilizar os métodos da API que não necessitam de autenticação do usuário. Um Exemplo é o método GetPublicTimeline, que sem parâmetros retorna as últimas 20 mensagens de status dos usuários.
import twitter api = twitter.Api() status_list = api.GetPublicTimeline() for status in status_list: print status.user.name
No exemplo anterior o status é um objeto da classe twitter.Status. A classe twitter.Status possui um atributo user que é um objeto da classe twitter.User.
Para realizar a autenticação de um usuário, instancie a classe twitter.Api, porém passando o usuário e a senha como parâmetros:
import twitter api = twitter.Api(username='joao', password='abc123')
Para enviar uma mensagem utilize o método PostUpdate:
# -*- encoding: utf-8 -*- import twitter api = twitter.Api(username='joao', password='abc123') status = api.PostUpdate('''Yohohoho! Enviei uma mensagem! Mas cuidado com os limite de 140 caracteres.''')
Repare que ele retorna o status da mensagem enviada.
Várias mensagens contínuas
Um método interessante da API é o PostUpdates, que permite que seja enviada uma mensagem com mais de 140 caracteres. A mensagem na verdade é enviada como se fosse várias mensagens com no máximo 140 caracteres.
Você também pode indicar uma string de continuação no segundo parâmetro, esta string é colocada no final das mensagens para indicar a continuação.
# -*- encoding: utf-8 -*- import twitter api = twitter.Api(username='joao', password='abc123') status = api.PostUpdates('''Yohohoho! Enviei uma mensagem bem grande! Agora você não precisa se preocupar com o tamanho da mensagem pois este método irá dividi-la para você em várias mensagens, você também pode utilizar uma string de continuação ao lado.''', '…')
Obs: Segundo a documentação da API, o Twitter remove as reticências ("...") das strings das mensagem, por isso utilize o caractere UNICODE \u2026 ("…"). Também não ultrapasse o limite dos 150 requests permitidos por hora pelo Twitter.
3 Comentário para “API do Twitter para Python”
Deixe um comentário |


Otimo post, agora eu não tou conseguindo twittar com acentos, creio que seja um problema de codificação de caracteres da linguagem, já tentei transformar para unicode mas aparece um caractere estranho ao invez da letra acentuada.
Rodrigo, se você estiver utilizando o Windows provavelmente é problema com a codificação de caracteres do editor.
Eu fiz um teste utilizando o gedit do Ubuntu (que por padrão é UTF-8) e funcionou perfeitamente. Veja o código que utilizei:
# -*- encoding: utf-8 -*-
import twitter
api = twitter.Api(username=’username’, password=’password’)
api.PostUpdate(u’Mensagem de teste: ãÃéÉíÍóÓüÜ’)
Opa valeu mas o problema era que estava pegando uma string de um arquivo, mesmo colocando o coding: utf-8 não funcionava sempre dava erro de caractere desconhecido… mas tava lendo a documentação e vi que no o twitter.Api pode ser informado o tipo de codificação twitter.Api(username=”xxxxx”,password=”xxxxx”,input_encoding=”utf-8″)
isso resolveu meu problema.