我正在使用 TwitterOAuth 在 PHP 中创建一个 Twitter webapp,但很快就违反了速率限制。
stdClass Object ( [errors] => Array ( [0] => stdClass Object ( [code] => 185 [message] => 用户已超过每日状态更新限制。) ) )
我正在做的是(在 API v1.1 中)
statuses/retweet/:https ://dev.twitter.com/rest/reference/post/statuses/retweet/%3Aid statuses/update/:https ://dev.twitter.com/rest/reference/post/statuses/更新
所以我阅读了有关速率限制的信息:
https://dev.twitter.com/rest/public/rate-limiting
https://dev.twitter.com/rest/public/rate-limits
https://dev.twitter.com/rest/reference/get/application/rate_limit_status
我没有找到关于 POST 速率限制的信息是如何知道我在哪里。阅读https://dev.twitter.com/rest/public/rate-limiting后,您会认为他们在标题中向您发送了该信息(X-Rate-Limit-Limit 等)。这是您在发帖时返回的示例标题:
Array ( [x_access_level] => read-write [x_connection_hash] => 5872d62634487fcda6d02ad7ba09f306 [x_content_type_options] => nosniff [x_frame_options] => SAMEORIGIN [x_response_time] => 246 [x_transaction] => a960a1986a130b96 [x_twitter_response_tags] => BouncerCompliant [x_xss_protection] = > 1;模式=块)
他们说他们将包括的信息,他们只是没有。
这个页面https://dev.twitter.com/rest/public/rate-limits也不会让你变得更聪明,因为它只列出了 GET 速率限制。
最后,我尝试关注此页面https://dev.twitter.com/rest/reference/get/application/rate_limit_status以请求有关我的限制的信息(并且非常重要:就剩余帖子而言,我目前在哪里当前时间费率期间)。没有一个响应部分让您知道您仍然可以在自己的时间线上发布多少条推文。顺便说一句,在这里,您确实会获得限制信息,您可以多久调用一次此特定调用:
Array ( [x_access_level] => read-write [x_connection_hash] => 147c9e14fc999b5c02f6ce425a8f906b [x_content_type_options] => nosniff [x_frame_options] => SAMEORIGIN [x_rate_limit_limit] => 180 [x_rate_limit_remaining] => 178 [x_rate_limit_reset] => 1440932964 [x_response_time] = > 119 [x_transaction] => bfb31ca44b51d904 [x_twitter_response_tags] => BouncerCompliant [x_xss_protection] => 1; mode=block )
但这仅计入您使用 /application/rate_limit_status 的频率。此外,响应中列出的限制都不会因 POST 到他们的 API 而减少。
Twitter似乎故意让我们对此一无所知。或者我没有得到什么?