【问题标题】:Getting all Tweets from user x since date y with ruby?使用 ruby​​ 从用户 x 获取自日期 y 以来的所有推文?
【发布时间】:2019-04-02 22:58:27
【问题描述】:

我已经安装了 twitter gem,但是我找不到任何关于如何指定的信息,因为我想收集推文。例如,我想在 2016 年获得用户 x 的所有推文 - 我该如何指定?这甚至可能吗,因为我在文档中找不到任何关于它的信息。 除了我读到的,这可能是不可能的,因为 twitter 只允许最后 7 天?这是真的吗? 除此之外,我还对如何不按用户而是按标签访问推文感兴趣,这对 gem 可行吗?

class TwitterGetter

  require 'twitter'

  client = Twitter::REST::Client.new do |config|
    config.consumer_key        = "xxxxx"
    config.consumer_secret     = "xxxx"
    config.access_token        = "xxxxx"
    config.access_token_secret = "xxxx"
  end
  tweets = client.user_timeline('Tweetaccount', count: 20)

  tweets.each { |tweet| puts tweet.full_text }
end

#https://www.rubyguides.com/2016/04/twitter-api-from-ruby-tutorial/

【问题讨论】:

  • 这不是您问题的答案,但您应该place your require calls outside the class definition。此外,如果这些是您的实际密钥、令牌和秘密,那么您将不得不更改它们。
  • 该死的,真是漫长的一天!太感谢了,我改了但是,您为什么建议将 require 调用放在课程之外呢?只是为了代码标准?
  • 您删除了这些秘密很好,但由于它们仍然在您问题的修订历史记录中可见,您必须确保它们在 Twitter 端无效。至于为什么要移动require - 在我之前评论的链接答案中进行了解释和讨论。
  • 啊,谢谢!是的,我重新生成了它们;)
  • 你想要 require 外面,因为它清楚地表明该文件具有哪些依赖项,另外它会在启动时强制要求该文件,并在出现问题时出错而不是稍后爆炸当你不注意的时候。

标签: ruby twitter tweets


【解决方案1】:

好的,非常感谢大家的帮助!我认为解决方案略有不同,语法如下所示:

tweets = client.search("whatevertextiwanttomine", since: "2018-10-27", until: "2018-10-30")

有点奇怪,我不能用它来到达我的最后一个帖子,我不太清楚为什么。 无论如何,使用普通 Twitter 开发人员帐户似乎无法搜索超过 7 天的帖子。

【讨论】:

  • 没错。标准搜索 API 限制为 7 天。如果您想在更长的时间内执行此操作,则需要使用高级 30 天或完整的存档搜索 API(您可以免费使用这些 API,每月请求数量有限)。我不相信您当前使用的 gem 支持高级 API,但有一个替代 Ruby 库 here 您可能会觉得有用
【解决方案2】:

您需要使用twitter gem 的search 方法。 Twitter API 也可能会有所帮助。

client.search("from:Tweetaccount since:yyyy-mm-dd until:yyyy-mm-dd")

since 应该是 start_date,until 应该是 end_date。

【讨论】:

    猜你喜欢
    • 2018-03-16
    • 2011-02-10
    • 1970-01-01
    • 2015-05-15
    • 1970-01-01
    • 2013-01-28
    • 1970-01-01
    • 2015-08-02
    • 2023-03-31
    相关资源
    最近更新 更多