java - 使用 twitter4j 的问题

标签 java 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 , cursoringrate limiting .

关于java - 使用 twitter4j 的问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20062901/

相关文章:

java - 具有 Spring bean 依赖关系的 Junit/Mockito 单元

java - 在模糊代码中隐藏字符串

java - twitter4j API - 连接被拒绝

java - twitter4j 3.0.5 : sun. security.validator.ValidatorException:PKIX 路径构建失败

java - 如何使用 Twitter 的 Java 库 (twitter4j) 访问 Twitter API 资源

java - Gridworld 在列表中查找最近的位置

java - 按钮填满了 GridLayout 中的整个单元格,Java

java - Web 浏览器在设备中显示为一条线

java - 处理 twitter4j 没有文件添加到草图

java - Twitter API Twitter4j getUserID