Usar Twitter desde Java con twitter4j

Escrito por el .
java planeta-codigo programacion
Enlace permanente Comentarios

Java

Twitter ofrece una API para realizar las mismas acciones que como usuarios hacemos con su cliente web, desde publicar tweets, hacer retweets, enviar mensajes directos, leer timelines, … Con la API REST de twitter podemos desde un programa de forma automatizada realizar cualquiera de las anteriores acciones. Por ejemplo, en Blog Stack cada vez que agrega un artículo de cualquiera de las fuentes se publica un tweet con el título del artículo y el enlace al mismo en la cuenta de Twitter de Blog Stack. En este artículo mostraré como desde lenguaje de programación Java podemos usar la API de Twitter para realizar las acciones que deseemos con la librería twitter4j.

twitter4j nos ofrece una API Java para acceder a la API REST de Twitter de forma más cómoda. Primeramente deberemos crear y registrar una aplicación, esto nos proporcionará varios datos que identificarán a la aplicación y tokens privados para que solo nuestra aplicación en nuestra cuenta pueda realizar las acciones, básicamente son unos datos para autenticar al cliente. La creación de la aplicación se realiza desde la [sección de desarrolladores de twitter] (https://apps.twitter.com/), también veremos las aplicaciones con acceso a la cuenta.

Twitter Apps

Twitter Apps

Un a vez creada la aplicación y obtenidos los tokens en la sección Keys and Access Tokens para que la aplicación tenga acceso a la cuenta podemos usar twitter4j. Para publicar un tweet usamos el siguiente código. Creamos el objeto de configuración ConfigurationBuilder en el que establecemos los datos de acceso a la API para la aplicación y la cuenta en la que se realizarán las publicaciones y posteriormente con TwitterFactory obtenemos la clase Twitter con la que realizaremos las operaciones que deseemos.

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
public class ShareServiceImpl implements ShareService {
  ...

	public ShareServiceImpl(MainService service) {
		this.service = service;

		ConfigurationBuilder cb = new ConfigurationBuilder().setOAuthConsumerKey((String) service.getConfiguration().get().get("twitter.consumerKey"))
				.setOAuthConsumerSecret((String) service.getConfiguration().get().get("twitter.consumerSecret"))
				.setOAuthAccessToken((String) service.getConfiguration().get().get("twitter.accessToken"))
				.setOAuthAccessTokenSecret((String) service.getConfiguration().get().get("twitter.accessTokenSecret"));
		TwitterFactory tf = new TwitterFactory(cb.build());
		twitter = tf.getInstance();
	}
	
	private void twitter(PostRecord post, String message) throws TwitterException {
		logger.info("Tweetting {} as «{}»", post.getId(), message);

		twitter.updateStatus(message);
	}
	
	...
}
ShareServiceImpl.java

Este ejemplo publica un tweet de solo texto pero puede incluir enlaces e imágenes o posición de geolocalización. Los tweets que publiquemos deberán respetar el límite de 140 caracteres como máximo teniendo presente que los enlaces cuentan como 22 independientemente de la longitud del enlace. En la sección de ejemplos de twitter4j se puede consultar como leer el timeline de un usuario, enviar mensajes directos, buscar tweets y algunas cosas más, en en javadoc de la clase Twitter están documentados los métodos para acceder a los recursos e información de la cuenta (mensajes directos, favoritos, seguidores, listas, geolocalización, búsquedas, spam, seguidores sugeridos, línea de tiempo, menciones, retweets, tendencias, tweets y usuarios).

Tener acceso de escritura en la aplicación requiere que introduzcamos nuestro número de teléfono cosa que desde la web no se puede realizar en ciertos países, pero podemos añadir el número de teléfono desde el cliente de Twitter para el móvil, en el siguiente enlace se comenta un rodeo para insertar el teléfono móvil.

Teniendo a nuestra disposición la API de Twitter en nuestra aplicación solo nos queda darle un uso útil.


Comparte el artículo: