java - 如何识别 Twitter4j RateLimitStatusEvent 包含哪个端点的限制

标签 java twitter twitter4j

我正在使用 Twitter4J (twitter4j-core:4.0.6) 在 Java 8 中构建一个应用程序来抓取好友和关注者。我将用数据填充图形结构,并且我期望很快达到速率限制,因此我尝试以只有耗尽的端点才进入休眠状态的方式构建应用程序。

为了确保我有正确数量的剩余调用,因为其他应用程序、线程或实例也会耗尽同一请求池,我尝试使用 RateLimitStatusListener 接口(interface)来获取 onRateLimitStatus(RateLimitStatusEvent event)onRateLimitReached(RateLimitStatusEvent event) 控制循环的 sleep 标志。

问题是,我似乎无法找到任何地方来访问 RateLimitStatusEvent 对应的端点,即“/friends/ids”、“/followers/ids”或“/users/lookup”。

我考虑过只查找速率限制并保留本地计数,但如果有多个实例、其他应用程序等同时访问该信息,则在本地计数之前将达到速率限制意识到。我可能会在应用程序完成后发布该应用程序,然后我可能会同时拥有多个用户。

有谁知道使用 Twitter4J 实现此目的的好方法,还是我必须自己推出?

最佳答案

另一种可能性(@kadir 的评论中尚未提及)是使用 Map<String, RateLimitStatus> getRateLimitStatus(String... resources) throws TwitterException关于Twitter实例。

此方法将对 application/rate_limit_status 执行 REST 调用端点并返回给定 resource familiy 的当前速率限制状态。可以找到此端点的文档 here .

在您的情况下,您可以使用此端点来请求资源系列 friends , users , followers可以获取该系列相关的所有端点的限速状态。

但是,过于频繁地调用此端点也可能会导致速率限制。

关于java - 如何识别 Twitter4j RateLimitStatusEvent 包含哪个端点的限制,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45302111/

相关文章:

java - Selenium WebDriver - 单击“保存”按钮后应用程序变得无响应

大堆的 Java 速度较慢

javascript - 编辑 "tweet this"按钮以仅发布页面标题的一部分

java - Twitter4j.获取来自国家/地区的用户

twitter - 有没有办法绕过 Twitter 的速率限制?也许是定价计划?

java - 在 Java 中打印外部文件中的文本

java - 调用重载方法时出现错误信息 "is ambiguous for the type Other"

api - Twitter API statuses_count 是否包括转推?

android - Android 中的推特

java - Twitter 搜索所有内容而不是相关性