【问题标题】:Twitter api - no more than 150 requests per hourTwitter api - 每小时不超过 150 个请求
【发布时间】:2011-02-27 10:47:15
【问题描述】:

我正在使用 jtwitter 编写一个 twitter 应用程序 - 它在我工作的服务器内运行。无论如何 - 每当我从工作中运行它时,它都会返回下面的错误,我每小时只发出几个请求:

HTTP/1.1 400 Bad Request
{"request":"/1/statuses/user_timeline.json?count=6&id=cicsdemo&","error":"Rate limit exceeded. Clients may not make more than 150 requests per hour."} ]
2010-06-03 18:44:49 zero.timer.TimerTask::run Thread-3
    SEVERE [ CWPZA3100E: Exception during processing for timer task, "twitterTimer". Exception: java.lang.ClassCastException: winterwell.jtwitter.Twitter$Status incompatible with java.lang.String ]

我在家运行相同的代码 - 很好。

很明显,在某些时候 twitter 认为我们的工作都来自一个直接 IP - 这就是为什么它达到了它不应该达到的限制。

我是否有任何选择或解决方法 - 我可以从我的直接机器 IP 或我的帐户而不是 IP 计算限制吗?我可以使用代理吗?有没有其他机构遇到过这个问题并解决了?!

在任何人要求 APP 必须存在于我的工作中之前 - 它不能在其他任何地方运行!

干杯,

安迪

【问题讨论】:

    标签: java http api twitter jtwitter


    【解决方案1】:

    您也可以考虑使用他们的streaming api,这会更好(实时)。它还会处理限制,因为只有在新数据到达时您才会收到请求。

    【讨论】:

      【解决方案2】:

      您可以要求 Twitter 将该限制提高到每小时 20000 个请求。这是一个非常简单的过程documented on their site.

      【讨论】:

      • 这似乎不是 REST 和搜索 API 的选项。在使用 Streaming API 时,您显然仍然可以申请例外。
      【解决方案3】:

      对帐户进行身份验证,以便您使用帐户的 API 请求限制,而不是未经身份验证的 IP 限制:

      http://dev.twitter.com/pages/rate-limiting

      http://dev.twitter.com/pages/auth

      如果您仍有问题,您可以要求将公司 IP 列入白名单,但就您所说的(每小时只有几个请求)而言,最好的选择是对帐户进行身份验证。

      【讨论】:

      • 这看起来不错 - 但是回调 URL 不会公开,这会破坏这个方案,因为我无法手动进行身份验证。多么烦人 - 这让我有什么问题?
      猜你喜欢
      • 1970-01-01
      • 2011-05-22
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多