使用twitter gem回复时间线上的推文

时间:2013-07-11 20:43:40

标签: ruby twitter

我试图从我的Twitter时间线创建一个简单的回复,但遇到了一些问题,作为一个红宝石新手,我在理解文档时遇到了问题。

Twitter.mentions_timeline.each do |tweet|
    reply_to = tweet.from_user_name()
    #Twitter.update("@#{reply_to} Not today.")
end

这是迄今为止所写的内容,但并不多。不幸的是,当使用mentions_timeline时,推文没有任何from_user_name。我正在使用这个宝石,但没有找到任何好的例子:https://github.com/sferik/twitter

如果能够从时间线中抓取一些推文并回复那些推文,那将是非常好的。也有推特有什么区别“新推文”或者我是否需要自己创建某种存储来分离旧的?

提前致谢:)

编辑:澄清一下,我想直接发送给我的所有推文并回复它们。我真的不想继续谈话。

2 个答案:

答案 0 :(得分:5)

有点晚了,但在twitter gem的最新版本中,您可以回复推文:

@client.update("@#{reply_to.user.username} Not today.", in_reply_to_status_id: reply_to.id)

希望这有助于某人。

答案 1 :(得分:0)

以下是一些可能对使用sferik的twitter gem的人有用的例子。注意,我目前使用的是5.0.0版本,因此您的里程可能会有所不同。

假设您已配置REST客户端并将其分配给名为client的变量,您可以获得最近20次提及的数组(或者在过去2个月内收到的数量很多,如果更少)用这一行:

client.mentions_timeline.map(&:full_text)

这些推文的相应提及者可以通过以下方式获得:

client.mentions_timeline.map(&:user).map(&:username)

然后,您可以按照建议使用client.update进行回复。

当我在Ruby中探索API时,我发现一个非常有用的工具是pry。只需require它,删除binding.pry,然后在终端中运行您的代码。然后你可以探索你的心脏 - 或API的极限 - 范围。