Control de amigos y followers en Twitter

Hoy en día casi todo geek que se precie tiene una (o varias) cuentas de Twitter, además de haber probado Google+, que parece haber venido para quedarse. Todos tenemos unos cuantos seguidores y otros cuantos amigos; a veces, tantos que no podemos controlarlos. No podemos saber a ciencia cierta si hace mucho tiempo que uno de nuestros amigos no escribe o si uno de nuestros queridos followers ya no lo es. ¿¿Quieres saber quién te ha hecho "unfollow"?? No, esto no es un mail de SPAM de estos que te dicen que metas tus datos de acceso del messenger para saber quién te ha “desadmitido” ;) Este post trata sobre cómo se puede hacer un sencillo script para controlar estos aspectos en Twitter.

Hablando de Python, que es donde mejor me muevo, hay unas cuantas alternativas a la hora de usar la API de Twitter para hacer nuestros “scriptcillos”. Yo he elegido Tweepy porque me ha parecido bastante fácil de usar y, además, está bastante bien documentada. Lo principal es tener claro lo que queremos:

  • No autenticarnos con ningún usuario

También hay que saber que no se pueden obtener todos los amigos o followers de una vez, sino que sólo se obtienen 100 en cada petición a la API. Para solucionar esto podemos usar los Cursors de Tweepy y con estas líneas obtendríamos todos los followers de una cuenta dada:

followersCursor = tweepy.Cursor(tweepy.api.followers,id=user)
for follower in followersCursor.items():
print follower.name

El tema de las peticiones a la API no es tontería porque están limitadas. Si no estamos autenticados sólo podremos hacer 150 peticiones a la hora, pero si estamos autenticados con OAuth podremos realizar hasta 350 cada hora. El objetivo de nuestro script es comprobar una vez al mes o, como mucho, una vez a la semana los cambios que han sufrido nuestros amigos y followers, por lo que, salvo que tengamos muchos muchos amigos (¡ouch!) y followers, no habrá problemas.

Por último, para saber si tenemos nuevos followers o, quizá más interesante, quién ha dejado de serlo, necesitamos guardar los antiguos followers en algún sitio. Yo me he decantado por guardar los diccionarios de followers en un archivo gracias al módulo shelve, ya que la recuperación e inserción de datos se hace de forma muy intuitiva.

Y con esto y un bizcocho...

Así es como quedaría la salida de nuestro script. Podéis echar un vistazo al código fuente completo aquí. Por supuesto que es mejorable y seguro que tiene unos cuantos bugs y excepciones no contempladas, pero tampoco se puede pedir tanto en tan poco tiempo ;) Lo importante es que ejecutando este script de vez en cuando podemos ver rápidamente:

  • Información de una cuenta de Twitter
  • Amigos que no han actualizado su cuenta desde hace más de X días (inactivos)
  • Nuevos followers
  • Followers que hemos perdido

Espero que os sea de utilidad y que os haya despertado el gusanillo por experimentar con las distintas APIs de Twitter, es realmente fácil y rápido programar un script que se comunique con esta red social gracias a ellas. Si unís esto con algún tema de seguridad seguro que podéis sacar petróleo ;)

 
Nota: Publicado originalmente en el blog de S21sec

Actualización: Debido a la actualización de la API de Twitter este código ya no funciona. Podéis echar un vistazo a este post para descargar la nueva versión.