0

在下面的代码中,我指定我想向 twitter api 发出 1 个请求,但是当我puts输出到终端时,我继续收到许多响应,直到我终止程序。如何将其限制为仅指定数量的请求?我是红宝石的新手,所以我可能在这里明显遗漏了一些东西。

twitter gem api 的文档

require 'twitter'

...

client = Twitter::REST::Client.new do |config|

  config.consumer_key        = credentials[:consumer_key]
  config.consumer_secret     = credentials[:consumer_secret]
  config.access_token        = credentials[:access_token]
  config.access_token_secret = credentials[:access_token_secret]

end

search_results = client.search "China", {:count => 1, :lang => 'en', :result_type => 'recent'}

search_results.each do |value|

    puts value.user.screen_name

end
4

1 回答 1

1

正如文档所述,

:count (Integer) — 每页返回的推文数,最多 100 条。

所以,这与你想要实现的目标有点相反:越多count,你发出的 http 请求就越少(因为每个请求都会包含更多的推文)。请注意,您不能将count数量设置为超过 100,因此在有大量推文的情况下限制请求数量的唯一方法是

search_results.take(requests_amount)
# => made requests_amount requests, returns requests_amount pages
# each of page should contain up to count tweets, with max of 100
于 2015-06-09T08:11:12.877 回答