这实际上仅供我自己使用:我希望能够搜索我所有的更新,永远。Twitter 的搜索 ( http://search.twitter.com ) 是有时间限制的 - 它似乎只搜索最近几周的更新,因此很难找到我几个月前发布的内容。
3 回答
要从用户那里获取消息列表,您可以使用 Twitter API,但您需要用户和密码才能进行某些调用,例如您需要的调用:
最多 200 个示例:http: //twitter.com/statuses/user_timeline.xml?count= 200
您可以使用其他参数,例如“since”或与 XML 不同的其他格式。点击这里获取更多信息
首先,您必须有权查看用户帐户(否则您将永远无法获得用户的整个时间线)。有两种方法可以实现身份验证:您可以使用用户的凭据登录或获取 OAuth 身份验证令牌。OAuth 方法绝对是要走的路,几乎没有充分的理由使用实际凭据,并且用户厌倦了将他们的登录数据提供给随机应用程序。
获得 OAuth 令牌后,您可以调用 REST API 以获取用户的时间线
http://twitter.com/statuses/user_timeline.format
其中format代表您的应用程序摘要的首选输出格式(现在支持 xml、json、rss 和 atom)。
除了明显的user_id参数外,count和page参数对您的目的也很重要。count允许您指定要返回的结果数(最多 200 个),而page是您要返回的页码。总而言之,您可以获得任何给定用户的最后 3200 次更新(对于count x page的任意组合)。
为避免不必要的爬取,您的应用程序应每天在后台多次联系 Twitter API 以了解当前状态。请注意,对 Twitter 服务器进行查询的频率存在每个用户的限制,因此必须在本地缓存状态消息。
仅在绝对必要时才使用搜索 API。对于您的情况,几乎可以肯定没有必要。
您可以在此处找到 statuses/user_timeline 调用的 API 文档。Abraham Williams 通过github提供了一个用于 OAuth/Twitter 的优秀 PHP 模块。
这是一个技巧
http://twitter.com/statuses/user_timeline/username.xml?count=1000&since=0
since 参数允许您覆盖默认的最大计数 :) 所以现在您无需遍历页面即可获得大量更新。