如何获取使用Twitter4J的朋友或追随者的朋友列表?使用Twitter4J的朋友的朋友列表
使用getFriendsId()
,我只能够检索当前被认证的用户的朋友/跟随者列表。我想要的是获得已认证用户的追随者或朋友的朋友列表。
如何获取使用Twitter4J的朋友或追随者的朋友列表?使用Twitter4J的朋友的朋友列表
使用getFriendsId()
,我只能够检索当前被认证的用户的朋友/跟随者列表。我想要的是获得已认证用户的追随者或朋友的朋友列表。
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());
这将显示你的朋友的追随者的名字。
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);
警告:这很有可能会让您在第一次尝试时受到限制。 – dranxo
我不明白你为什么要继续调用'getFollowersIds'方法。是否用于寻呼响应? 那么sandeepsharat的回答只会返回所有朋友的一个子集? – 5agado
@rcompton我们不能克服这个限制问题吗? – TheLittleNaruto
什么像得到好友列表? https://dev.twitter.com/docs/api/1.1/get/friends/list
根据文档:
返回用户对象的集合光标指示为 指定的用户以下每个用户(或称为自己的“朋友”)。
有一个在twitter4j.api这个接口,但我无法弄清楚如何使用它:
PagableResponseList<User> getFriendsList(String screenName, long cursor) throws TwitterException;
你只需要做到这一点:
Twitter twitter = mTwitterApp.getTwitterInstance();
long cursor = -1;
List<User> users=twitter.getFriendsList(mTwitterApp.getUserID(), cursor);
这里的用户是一个列表用户谁是你的朋友(你正在关注他们)。 mTwitterApp.getUserID()是您的登录useris,它是一个长整型值。
这将仅列出前5000个用户,因为游标值为-1。 – cherit
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
此代码的工作!(不超过费率限制)。推荐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);
}
您可以使用
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。
以上代码中的userID是什么? –
这段代码没有反复攻击API,您可能会被超出限制速度禁止? – rubdottocom
这将非常容易地超出速率限制(dev.twitter.com/rest/public/rate-limiting)。使用getFriendsList而不是getFriendsIDs。检查我的答案在这个页面上。 –