2012-01-17 76 views

回答

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

以上代碼中的userID是什麼? –

+4

這段代碼沒有反覆攻擊API,您可能會被超出限制速度禁止? – rubdottocom

+0

這將非常容易地超出速率限制(dev.twitter.com/rest/public/rate-limiting)。使用getFriendsList而不是getFriendsIDs。檢查我的答案在這個頁面上。 –

6

這將顯示你的朋友的追隨者的名字。

 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

警告:這很有可能會讓您在第一次嘗試時受到限制。 – dranxo

+0

我不明白你爲什麼要繼續調用'getFollowersIds'方法。是否用於尋呼響應? 那麼sandeepsharat的回答只會返回所有朋友的一個子集? – 5agado

+1

@rcompton我們不能克服這個限制問題嗎? – TheLittleNaruto

0

什麼像得到好友列表? https://dev.twitter.com/docs/api/1.1/get/friends/list

根據文檔:

返回用戶對象的集合光標指示爲 指定的用戶以下每個用戶(或稱爲自己的「朋友」)。

有一個在twitter4j.api這個接口,但我無法弄清楚如何使用它:

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

你只需要做到這一點:

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

這裏的用戶是一個列表用戶誰是你的朋友(你正在關注他們)。 mTwitterApp.getUserID()是您的登錄useris,它是一個長整型值。

+1

這將僅列出前5000個用戶,因爲遊標值爲-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)); 
     } 

它會爲您提供的20個朋友列表作爲默認限制爲20

0

此代碼的工作!(不超過費率限制)。推薦twitter4j documentation和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

您可以使用

twitter.getFollowersIDs("username", cursor); 

http://twitter4j.org/javadoc/twitter4j/api/FriendsFollowersResources.html#getFollowersIDs-java.lang.String-long- 僅返回5000的用戶不是所有用戶。還它在15分鐘內限定的15倍。(https://dev.twitter.com/rest/reference/get/friends/ids

此外,還可以使用,

twitter.getFollowersList("username", cursor); 

http://twitter4j.org/javadoc/twitter4j/api/FriendsFollowersResources.html#getFollowersList-java.lang.String-long-其也與20個用戶的限制。此外,在15分鐘內用戶認證限制15次,應用認證在15分鐘內限制30次(https://dev.twitter.com/rest/reference/get/friends/list

對於無限制訪問,您可以查看https://gnip.com/或白名單用戶訪問twitter。