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.

