Enviando Tweet com Python

[Migrado do LetsHack It no Tumblr]
Bom, como estou sem ideias para novos hacks, vou mostrar a vocês um jeito simples de enviar um Tweet com o Python.

Existem vários meios de autenticação para o Twitter (ou existiam), o principal é o OAuth. Outro ponto é que existem várias bibliotecas para o Python acessar a API do twitter, eu particularmente uso o Tweepy.

1º) Vamos começar baixando o Tweepy do seu repositório no Google Code:

http://code.google.com/p/tweepy/

Abrindo a página, você verá vários meios de instalar, escolha um deles, não faz diferença qual.

2º) Vamos criar um aplicativo no twitter para ter acesso a API. Abra o site https://dev.twitter.com/apps e logue com sua conta do twitter. Após isso vá em Create New Application.

image

Preencha os campos obrigatórios (com *****) (Nome, Descrição e Site), aceite os termos abaixo e redigite o Captcha.

3º) Agora a aplicação está criada, precisamos autorizar o uso da API para esta conta do Twitter. Mas antes precisamos alterar as permissões para Read/Write.

image

Clique em Settings, e abaixe a página até ver as permissões. Selecione Read and Write e clique no botão Update.

image

Volte para a aba Details e no final da página clique no botão Create My Access Token. Espere um tempo e atualize a página. Suas chaves devem estar disponíveis.

image

Anote o nome das chaves e as respectivas chaves (Tanto as Consumer quanto Access). Iremos usa-las.

4º) Vamos então fazer o programa enviar um tweet então! O programa é simples:

http://codepad.org/GDvH4Sr8

import sys
import tweepy

CONSUMER_KEY = 'Coloque aqui sua Consumer Key'
CONSUMER_SECRET = 'Coloque aqui sua Consumer Secret'
ACCESS_KEY = 'Coloque aqui sua Access Key'
ACCESS_SECRET = 'Coloque aqui sua Access Secret'

auth = tweepy.OAuthHandler(CONSUMER_KEY, CONSUMER_SECRET)
auth.set_access_token(ACCESS_KEY, ACCESS_SECRET)
api = tweepy.API(auth)
api.update_status("Teste do Lets Hack It!") #Envia o Tweet

Execute o script, e veja a sua timeline!

image

Simples não? Qualquer dúvida só perguntar!