我是 Twitter API 的新手。我正在使用 Java 和 Twitter4J 进行开发。
要求是:
设置一个 Crone 作业,它将获取用户的 HomeTimline/tweets 并根据一些关键字过滤推文并存储到数据库中
所以,我使用getHomeTimeline()
了 twitter4J 的功能并获取了 100 条推文。目前我的 cron 作业每分钟执行一次,执行任务。
一段时间后,我收到以下错误。
429:Returned in API v1.1 when a request cannot be served due to the application's rate
limit having been exhausted for the resource. See Rate Limiting in API v1.1.(https://dev.twitter.com/docs/rate-limiting/1.1)
message - Rate limit exceeded
code - 88
Relevant discussions can be found on the Internet at:
http://www.google.co.jp/search?q=e5488403 or
http://www.google.co.jp/search?q=0a410619
TwitterException{exceptionCode=[e5488403-0a410619], statusCode=429, message=Rate limit exceeded, code=88, retryAfter=-1, rateLimitStatus=RateLimitStatusJSONImpl{remaining=0, limit=15, resetTimeInSeconds=1375947321, secondsUntilReset=1137}, version=3.0.3}
根据错误消息,我的应用程序的速率限制已结束。但是当我使用下面的代码获得我的应用程序的速率限制时
RateLimitStatus rateLimit = twitter.getRateLimitStatus("application").get("/application/rate_limit_status");
System.out.println("Application Remaining RateLimit ="+rateLimit.getRemaining());
这显示剩余限制在 150 左右。但是,如果您在最后一个石灰中提到上面的异常,它会显示limit=15
。
在 Twitter 文档之一中,我认为应用程序速率限制是每 15 分钟 180 个请求。
- 请指导我解决此错误。
- 如果我获取 100 个结果,它会计算一次点击还是多次点击?
- Twiiter4J 使用 Streaming API 还是 REST API?
- 对于这个要求有什么更好的方法?
请帮忙