我的目标是从时间轴获取推文,一次仅获取一条,在 getHomeTimeline 方法中使用分页,并从最新的开始。
碰巧,当我不使用 Paging 时,我得到了预期的 20 个结果,但是当我使用 Paging 只获取一条推文时,我得到 0 个结果。
这是我的代码片段:
Twitter twitter = getTwitterObject();
Long maxid = prefs.getLong(MAXTWEETID2, Long.MAX_VALUE); //Initially is MAX_VALUE
Long sinceid = prefs.getLong(MINTWEETID2, 1L); //Initially is 1
Paging paging = new Paging(1, 1, sinceid, maxid);
statuses = twitter.getHomeTimeline(paging);
我想将之前的 Paging 与sinceId和maxId一起使用,因为我想使用游标来限制连续查找中的查询。
但我也尝试过使用:
Paging paging = new Paging(1, 1);
同样的无效结果。
我搜索了网络和这个论坛,但在搜索用户的时间轴时没有得到任何关于使用分页的限制的线索。
看起来这与将
max_id
设置为 Long.MAX_VALUE
有关。如果您将 max_id
设置为 Long.MAX_VALUE - 1
,您应该会看到结果。这可能是 API 中的错误。
我建议不要将
count
设置得这么低。 API 调用非常昂贵,并且您很快就会达到速率限制。例如,此 API 调用在每个“速率限制窗口”(当前为 15 分钟)内仅允许 15 次调用。您可以在此处了解有关速率限制的更多信息。
最后,
getHomeTimeline(Paging)
并不支持Paging
提供的所有参数。它确实支持 since_id
、max_id
和 count
,但不支持 page
- 它将被忽略。 Twitter4J 中的大多数 API 调用都是这种情况。您可以参考 Twitter4J 的 API 支持矩阵 文档了解每个 API 调用支持哪些参数。