我试图找出给定用户的所有关注者。 我找到以下代码:
User u1 = null ;
long cursor = -1;
IDs ids;
System.out.println("Listing followers's ids.");
do {
ids = twitter.getFollowersIDs("NZ_Football", 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 :(得分:1)
光标允许将结果分解为“页面”或组或结果。如果一次获得所有结果是不可行的,这是有用的;例如,如果用户拥有数百万粉丝。
光标可以被认为是书中的页码。在请求中指定它会告诉Twitter您要返回的结果页面。但是,与页码不同,游标值是不连续的。这就是Twitter在响应中向您发送“下一个游标值”的原因:
cursor = ids.getNextCursor()
这是Twitter告诉您下一页的编号是什么,以便您可以在下一个请求中使用它来获取该页面的结果。
光标可以设置为任何值;但是,您应该注意两个保留值,-1
和0
:
-1
是起始值,它表示您希望对结果进行分页(某些API授权游标),Twitter将发送第一页结果。 0
表示Twitter没有更多页面要发送:您刚刚拥有最后一页,无需再提出任何请求。关于速率限制,如果您没有明智地管理您的请求,那么对于拥有大量粉丝的用户来说,您会遇到问题。
getFollowersIDs
API限制为最多返回5,000个结果,您只能在15分钟的窗口中发出15个这样的请求。因此,如果用户拥有超过75,000名粉丝,您需要确保以某种方式安排请求,例如每分钟提出一个请求。
更详细的信息可以在Twitter的文档中找到,具体来说,GET followers/ids
,cursoring和rate limiting。
答案 1 :(得分:-1)
@ 1。如果它是-1,则游标值是一种标志,这意味着仍然存在特定用户的一些关注者。 twitter API使用此游标机制,因为它为每个循环返回一组跟随者ID。
@ 2。是的,但你可以弄清楚这个问题。您可以创建几个Twitter帐户来生成一些新的令牌。然后,您可以实施一种在速率限制出现时更新令牌的机制。
@ 3。它返回新的跟随者ID集的游标值。据我记忆,它每回路返回50000个ID。
我希望我回复你想知道的一切。