Usando la API de Twitter de forma simple
Puede sonar complejo para algunos, pero engancharse de Twitter es bastante simple y si encima usamos una biblioteca para NodeJS se vuelve extremadamente simple, por eso hago este post, para los que pensaban que era un despelote puedan ver lo simple y divertido que es.
Objetivo
Supongamos que queremos ver lo que sucede en Twitter y bajo un texto en un Tweet responderle alguna locura, cualquier Tweet, alguien nos dice algo exacto que esperamos y le respondemos …
Primero deberíamos conectarnos por Streaming, de esta manera estamos en “escucha” continua de lo que sucede y vamos leyendo lo que nos “dicen”, una vez que nos tuitean lo que esperamos, respondemos haciendo un tuit en modo “Respuesta”.
Creando una aplicación en Twitter Dev
Antes de meterme en tema, para engancharnos a Twitter necesitamos crear una aplicación en Twitter para que el último nos de unas claves secretas con el acceso.
Así que, entremos a dev.twitter.com y creemos una app yendo a SignIn, nos logeamos, vamos al mismo botón y hacemos click en Mis Aplicaciones.
Le damos al Create an Aplication, y llenamos toda la info (callback URL lo dejamos en blanco) y click a Crear.
Después sólo queda ingresar a la nueva app y generar las claves.
Listo!, tenemos la app creada y sus claves, ahora nos creamos un app.js en nuestro local y vamos a la parte divertida:
Escuchando la User Stream API
Para simplificar la comunicación con Twitter desde NodeJS vamos a usar la biblioteca Tuiter creada por Dan Zajdband (ahí van a encontrar más info de como usarla), pero vamos a arrancar con nuestro objetivo.
Bajamos Tuiter desde NPM en nuestro proyecto:
Y abrimos el app.js para hacer la lectura del Streaming
Tengamos en cuenta que estamos utilizando la User Stream API por lo que solo tenemos una cuenta (y una conexión a la vez) para hacer los seguimientos, la cuenta con la que creamos las claves. Si quisiéramos utilizar varias cuentas deberíamos usar la Site Stream API, pero no está abierta al público por lo que hay que pedir acceso a Twitter.
Respondiendo un Tweet
Ahora nos queda responder ese Tweet para completar nuestro objetivo, pero para poder responder necesitamos saber que usuario nos habló y que Id tiene el Tweet. Hasta ahora sabemos que en data tenemos el Tweet, este último es un JSON con la información detallada del Tweet:
Si vemos el detalle, en la propiedad id_str y user.screen_name vamos a tener el id del Tweet y el usuario que envió el Tweet respectivamente, asi que vamos a responderle implementando la función responder()
De donde saqué el “update” y los parametros?, bueno Tuiter implementa todos los metodos de la API, solo nos fijamos que “post” o “get” es el de twitter y que parametros recibe, por ejemplo: documentación del update
Para poder enviar Tweets tenes que cambiar los permisos de tu app en dev.twitter.com de Read-only a Read and Write, sino te va a tirar un error de “Prohibido”
Objetivo cumplido!, escuchamos una frase y respondemos con un tweet, y no fue nada complicado.
Dejo el Showcase de apps que están utilizando la biblioteca Tuiter, donde van a encontrar también TuiterFighter! (una pelea entre palabras que arme hace unas semanas utilizando Tuiter)
Links útiles
- Desarrolladores en Twitter
- Biblioteca Tuiter
- Docs de Streaming API
- Docs de JSON de respuesta de Twitter
- Docs para Twittear