2011-06-11 619 views
18

我已经看到许多公司像Twitter一样抽奖,用户需要转发他们的推文,然后其中一个转发者将获得奖品或其他信息。 我现在想知道他们如何得到所有转发者的名单或挑选获胜者?如何获取Twitter中的所有转发者列表?

我查了Twitter API,发现只有这个东西:GET statuses/retweets/:id,但它返回最多100个转发者。这是唯一的方法吗?

+1

我知道FavStar有这样的一些方法,但如果他们通过轮询做,我不知道。例如http://favstar.fm/users/hipsterhacker/status/78530718464094210 – 2011-06-11 16:58:16

回答

16

看起来很喜欢这里有几个服务几乎完全是这样做的。一个快速谷歌拉动http://onekontest.com/,还有一些其他的Twitter比赛服务,但他们似乎都不同程度的破碎,因为他们没有跟上API的变化。

就Twitter API本身而言,如果您期待超过100个响应,我认为使用GET statuses/mentions是最有意义的。该API调用返回用户的任何提及,并且您可以传递标志include_rts以包含推文的任何转推。然后,如果您想列出特定推文的RT,则可以检查返回数据中的in_reply_to_status_id字段以查看它是否与原始推文ID匹配。此API调用一次只返回最后800个状态(200个),因此如果您希望获得大量数据,则需要随时反复轮询API以获取所有推文。我想像favstar这样的服务正在做这个,只是在更大的范围内。

如果你真的在寻找代码来做这样的事情,我写了一个名为twitter-rss-digest的sinatra应用程序,它随时间处理查询Twitter以跟踪不同类型的查询。它非常粗糙,并没有完全处理这个问题,但如果你想编写代码,它可能会指向你正确的方向。

+0

非常详细和具体!我想完全回答我的问题。谢谢你解释这个! :) – Rihards 2011-06-16 20:04:46

+0

这是一个很好的黑客! :-) – aalaap 2011-11-02 14:34:37

+1

但GET状态/提及仅适用于验证用户。因此,只要我们发布了推文,我们就可以找到推特的列表。是否有其他方式可以从不属于我们个人帐户的推文中获取推特的列表? – salvador 2014-07-30 10:29:47

2

我喜欢muffinista的方法,但我认为如果你想要一个100%完整的转发列表,只需启用转推电子邮件通知并编写一个脚本,用于轮询与主题相匹配的电子邮件框“转推你的一条Tweets! “并将数据放入表格中。从一开始就这样做。

5

有一种API方法可以返回多达100个条目的一个光标集合(所以你可以通过它来获取更多)。

有关Twitter开发者网站GET statuses/retweeters/ids的更多信息,尽管您也可以阅读他们关于Using cursors to navigate collections的页面。

编辑补充: 这就是说,对在一个快速谷歌浮出水面开发者网站的第一个线程已经@episod,Twitter的员工说:

你不能有可能获得所有的他们。数据分散。最好的选择是使用REST API来确定执行转发的许多用户,但数据仍然受到限制。

追踪转发发生时最容易,而不是试图从过去发现转发。为此,请使用Streaming API

来源:how to get all retweet of a given tweet

相关问题