【问题标题】:Twitter ruby gem .search request multiple responsesTwitter ruby​​ gem .search 请求多个响应
【发布时间】:2015-06-09 16:11:12
【问题描述】:

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

Docs to the 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

【问题讨论】:

    标签: ruby twitter twitter-gem


    【解决方案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
    

    【讨论】:

    • 谢谢,但我仍然不明白如何停止多个请求。例如,我只想要一个包含 10 条推文的 api 响应。
    • @Nikita 将 count 参数设置为 10,并且不要遍历响应页面(= 不要使用 each)。 search_results.first 应该够了
    猜你喜欢
    • 1970-01-01
    • 2014-12-27
    • 1970-01-01
    • 2013-01-06
    • 2021-07-17
    • 1970-01-01
    • 1970-01-01
    • 2013-08-20
    • 1970-01-01
    相关资源
    最近更新 更多