我已经看到许多公司像Twitter一样抽奖,用户需要转发他们的推文,然后其中一个转发者将获得奖品或其他信息。 我现在想知道他们如何得到所有转发者的名单或挑选获胜者?如何获取Twitter中的所有转发者列表?
我查了Twitter API,发现只有这个东西:GET statuses/retweets/:id,但它返回最多100个转发者。这是唯一的方法吗?
我已经看到许多公司像Twitter一样抽奖,用户需要转发他们的推文,然后其中一个转发者将获得奖品或其他信息。 我现在想知道他们如何得到所有转发者的名单或挑选获胜者?如何获取Twitter中的所有转发者列表?
我查了Twitter API,发现只有这个东西:GET statuses/retweets/:id,但它返回最多100个转发者。这是唯一的方法吗?
看起来很喜欢这里有几个服务几乎完全是这样做的。一个快速谷歌拉动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以跟踪不同类型的查询。它非常粗糙,并没有完全处理这个问题,但如果你想编写代码,它可能会指向你正确的方向。
我喜欢muffinista的方法,但我认为如果你想要一个100%完整的转发列表,只需启用转推电子邮件通知并编写一个脚本,用于轮询与主题相匹配的电子邮件框“转推你的一条Tweets! “并将数据放入表格中。从一开始就这样做。
有一种API方法可以返回多达100个条目的一个光标集合(所以你可以通过它来获取更多)。
有关Twitter开发者网站GET statuses/retweeters/ids的更多信息,尽管您也可以阅读他们关于Using cursors to navigate collections的页面。
编辑补充: 这就是说,对在一个快速谷歌浮出水面开发者网站的第一个线程已经@episod,Twitter的员工说:
你不能有可能获得所有的他们。数据分散。最好的选择是使用REST API来确定执行转发的许多用户,但数据仍然受到限制。
追踪转发发生时最容易,而不是试图从过去发现转发。为此,请使用Streaming API。
我知道FavStar有这样的一些方法,但如果他们通过轮询做,我不知道。例如http://favstar.fm/users/hipsterhacker/status/78530718464094210 – 2011-06-11 16:58:16