11

我正在使用 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 必须存在于我的工作中之前 - 它不能在其他任何地方运行!

干杯,

安迪

4

3 回答 3

16

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

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

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

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

于 2010-06-03T17:51:08.650 回答
2

你可以要求 Twitter 将这个限制提高到每小时 20000 个请求。这是他们网站上记录的一个非常简单的过程。

于 2010-06-03T17:50:15.873 回答
2

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

于 2010-06-03T20:42:10.080 回答