Usando la API de Twitter4j en java

27/Abr/2010 Java 18 Comentarios

Hola nuevamente acá estoy posteando de nuevo cómo cambiar el estado de Twitter con java gracias a la API Twitter4J.

Primeramente tenemos que tener descargarnos la API Twitter4J 2.1.2 del siguiente link…

http://twitter4j.org/en/twitter4j-2.1.2.zip

Ya descargada la añadimos a nuestro IDE en mi caso uso Netbeans:

  1. Botón derecho sobre “libraries (Librerías)”
  2. ADD jar/folder (Agregar)
  3. Seleccionamos el archivo que descargamos anteriormente del link antes mencionado

Y listo ya tenemos acceso a la API Twitter4J de twitter…

Comenzaremos creando nuestra clase base llamada TwitterJ.java y hacemos las importaciones correspondientes

  1. import java.util.List;
  2. import twitter4j.*;

Ahora creamos un atributo privado del tipo Twitter llamado mi_twitter

  1. private Twitter mi_twier;

Siguiendo creamos nuestro honorable constructor de la siguiente manera

  1. public TwitterJ(String userName, String password) {
  2. try {
  3. mi_twitter = new Twitter(userName, password);
  4. mi_twitter.verifyCredentials();
  5. } catch (TwitterException ex) {            
  6. System.out.println("Error: "+ex.getMessage());
  7. }    
  8. }

Información Constructor:

  • Dos parámetros String que contendran usuario-password respectivamente
  • Creación de objeto con los datos ingresados como parámetros (usuario,password)
  • Verificación de credenciales (si los datos ingresados son correctos)

Ahora crearemos el método que nos dará un nuevo tweet ó cambiará el estado

  1. public void nuevoTweet(String tweet) {
  2.  
  3. try {
  4. this.mi_twitter.update(tweet);
  5. } catch (Exception ex) {
  6. System.out.println("Error: " + ex.getMessage());
  7. }
  8. }

Información método nuevoTweet(String tweet):

  • String tweet será el nuevo estado que enviaremos
  • llamamos al método update de la clase Twitter y le damos de parámetro lo ingresado en el argumento de método creado

Ahora crearemos el método que nos devolverá nuestro actual estado

  1. public String getEstado(){
  2. String estadoActual = "";
  3.  
  4. try {
  5. List<Status> statusList = mi_twitter.getUserTimeline();
  6. estadoActual = String.valueOf(statusList.get(0).getText());
  7. } catch (TwitterException ex) {
  8. System.out.println("Error:"+ex.getMessage());
  9. }
  10.  
  11. return "Mi Estado es: "+estadoActual;
  12. }

Información método getEstado( ):

  • creamos una variable que contendrá el estado
  • creamos un List que contendrá lo que venga del método de la clase Twitter ( getUserTimeLine )
  • nuestra variable antes creada tendrá el valor de la lista en la posición o
  • retornamos nuestra variable

Ahora crearemos un método que nos devolverá la lista de contactos en twitter

  1. public void listaDeContactos() {
  2. try {
  3. List<User> friends = mi_twitter.getFriends();
  4. System.out.println("Lista de Contactos\n");
  5.  
  6. for (User f : friends) {
  7. System.out.println("Usuario: "+f.getScreenName());
  8. System.out.println("Estado: "+f.getStatusText()+"\n");
  9. }
  10. } catch (Exception e) {}
  11. }

Información método listaDeContactos():

  • Creamos un List que contendrá lo que venga del método de la clase Twitter ( getStatusText )
  • Recorrimos la lista “friends” que debería tener los amigos ó contactos
  • Vamos imprimiendo mientras se recorre el for each el USUARIO y ESTADO

La API Twitter4J consta con muchos mas métodos y cosas por el estilo, yo solo te daré la base para comenzar…  puedes hacer una gráfica mas atractiva y usar esta clase para aquello…

Bueno ahora haremos nuestro main:

  1. public static void main(String args[]){
  2. TwitterJ t = new TwitterJ("mi_user","Mi_password");
  3.  
  4. t.nuevoTweet("Ejemplo para Lineadecodigo.com");
  5. t.listaDeContactos();
  6.  
  7. System.out.println(t.getEstado());
  8. }

Información método main(String args[]):

  • Creamos la instancia a nuestra clase antes creada y a la vez pasamos sus dos argumentos ó parámetros en éste caso USUARIO,PASSWORD
  • usamos el método nuevoTweet para cambiar el estado actual pasando por parámetro el nuevo tweet
  • Llamamos a el método listaDeContactos() que debería imprimir la lista de contactos ó amigos
  • imprimimos el estado actual

Como ya ven es demasiado simple hacer un programa que funcione con Twitter…

Interfaz opcional usando la clase antes creada ( Proyecto para Netbeans )

puedes descargarla de acá : Descargar de aquí(opcional)

Vídeos sobre Java


18 comentarios en “Usando la API de Twitter4j en java”

Pablo Ruiz

Carlos

Me parece muy bien el codigo.. pero alguien me podria decir como lo puedo montar en mi servidor, que hay ke hacer? Ejecutandose con netbeans deberia funcionar? o tengo ke realizar otro procedimiento para que funcione

Pablo Ruiz

oscar

Este código está desactualizado. Ya no es funcional. La librería ha cambiado.

Pablo Ruiz

Pedro

Hola, es un excelente post explicado muy bien, lamentablemente no me ha funcionado, tal vez porque lo estoy agregando en un proyecto hecho en eclipse, cosa que no creo, lo agregre como una nueva libreria la cual nombre tweet, agrege el comprimido al proyecto y nada, ojala alguien pueda ayudarme

Pablo Ruiz

Dayana

Seguí todos los pasos para correr el ejemplo y netbeans ni siquiera me reconoce la API de twitter.

Pablo Ruiz

jorse_9

List<User> friends = mi_twitter.getFriends();

// getFriends(); no existe… o al menos no lo encuentro
el único que encuentro para obtener usuarios me devuelve solo los Id. mi_twitter.getFriendsIDc();

Necesito obtener los nombres. De mis seguidores.

Pablo Ruiz

jorse_9

List friends = mi_twitter.getFriends();

// getFriends(); no existe… o al menos no lo encuentro
el ¨nico que encuentro para obtener usuarios me devuelve solo los Id.

Necesito obtener los nombres.

Pablo Ruiz

Andres

oye, no sabes si esa api ya viene lo del Oauth para autenticacion??

Pablo Ruiz

youdy

saludos, solo tngo una duda, si yo hago eso en mi pc, como tengo que hacer para que funcione en un servidor al momento de subir mi aplicacion por ejemplo en google app engine

Pablo Ruiz

Rodrigo

Alguien sabe porque no funciona cuando cargo esto en el servidor y me aparece el siguiente mensaje

7/05/2010 11:14:54 AM twitter4j.internal.logging.CommonsLoggingLogger info
INFO: Using class twitter4j.internal.logging.CommonsLoggingLoggerFactory as logging factory.

desde mi pc si funciona pero al subirlo al servidor truena, además tiene todos los permisos de red disponibles

Pablo Ruiz

Alejandro

Hola… amigo se me ha venido a la mente una idea crees que se pueda enviar twitters cada vez que inserte datos en una tabla de artículos novedosos para que mis seguidores vean mis nuevos artículos?

Pablo Ruiz

Alejandro

pues parcialmente ya me funciono he mandado los twets a mi twitter garoalex85 comente el método de listaDeContactos y en el método nuevoTweet cambie la línea por está
this.mi_twitter.updateStatus(tweet);

aunque la lista de Contactos aun no queda Saludos…

Pablo Ruiz

Pablo Ruiz

te doy esa solución ya que me encuentro en clases… quizás después busque otra solución

Saludos!

Pablo Ruiz

Pablo Ruiz

descárgate ésta API, porque quizás cambien un poco los nombres de los métodos o cosas por el estilo :

Descárgala Twitter4J 2.0.9 de acá:
http://www.mediafire.com/?hzmc0gdrgwz

Pablo Ruiz

Alejandro

la misma que tu colocas aqui

Pablo Ruiz

Pablo Ruiz

Estás usando la API del link que dejé?

Pablo Ruiz

Alejandro

Hola muy buen documento incluso ya lo estoy implementado pero tengo dos instrucciones que no los reconoce

1.- Dentro del método listaDeContactos tiene la siguiente instrucción y me da el error mostrado aquí..

List friends = mi_twitter.getFriends(); <—-
–aparece lo siguiente
Error(41,35): method getFriends() not found in class twitter4j.Twitter

2.- en el método nuevoTweet
this.mi_twitter.update(tweet);
update me lanza el mismo error

podrian ayudarme de favor…

Pablo Ruiz

Pablo Ruiz

Me alegro que sea entendido el código, ya que son mis primeros posteos (2POST).

quizás en otra ocación explicaré otros métodos de esta misma API

de a poco iremos subiendo mas ejemplos entendibles y al estilo de siempre

el código y una opción gráfica en mi caso Netbeans!

Saludos

Pablo Ruiz

Will

Hola, esta muy bueno el artículo y muy entendible, he trabajado hace algún tiempo con esta librería, pero a veces tenía algunos problemas a la hora de entender la API jejeje… me resultó más cómodo trabajar con otra librería llamada “JTwitter”, sería bueno que también le den alguna mención :D.

Saludos 🙂

¿Algo que nos quieras comentar?

Déjanos tu comentario, no te preocupes que tu email no será publicado

*

*