免责声明:我没有Twitter API 经验也没有使用Twitter 直到今天
我被赋予了创建“推特竞赛”的任务 - 如果有人拥有Twitter API经验和/或过去已经这样做了,我将非常感谢您提供的任何有用提示。
因此,基本规则是,为了让用户参加比赛,所述用户必须关注比赛的推特,并且必须转发特定消息,例如“刚刚参加了http://foo.com/contest的竞赛”。 / p>
问题:
为了获得参赛者,我必须解析比赛的RSS提要,http://twitter.com/statuses/user_timeline/21586418.rss似乎只列出最后几个帖子,所以我可能需要与Twitter API进行交互才能获得所有消息。有人可以推荐文档或涵盖此内容的页面吗?
我不确定我是否应该将实际用户存储在本地xml文件中,还是依赖于查询Twitter API,如果我存储它们,我会有一个用户的缓存本地副本......数据库会有点矫枉过正,如果我要存储它们,那么在xml文件中会更好,对吗?
与#1相关,我是否应该实际解析用户必须发送的确切消息,例如“刚刚参加竞赛”,当我解析所有推文的数据馈送时的确切字符串?或者我可以使用哪种标记系统?
与#1相关,我必须确定用户是否是关注者,所以我无法通过解析条目/推文来确定,我将不得不查询用户的id并获取统计信息来自他/她的人?
答案 0 :(得分:3)
您可以搜索网址,但最好的方法是使用主题标签:
just entered #supercoolcontest for http://foo.com/contest
您可以搜索#supercoolcontest的事件,其中包含所需的比赛网址或您可能想要的任何其他关键字。这将确保用户在转发时不必具有文本精确度,并且还可以让人们以可跟踪的一般方式谈论竞赛。
您可以使用search API:
来使用主题标签提取所有推文http://search.twitter.com/search.json?q=%23supercoolcontest
这可能是最有效的方法,因为您可以保证只提取您感兴趣的推文,而不是来自n个用户的n个推文,其中只有一小部分与您有任何关系。
每当您抓取该API Feed(每n分钟)时,请插入新的唯一身份用户。我会使用一个数据库 - 用一两张桌子站起来并不困难或耗费时间。以后更容易查询。
要回答上一个问题,您需要进行单独的API调用,以确定给定用户是否跟随其他用户。
答案 1 :(得分:2)
我知道这是一个老问题,可能与meder无关,但我想评论说现在还有另一种方法可以使用Twitter的Streamming API解决这个问题http://dev.twitter.com/pages/streaming_api这种方法的优点是你告诉twitter发送所有在生成时完成某些条件的推文。
使用搜索API,您需要随时轮询Twitter以获取新推文,并且搜索结果中有一些更有可能丢失;同时使用流媒体API,你可以保持与Twitter的开放连接并处理推文,Twitter不会保证你会得到满足条件的所有推文,但根据我的经验,风险要低得多。