2012-01-17 75 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。