我试图从我的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
如果能够从时间线中抓取一些推文并回复那些推文,那将是非常好的。也有推特有什么区别“新推文”或者我是否需要自己创建某种存储来分离旧的?
提前致谢:)
编辑:澄清一下,我想直接发送给我的所有推文并回复它们。我真的不想继续谈话。
答案 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的极限 - 范围。