繁体   English   中英

使用twitter4j的问题

[英]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);

这段代码对我来说很完美。 但是,我有一个问题:

  1. 游标值是什么? 为什么这里是-1?
  2. 如果用户的关注者列表很大,它将达到限制率。
  3. ids.getNextCursor()的作用是什么?

光标允许将结果分为“页面”或组或结果。 当无法一次获得所有结果时,这很有用; 例如,如果用户有数百万个关注者。

可以将光标视为书中的页码。 在请求中指定它可以告诉Twitter您要返回的结果页面。 但是,与页码不同,游标值是不连续的。 这就是为什么Twitter在响应中向您发送“下一个光标值”的原因:

cursor = ids.getNextCursor()

这是Twitter告诉您下一页的编号,因此您可以在下一个请求中使用它来获得该页的结果。

光标可以设置为任何值。 但是,您应该知道两个保留值, -10

  • -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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM