API do Twitter para Python

Postado por Yoshio Iwamoto em 14/10/2009

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”

  1. Rodrigo Cesar disse em 14/10/2009 as 09:29

    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.

  2. Yoshio Iwamoto disse em 14/10/2009 as 18:08

    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: ãÃéÉíÍóÓüÜ’)

  3. Rodrigo Cesar disse em 14/10/2009 as 21:20

    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.

Trackback URI | RSS dos comentários

Deixe um comentário

Av. Conselheiro Nébias, 368A, Cj. 413
Vila Mathias - Santos - SP
Telefone: (13) 3345-4580

© 2008 - 2009 Stiod. Todos os direitos reservados.