Twitter API限制:匿名与经过身份验证

时间:2011-01-28 10:49:50

标签: twitter

在这里http://developer.twitter.com/pages/rate-limiting我们可以读到:

  • 匿名呼叫基于主机的IP,每小时允许150个请求。此分类包括未经身份验证的请求(例如RSS源),以及对不需要身份验证的资源的经过身份验证的请求。
  • OAuth调用每小时允许350个请求。

正如我们在http://dev.twitter.com/doc/get/users/show所看到的那样 - 它不需要身份验证。

所以我希望我的localhost在150个请求后达到访问users/show/zerkms端点的限制。但我能够执行所有350个请求。

真相在哪里?

3 个答案:

答案 0 :(得分:3)

如果您要向Twitter发送身份验证标头,那么您的速率限制将是350个每小时对有限资源进行评级的请求的身份验证速率限制,这与您是否正在调用不需要身份验证的方法无关。

因此,由于您经过身份验证,因此您可以刻录350个API调用。如果您未经身份验证,则只能拨打150个电话。

修改 我相信您指定的文档确实不正确。对不需要身份验证的资源的身份验证请求受未经身份验证的速率限制。相反,它们受当前经过身份验证的帐户的速率限制限制。

例如,如果我对 users / show (不需要身份验证的资源)进行身份验证调用,则HTTP响应中的速率限制标头会显示 X-RateLimit-Limit: 20000,X-RateLimit-Remaining:19999 。如果我然后立即向 users / show 发出未经身份验证的电话,我的速率限制标题会显示 X-RateLimit-Limit:150,X-RateLimit-Limit:149

答案 1 :(得分:1)

要求身份验证和支持身份验证之间存在差异。如果您提供身份验证,则在大多数情况下,Twitter API会将其视为经过身份验证的请求。如果要确保未经身份验证评估您的请求,请不要发送身份验证。

答案 2 :(得分:1)

我认为它与http://dev.twitter.com/doc/get/statuses/followers和旧的“基本身份验证”有关,因为它以“取决于授权方法”开头(即使现在只有一种方法?)。它不需要身份验证,但在某些情况下确实如此。

为了让开发人员转向OAuth,他们在使用OAuth完成API调用时提高了速率限制;这是第二个声明所说的。