已编辑:reasonable answer at comments。
我正在寻找一种在进行咨询之前检查Twitter API速率限制的方法,但是每当我调用search
时,下一个片段,remaining
减少两次而不是一次。
user = User.find_by_id(ID)
client = Twitter::REST::Client.new do |config|
config.consumer_key = CONSUMER_KEY
config.consumer_secret = CONSUMER_SECRECT
config.access_token = user.access_token
config.access_token_secret = user.access_token_secret
end
client.search("baeza")
puts Twitter::REST::Request.new(client, :get, 'https://api.twitter.com/1.1/application/rate_limit_status.json', resources: "search").perform
client.search("baeza")
puts Twitter::REST::Request.new(client, :get, 'https://api.twitter.com/1.1/application/rate_limit_status.json', resources: "search").perform
我得到了下一个结果:
{:rate_limit_context=>{:access_token=>"access_token"}, :resources=>{:search=>{:"/search/tweets"=>{:limit=>180, :remaining=>178, :reset=>1465385167}}}}
{:rate_limit_context=>{:access_token=>"access_token"}, :resources=>{:search=>{:"/search/tweets"=>{:limit=>180, :remaining=>176, :reset=>1465385167}}}}
我很感激听到你的想法。谢谢你的阅读!
答案 0 :(得分:0)
可以这么简单,因为对rate_limit_status.json的调用也很重要吗?怎么办
client.search("baeza")
client.search("baeza")
client.search("baeza")
puts Twitter::REST::Request.new(client, :get, 'https://api.twitter.com/1.1/application/rate_limit_status.json', resources: "search").perform
它会回归176吗?
更新 - 调用rate_limit_status应不影响限制,但无论如何都会看到建议调用的结果。
更新2
Gem默认只提取第一页,无论结果计数如何。获取下一页是在您的控制之下。请参阅here - fetch_next_page是私有方法,由"每个"枚举器的方法here - 所以如果你开始迭代搜索结果并传递所有第一页结果。当您刚刚发出请求(称为搜索)时 - 它只会获取第一页(一个查询)。
此外,如果未默认指定,则将API搜索请求的gem设置参数设置为100(允许的最大值) - here表示常量,here表示设置