0

我是 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?
  • 对于这个要求有什么更好的方法?

请帮忙

4

0 回答 0