【发布时间】:2012-02-12 02:25:26
【问题描述】:
如何使用Twitter4J获取好友或关注者的好友列表?
使用getFriendsId(),我只能检索经过身份验证的当前用户的朋友/关注者列表。我想要的是获取经过身份验证的用户的关注者或朋友的朋友列表。
【问题讨论】:
如何使用Twitter4J获取好友或关注者的好友列表?
使用getFriendsId(),我只能检索经过身份验证的当前用户的朋友/关注者列表。我想要的是获取经过身份验证的用户的关注者或朋友的朋友列表。
【问题讨论】:
这将显示您朋友的关注者的姓名。
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);
【讨论】:
getFollowersIds 方法。是为了响应的分页吗?所以 Sandeepsharat 之前的回答只会返回所有朋友的一个子集?
你只需要这样做:
Twitter twitter = mTwitterApp.getTwitterInstance();
long cursor = -1;
List<User> users=twitter.getFriendsList(mTwitterApp.getUserID(), cursor);
这里的 users 是一个列表用户,他们是你的朋友(你正在关注他们)。 mTwitterApp.getUserID() 是您的登录用户名,它是一个长值。
【讨论】:
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());
【讨论】:
此代码有效!(不超过速率限制)。参考 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/ 或推特的白名单用户访问。
【讨论】:
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 个
【讨论】:
获取好友列表之类的呢? https://dev.twitter.com/docs/api/1.1/get/friends/list
根据文档:
为每个用户返回一个用户对象的游标集合 指定的用户正在关注(也称为他们的“朋友”)。
twitter4j.api 中有这个接口,但是我不知道怎么用:
PagableResponseList<User> getFriendsList(String screenName, long cursor) throws TwitterException;
【讨论】: