[英]Issue using twitter4j
我试图找出给定用户的所有关注者。 我发现以下代码:
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);
这段代码对我来说很完美。 但是,我有一个问题:
光标允许将结果分为“页面”或组或结果。 当无法一次获得所有结果时,这很有用; 例如,如果用户有数百万个关注者。
可以将光标视为书中的页码。 在请求中指定它可以告诉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
, 游标和速率限制 。
@ 1。 游标值如果为-1,则是一种标志,表示特定用户仍然有一些关注者。 twitter API使用此游标机制,因为它为每个循环返回一组关注者ID。
@ 2。 是的,但是您可以解决此问题。 您可以创建多个Twitter帐户来生成一些新的令牌内容。 然后,您可以实现一种机制,只要出现速率限制,该机制就会更新令牌。
@ 3。 它返回新的跟随者ID集合的游标值。 据我所记得,它每个循环返回50000个ID。
我希望我回答了所有你想知道的。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.