Un poco de Twitter4J (Twitter + Java)

Twitter4J es una librería Java para manejar el Twitter API.

Es una librería NO official aunque por su sencillez, potencia y capacidades es probablmente la más usada.

Entre sus características más interesantes:

· 100% Java. Funciona con Java 5 en adelante

· No tiene dependencias, para usarla simplemente basta añadir al classpath twitter4j-core-4.0.2.jar

· Preparado para Android y Google App Engine

· Soporte OAuth

· Soporte API Streaming…

En su web hay numerosos ejemplos que nos ayudan a arrancar, veamos un ejemplo de cómo se usa.

Para empezar a trabajar lo primero que tengo que hacer es registrarme en Developers de Twitter: https://dev.twitter.com

En Documentación https://dev.twitter.com/overview/documentation iré a donde en crearé una nueva aplicación.

Una vez introducidos los datos se me habrán generado la configuración de la aplicación y los Tokens de acceso:¡ que luego necesitaré para conectar con Twitter.

Una vez hecho esto ya puedo crear mi aplicación Twitter4J:

1. Primero añadimos a nuestro proyecto Maven las dependencias (en nuestro caso la dependencia core y la dependencia para poder usar API Streaming:

2. Twitter4J tiene muchas formas de configurarse, la más sencilla es esta:

(si accedéis con proxy recordad añadir esto :)):

3. Tras esto ya podéis empezar a usar Twitter, por ejemplo para obtener la info de un usuario,publicar un tuit, buscar tuits,…

Debido a las restricciones de Twitter (API Rate Limits) os podéis encontrar con que tenéis las limitaciones de ventana temporal de 15 minutos (número de peticiones y de datos devueltos).

Los errores se informan en cabeceras (X-Rate-Limit-Limit pj) y en el body:

Twitter4J también ofrece soporte para usar el API Streaming de Twitter que permite acceder al stream global de Twitter (suscribirse a lo que pasa). Este API no tiene restricciones y permite suscribirse a streams públicos, por usuario y por site.

En su web explican las diferencias entre APIs, en el modo normal tenemos:

Mientras que con el API Streaming el funcionamiento es:

La forma de usarlo en Twitter4J es:

1. Establezco configuración:

2. Creo un TwitterStream con los patrones de búsqueda:

3. Mi Listener implementa el interfaz StatusListener, el método por el que llega el stream es el onStatus: