7

我正在尝试从我的 twitter 时间线创建一个简单的回复,但遇到了一些问题,作为一个 ruby​​ 新手,我在理解文档时遇到了问题。

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

这是目前为止写的,不多。不幸的是,在使用提及时间线时,这条推文似乎没有任何 from_user_name 。我正在使用这个 gem,但没有找到任何好的例子:https ://github.com/sferik/twitter

如果有一些很好的例子来说明如何从时间线上抓取推文并回复这些推文,那就太好了。推特也有任何区分“新推文”的东西,还是我需要自己创建某种存储来区分新旧?

提前致谢 :)

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

4

2 回答 2

5

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

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

希望这可以帮助某人。

于 2014-06-23T22:20:06.933 回答
1

以下是一些示例,可能对使用 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 的极限——范围。

于 2013-12-04T01:43:51.527 回答