Twitter API限制:匿名与认证

Twitter API限制:匿名与认证,twitter,Twitter,在这里我们可以看到: 匿名呼叫基于主机的IP,每小时允许150个请求。这种分类包括未经身份验证的请求(如RSS提要)和对不需要身份验证的资源进行身份验证的请求 OAuth呼叫每小时允许350个请求 正如我们在上所看到的,它不需要身份验证 因此,我预计我的本地主机在150个请求之后将达到访问users/show/zerkms端点的限制。但我能够执行所有350个请求 真相在哪里?要求身份验证和支持身份验证之间有区别。如果提供认证,在大多数情况下,推特API将认为它是经过身份验证的请求。如果您想确

在这里我们可以看到:

  • 匿名呼叫基于主机的IP,每小时允许150个请求。这种分类包括未经身份验证的请求(如RSS提要)和对不需要身份验证的资源进行身份验证的请求
  • OAuth呼叫每小时允许350个请求
正如我们在上所看到的,它不需要身份验证

因此,我预计我的本地主机在150个请求之后将达到访问
users/show/zerkms
端点的限制。但我能够执行所有350个请求


真相在哪里?

要求身份验证和支持身份验证之间有区别。如果提供认证,在大多数情况下,推特API将认为它是经过身份验证的请求。如果您想确保您的请求未经身份验证就被评估,请不要发送身份验证。

我认为这与旧的“基本身份验证”有关,因为它以“取决于授权方法”开头(即使现在只有一种方法?)。它不需要身份验证,但在某些情况下需要


为了让开发人员转向OAuth,当使用OAuth完成API调用时,他们提高了速率限制;这就是第二条语句所说的。

如果您向Twitter发送身份验证头,那么您的速率限制将是每小时350个请求的身份验证速率限制,这与您是否调用不需要身份验证的方法无关

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

编辑: 我相信您指定的文档确实不正确。对不需要身份验证的资源的经过身份验证的请求不受未经身份验证的速率限制的约束。而是受当前已验证帐户的费率限制


例如,如果我对users/show(不需要身份验证的资源)进行身份验证调用,HTTP响应上的速率限制头将显示X-RateLimit-limit:20000,X-RateLimit-Remaining:19999。如果我随后立即给用户/show打了一个未经验证的电话,我的费率限制标题将显示X-RateLimit-limit:150,X-RateLimit-limit:149

您是否仍然登录到twitter.com?也许它认出了你并允许你这么做。@Merijn:是的,我的申请已经通过了身份验证。但正如文档所说,这不应该依赖于不需要身份验证的请求。请参阅(Twitter客户端中的多个用户帐户都有自己的用户速率限制,但共享未经验证的请求…)。可能Twitter团队最近在没有更新文档的情况下改变了内部结构。@Konstantin Mikhaylov:是的,我也看到了;-)这种差异在哪里描述?或者这只是你的想法?你能参考文档吗?正如我在问题中引用的:“这种分类包括未经验证的请求(如RSS提要)和对不需要验证的资源的经验证的请求。”@zerkms-gotcha。我认为文档现在是不正确的,因为我从未见过文档中描述的行为。如果您已通过身份验证,则您有基于身份验证模式和白名单状态的呼叫数。如果您未通过身份验证,则有150个呼叫。我认为这句话应该是“匿名呼叫基于主机的IP,每小时允许150个请求。这一分类包括未经验证的请求(如RSS提要)。”@arcain:是的,我也看到了,但我的应用程序实现可能会因限制的种类而有所不同;-)这就是我问这个问题的原因。谢谢你证实我的想法+1@zerkms-我编辑了我的答案,以包含一些确凿的数据。@arcain:是的,我也看到了
X-RateLimit-Limit:350
(你是怎么得到20k的?!),但仍然希望我能抓住200(350-150)的限制。