2012-01-17 14 views

Respuesta

2
long lCursor = -1; 
IDs friendsIDs = twitter.getFriendsIDs(userID, lCursor); 
System.out.println(twitter.showUser(userID).getName()); 
System.out.println("=========================="); 
do 
{ 
    for (long i : friendsIDs.getIDs()) 
    { 
     System.out.println("follower ID #" + i); 
     System.out.println(twitter.showUser(i).getName()); 
    } 
}while(friendsIDs.hasNext()); 
+0

¿qué es ID de usuario en el código anterior? –

+4

¿Este código no atacó repetidamente a la API y es posible que se te prohíba superar los límites de velocidad? – rubdottocom

+0

Esto excederá los límites de frecuencia muy fácilmente (dev.twitter.com/rest/public/rate-limiting). Use getFriendsList en lugar de getFriendsID. Verifique mi respuesta en esta página. –

6

Esto mostrará el nombre de los seguidores de tu amigo.

 User u1 = null ; 
     long cursor = -1; 
     IDs ids; 
     System.out.println("Listing followers's ids."); 
     do { 
       ids = twitter.getFollowersIDs("username", cursor); 
      for (long id : ids.getIDs()) { 
       System.out.println(id); 
       User user = twitter.showUser(id); 
       System.out.println(user.getName()); 
      } 
     } while ((cursor = ids.getNextCursor()) != 0); 
+0

Advertencia: hay una buena posibilidad de que esto te haga obtener una tasa limitada la primera vez que lo intentes. – dranxo

+0

No entiendo por qué sigues llamando al método 'getFollowersIds'. ¿Es para la paginación de las respuestas? ¿Entonces la respuesta anterior de sandeepsharat devolvería solo un subconjunto de todos los amigos? – 5agado

+1

@rcompton ¿No podemos superar este problema de límite? – TheLittleNaruto

0

¿Qué pasa algo así obtener la lista de amigos? https://dev.twitter.com/docs/api/1.1/get/friends/list

De acuerdo con los documentos:

devuelve una colección de objetos de usuario cursored para todos los usuarios del usuario especificado está siguiendo (también conocido como sus "amigos").

Existe una interfaz para esto en twitter4j.api, pero no puedo encontrar la manera de usarlo:

PagableResponseList<User> getFriendsList(String screenName, long cursor) throws TwitterException; 
3

Sólo necesita hacer esto:

Twitter twitter = mTwitterApp.getTwitterInstance(); 
long cursor = -1; 
List<User> users=twitter.getFriendsList(mTwitterApp.getUserID(), cursor); 

Aquí los usuarios son una lista de usuarios que son tus amigos (los estás siguiendo). mTwitterApp.getUserID() es su usuario de inicio de sesión, que es un valor largo.

+1

esto solo mostrará los primeros 5000 usuarios, ya que el valor del cursor es -1. – cherit

1
  PagableResponseList<User> friendlist= twitter.getFriendsList(user.getScreenName(), -1); 

     int sizeoffreindlist= friendlist.size(); 

     for(int i=0;i<sizeoffreindlist;i++) 
     { 
      System.out.println(friendlist.get(i)); 
     } 

que le proporcionará una lista de 20 amigos como el límite por defecto es 20

0

Este código funciona! (sin exceder los límites de velocidad). Referido twitter4j documentation y otras respuestas en StackOverflow.

try { 
      // get friends 
      long cursor = -1; 
      PagableResponseList<User> pagableFollowings; 
      do { 
       pagableFollowings = twitter.getFriendsList(twitter.getId(), cursor); 
       for (User user : pagableFollowings) { 
        listFriends.add(user); // ArrayList<User> 
       } 
      } while ((cursor = pagableFollowings.getNextCursor()) != 0); 

      // get followers 
      cursor = -1; 
      PagableResponseList<User> pagableFollowers; 
      do { 
       pagableFollowers = twitter.getFollowersList(twitter.getId(), cursor); 
       for (User user : pagableFollowers) { 
        listFollowers.add(user); // ArrayList<User> 
       } 
      } while ((cursor = pagableFollowers.getNextCursor()) != 0); 

     } catch (TwitterException e) { 
      printError(e); 
     } 
0

Puede utilizar

twitter.getFollowersIDs("username", cursor); 

http://twitter4j.org/javadoc/twitter4j/api/FriendsFollowersResources.html#getFollowersIDs-java.lang.String-long- que devuelve sólo 5000 no todos los usuarios de usuario. También está limitado a 15 veces en 15 minutos. (https://dev.twitter.com/rest/reference/get/friends/ids)

Además, se puede usar,

twitter.getFollowersList("username", cursor); 

http://twitter4j.org/javadoc/twitter4j/api/FriendsFollowersResources.html#getFollowersList-java.lang.String-long- que también está limitado con 20 usuario. También está limitado 15 veces en 15 minutos para la autenticación del usuario, 30 veces en 15 minutos para la aplicación auth (https://dev.twitter.com/rest/reference/get/friends/list)

Para obtener acceso ilimitado, puede consultar https://gnip.com/ o el acceso de usuario de la lista blanca de Twitter.

Cuestiones relacionadas