2012-01-17 4 views

risposta

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

qual è l'ID utente nel codice sopra? –

+4

Questo codice non ha attaccato ripetutamente all'API e potresti essere bannato superando i limiti di frequenza? – rubdottocom

+0

Questo supererà molto facilmente i limiti di velocità (dev.twitter.com/rest/public/rate-limiting). Usa getFriendsList invece di getFriendsIDs. Controlla la mia risposta su questa pagina. –

6

Questo mostrerà il nome dei follower del tuo amico.

 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

Avviso: c'è una buona probabilità che questo ti ridurrà la frequenza la prima volta che lo provi. – dranxo

+0

Non capisco perché continui a chiamare il metodo 'getFollowersIds'. È per il paging delle risposte? Quindi la risposta precedente di sandeepsharat restituirebbe solo un sottoinsieme di tutti gli amici? – 5agado

+1

@rcompton Non possiamo superare questo problema di limite? – TheLittleNaruto

0

Che dire qualcosa come ottenere Lista Amici? https://dev.twitter.com/docs/api/1.1/get/friends/list

Secondo la documentazione:

restituisce un insieme cursored di oggetti utente per ogni utente l'utente specificato sta seguendo (altrimenti noto come i loro "amici").

C'è un'interfaccia per questo twitter4j.api, ma non riesco a capire come usarlo:

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

Hai solo bisogno di fare questo:

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

Qui gli utenti sono un elenco di utenti che sono i tuoi amici (li stai seguendo). mTwitterApp.getUserID() è l'utente di accesso che è un valore lungo.

+1

questo elencherà solo i primi 5000 utenti, dato che il valore del cursore è -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)); 
     } 

vi fornirà una lista di 20 amici, come il limite predefinito è 20

0

Questo codice funziona! (senza superare i limiti di velocità). Riferito twitter4j documentation e altre risposte su 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

È possibile utilizzare

twitter.getFollowersIDs("username", cursor); 

http://twitter4j.org/javadoc/twitter4j/api/FriendsFollowersResources.html#getFollowersIDs-java.lang.String-long- che restituisce solo 5000 non all'utente tutti gli utenti. Inoltre è limitata a 15 volte in 15 minuti. (https://dev.twitter.com/rest/reference/get/friends/ids)

Inoltre, è possibile utilizzare,

twitter.getFollowersList("username", cursor); 

http://twitter4j.org/javadoc/twitter4j/api/FriendsFollowersResources.html#getFollowersList-java.lang.String-long- che è anche limitata con 20 utenti. Inoltre è limitato 15 volte in 15 minuti per l'autenticazione dell'utente, 30 volte in 15 minuti per l'autenticazione app (https://dev.twitter.com/rest/reference/get/friends/list)

Per l'accesso illimitato, è possibile guardare https://gnip.com/ o l'accesso utente autorizzato di Twitter.