Hace mucho tiempo busqué un módulo que fuese fácil y sencillo para manejar Twitter desde un script en Python. Buscando un poco encontré un par de módulos antiguos que usaban la autenticación básica ( Usuario y contraseña ) pero ya son obsoletos, pues Twitter ahora exige que esta sea por medio de OAuth; buscando más y más logré toparme con la librería perfecta llamada Tweepy.

No siendo más, explicaré cómo usarla de manera sencilla.

• Obtener Tweepy

Puede descargarse directamente desde PyPi o desde mi Dropbox.

Descargar

• Registrar la aplicación en Twitter

Primero que todo hay que ir a este enlace: https://dev.twitter.com/apps/new Quizá deba iniciar sesión.

Posteriormente procedemos a rellenar los campos necesarios para el registro de la siguiente manera:

Finalizado lo anteriormente expuesto, damos clic en “Register application ” y veremos algo así:

Dejamos la ventana abierta o guardamos los valores de Consumer key y Consumer secret, ya que posteriormente los necesitaremos.

• Conexión con la cuenta de Twitter

Como la autenticación se realiza de otra forma, la aplicación debe de ser autorizada para que pueda emplearse como cliente para nuestra cuenta de Twitter.

Crearemos un script de un sólo uso, el cual generará los datos necesarios para poder conectarnos automáticamente en el futuro a nuestra cuenta.

#!/usr/bin/env python
 
import tweepy
 
CONSUMER_KEY = 'Su Consumer Key aqui'
CONSUMER_SECRET = 'Su Consumer Secret aqui'
 
auth = tweepy.OAuthHandler(CONSUMER_KEY, CONSUMER_SECRET)
auth_url = auth.get_authorization_url()
print 'Please authorize: ' + auth_url
verifier = raw_input('PIN: ').strip()
auth.get_access_token(verifier)
 
ACCESS_KEY = auth.access_token.key
ACCESS_SECRET = auth.access_token.secret
 
print "Create keys.py..."
 
f = open('keys.py','w+')
f.write('#!/usr/bin/env python\n\n')
f.write("CONSUMER_KEY = '"+CONSUMER_KEY+"'\n")
f.write("CONSUMER_SECRET = '"+CONSUMER_SECRET+"'\n")
f.write("ACCESS_KEY = '"+ACCESS_KEY+"'\n")
f.write("ACCESS_SECRET = '"+ACCESS_SECRET+"'\n")
 
f.close()

Ejecutamos el código en nuestro sistema y al hacerlo veremos el siguiente mensaje:

Please authorize: [URL]
PIN:

Abrimos la URL en nuestro navegador y ya deberíamos ver la conexión con Twitter por medio de OAuth:

Autorizamos la aplicación y ya podemos ver el PIN que nos pide el script, el cual será necesario para autenticar la conexión entre el cliente y la cuenta de Twitter.

PIN: 3034766

Ahora bien, si observamos el contenido del archivo generado por el script ( keys.py ) encontramos lo siguiente:

#!/usr/bin/env python
 
CONSUMER_KEY = 'nXHTqgLqRQzXDuHmxxyQ'
CONSUMER_SECRET = 'OCFsNoCmFzpjJ4aH7r4UUh97hA4gohB98yW871Trc'
ACCESS_KEY = '300042811-3e5Klqr1Yb7N4pTS6gwCaDBHHie9QPcF8eU28vkk'
ACCESS_SECRET = 'OPCURWCLKJoBQgXzjih7GVpbM0JqokSrrYhzOSsN8'

• Publicar en Twitter

Ya todo está listo. La aplicación ya se ha registrado en Twitter y se conecta satisfactoriamente a nuestra cuenta.

Creamos un script sencillo…

#!/usr/bin/env python
 
from keys import *
import tweepy
 
OAuth = tweepy.OAuthHandler(CONSUMER_KEY, CONSUMER_SECRET)
OAuth.set_access_token(ACCESS_KEY, ACCESS_SECRET)
API = tweepy.API(OAuth)
Tweet = raw_input('Tweet: ')
API.update_status(Tweet)

Ejecutamos

$ python CliTweeting.py
Tweet: Saludos a todos, recuerden seguir a @DaW_Labs

¡¡Vualá!!, logramos enviar el primer Tweet desde Python…

 

Sólo queda explotar la capacidad al máximo que ofrece esta librería, espero que la disfruten.

 

Saludos.,