如何獲取使用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。檢查我的答案在這個頁面上。 –