Twitter的API限制:匿名VS认证
这里http://developer.twitter.com/pages/rate-limiting,我们可以读到:Twitter的API限制:匿名VS认证
- 匿名电话是基于主机的IP,并允许每小时150个请求。此分类包括未经身份验证的请求(如RSS提要)以及对不需要身份验证的资源的已验证请求。
- OAuth调用每小时允许350个请求。
而我们可以在http://dev.twitter.com/doc/get/users/show看到 - 它不需要验证。
所以我希望我的本地主机将达到150个之后访问请求端点users/show/zerkms
的限制。但我能够执行所有350个请求。
真相在哪里?
如果发送认证头到Twitter,那么你的限速将是350所请求的认证速度极限速度在每小时的资源有限,这是无论你在呼唤不需要身份验证方法。
所以,既然你验证,你有350的API调用,你可以燃烧。如果您未经认证,您只能拨打150个电话。
编辑: 我相信你指定的文档是不正确的。对不需要身份验证的资源进行身份验证的请求数量为而不是,但受未经身份验证的速率限制。而是受限于当前经过身份验证的帐户的费率限制。
例如,如果我做出用户身份验证的呼叫/显示的HTTP响应速率限制头文件显示X-RateLimit限(即不需要身份验证的资源):20000,X-RateLimit-剩余的:19999。如果我然后进行未经身份验证的呼叫立即用户/显示,我的限速头显示X-RateLimit限:150,X-RateLimit限:149。
有需要认证和支持认证之间的差异。如果您提供身份验证,则在大多数情况下,Twitter API会将其视为已验证的请求。如果您想确保您的请求未经身份验证,请不要发送身份验证。
我认为它与http://dev.twitter.com/doc/get/statuses/followers和旧的“基本认证”有关,因为它以“取决于授权方法”(即使现在只有一种方法?)开始。它不需要认证,但在某些情况下它确实需要认证。
为了让开发者移动到OAuth,他们增加了当一个API调用使用OAuth做到了速率限制;这就是第二个声明所说的。
你还在登录twitter.com吗?无论如何,它可能会认出你并允许它。 – Merijn 2011-01-28 10:53:02
@ Merijn:是的,我在我的应用程序中进行了身份验证。但正如文件所述 - 这不应该依赖于那些不需要认证的请求。 – zerkms 2011-01-28 10:55:58
有趣。请参阅http://dev.twitter.com/pages/rate_limiting_faq#measurement(Twitter客户端中的多个用户帐户各自拥有自己的用户费率限制,但共享未经验证的请求....)。可能Twitter团队最近没有更新文档就改变了内部结构。 – Alik 2011-01-28 15:52:22