Raspberry generando tweets con Python

La comunicación de notificaciones por correo está muy bien, pero ¿porque no hacerse follower de nuestro sistema?. En el futuro con el Internet de las Cosas será algo normal.

Vamos a preparar el sistema para generar tweets, lo primero es tener una cuenta de Twitter para nuestro sistema. Yo he preferido que los tweets de esta cuenta sean privados, de esta forma cada follower tiene que ser autorizado para ver los tweets que publiquemos.

Una vez que tenemos cuenta Twitter, es hora de definir una aplicación. Esta definición de aplicación permitirá autenticar mediante OAuth y poder utilizar la API de Twitter.

Aquí os dejo los pasos para crear y conseguir los tokens de acceso que utilizaremos en el código Pyhton. Accedemos a https://apps.twitter.com/ y creamos nuesta aplicación:

Aquí tenemos los tokens o claves que nos hacen falta para utilizar la API. La Cosumer Key y la Consumer Secret ya están generadas, pero en la parte inferior tendremos que dar al botón de generar las token:
Ahora ya tenemos los cuatro parámetros que necesitaremos.

Configuramos el acceso que puede tener la aplicación. Evidentemente tiene que tener lectura/escritura a los tweets

Ahora vamos a la parte del sistema. Hay varias librerías en python que se pueden utilizar, pero he utilizado el camino sencillo y utilizar la que viene en la distribución, la librería Tweepy, así que la forma sencilla de instalación es:

sudo apt-get install python-tweepy

Una vez instalado, vamos a generar el primer tweet, para ello necesitaremos las claves y un pequeño código ejemplo como este:

import tweepy

consumer_key = "<<AQUI_TU_CONSUMER_KEY>>"
consumer_secret = "<<AQUI_TU_CONSUMER_SECRET>>"
access_token = "<<AQUI_TU_ACCESS_TOKEN>>"
access_token_secret = "<<AQUI_TU_ACCESS_TOKEN_SECRET>>"

auth = tweepy.OAuthHandler(consumer_key, consumer_secret)
auth.set_access_token(access_token, access_token_secret)

api = tweepy.API(auth)

tweet = "Hola mundo!!!"
api.update_status(tweet)

Pues bien, ahí está el primer tweet!!!

UPDATE [05/02/2014]

Es posible que en algún momento si actualizas la librería Tweepy tengas un error de este tipo:

tweepy.error.TweepError: [{u'message': u'media_ids parameter is invalid.', u'code': 44}]

En tal caso, tienes que nombrar el parámetro en la llamada, es decir, en el ejemplo anterior cambiar esta llamada:

api.update_status(tweet)

Por esta otra:

api.update_status(status=tweet)