Seleccionar página

En uno de nuestros proyectos de Turismo Rural, hemos tenido que integrar Twitter en la aplicación web y para ello hemos empleado la API Twitter4J.

Primero deberemos registrar la aplicación en la sección de desarrollo de Twitter, es decir en http://dev.twitter.com:

twitter_1

Creamos el registro de la aplicación:

twitter_4

Ahora ya disponemos de los datos para poder trabajar con Twitter4J (token y tokenSecret):

twitter_6

El proyecto requiere de las librerías que se incluyen en el proyecto Twitter4J y además las librerías de commons-logging o las de SL4J.

A continuación, mostramos parte de la clase para acceder a Tiwitter:

package es.neodoo.twitter;

import java.util.List;

import twitter4j.AccountTotals;
import twitter4j.DirectMessage;
import twitter4j.Paging;
import twitter4j.Query;
import twitter4j.QueryResult;
import twitter4j.ResponseList;
import twitter4j.Tweet;
import twitter4j.Twitter;
import twitter4j.TwitterException;
import twitter4j.TwitterFactory;
import twitter4j.auth.AccessToken;

public class TwitterService {

	private Twitter twitter;

	public TwitterService(String token, String tokenSecret) {

		TwitterFactory factory = new TwitterFactory();
		AccessToken accessToken = new AccessToken(token,
                                                          tokenSecret);
		this.twitter = factory.getInstance(accessToken);

	}

	public List searchTweets(String query) throws TwitterException {

		QueryResult result = twitter.search(new Query(query));
		List tweets = result.getTweets();

		return tweets;

	}

}

Y la clase principal para probarlo:

package es.neodoo.twitter;

import java.util.Date;
import java.util.List;

import twitter4j.AccountTotals;
import twitter4j.DirectMessage;
import twitter4j.GeoLocation;
import twitter4j.Place;
import twitter4j.Tweet;
import twitter4j.TwitterException;

public class TwitterMain {

	/**
	 * @param args
	 */
	public static void main(String[] args) {

		String token = "277181746-i5plkIhZlZfszXdNnVFtZ2X8fB2duyBn79eDHTUM";
		String tokenSecret = "yGVTgEBNwCbMtGkbi2Qz1dR51mZLsKzPmJJOUUrYvDU";

		TwitterService ts = new TwitterService(token, tokenSecret);
		List tweets;

		try {

			tweets = ts.searchTweets("ruralbook");

			for (Tweet tweet : tweets) {

				// System.out.println("@" + tweet.getFromUser() + " - "
				// + tweet.getText());

				System.out.print("!!! Twit !!! ");

				Date createdAt = tweet.getCreatedAt();
				String user = tweet.getFromUser();
				long userId = tweet.getFromUserId();

				double latitud = -1, longitud = -1;
				try {
					GeoLocation geoLocation = tweet.getGeoLocation();
					latitud = geoLocation.getLatitude();
					longitud = geoLocation.getLongitude();
				} catch (Exception e) {
				}

				long id = tweet.getId();
				String isoLanguageCode = tweet.getIsoLanguageCode();
				String location = tweet.getLocation();

				Place place = tweet.getPlace();

				Place[] containedWithIn = null;
				String country = null;
				String url = null;
				String fullName = null;
				GeoLocation[][] boundingBoxCoordinates = null;
				String geometryType = null;
				String idPlace = null;
				String name = null;
				String placeType = null;
				String streetAddress = null;
				String urlPlace = null;

				try {
					containedWithIn = place.getContainedWithIn();
					country = place.getCountry();
					url = place.getCountryCode();
					fullName = place.getFullName();
					boundingBoxCoordinates = place.getBoundingBoxCoordinates();
					geometryType = place.getGeometryType();
					idPlace = place.getId();
					name = place.getName();
					placeType = place.getPlaceType();
					streetAddress = place.getStreetAddress();
					urlPlace = place.getURL();
				} catch (Exception e) {
				}

				String profileImageUrl = tweet.getProfileImageUrl();
				String text = tweet.getText();
				String source = tweet.getSource();
				String toUser = tweet.getToUser();
				long toUserId = tweet.getToUserId();

				System.out.println("createdAt: " + createdAt + ", " + "user: "
						+ user + "," + "userId: " + userId + "," + "latitud: "
						+ latitud + "," + "longitud: " + longitud + ","
						+ "id: " + id + "," + "isoLanguageCode: "
						+ isoLanguageCode + "," + "location: " + location + ","
						+ "place: " + place + "," + "containedWithIn: "
						+ containedWithIn + "," + "country: " + country + ","
						+ "url: " + url + "," + "fullName: " + fullName + ","
						+ "boundingBoxCoordinates: " + boundingBoxCoordinates
						+ "," + "geometryType: " + geometryType + ","
						+ "idPlace: " + idPlace + "," + "name: " + name + ","
						+ "placeType: " + placeType + "," + "streetAddress: "
						+ streetAddress + "," + "urlPlace: " + urlPlace + ","
						+ "profileImageUrl: " + profileImageUrl + ","
						+ "text: " + text + "," + "source: " + source + ","
						+ "toUser: " + toUser + "," + "toUserId: " + toUserId);

			}

		} catch (TwitterException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}

	}
}

Fijaros que las cadenas token y tokenSecret deben coincidir con las que se generan al inscribir la aplicación en el twitter.

Existe una forma adicional en la que se piden los parámetros Access Token y Access Token Secret pero no lo contemplamos en este apartado.

Este sitio web utiliza cookies para que usted tenga la mejor experiencia de usuario. Si continúa navegando está dando su consentimiento para la aceptación de las mencionadas cookies y la aceptación de nuestra política de cookies, pinche el enlace para mayor información.plugin cookies

ACEPTAR
Aviso de cookies