如何使用Twitter的API从某人的时间线中获取推文? (身份验证问题!)

时间:2013-04-20 23:39:31

标签: php twitter twitter-oauth

所以我正在尝试使用PHP脚本(并将结果缓存到文本文件中)获取用户发布的最新推文。我正在使用请求https://api.twitter.com/1/statuses/user_timeline.json?count=5&screen_name=google,它作为公共客户端工作正常,但为了更好地控制我的API命中限制,我需要验证我的请求。

我已经尝试了https://dev.twitter.com/docs/auth/application-only-auth中显示的方法,但在成功连接后,我收到错误“您的凭据不允许访问此资源”(为什么?)。所以我尝试使用OAuth方法(对于像我这样的业余爱好者而言看起来非常复杂),并下载了TwitterOAuth library。但我仍然无法连接!我把我的凭据放在config.php文件中,但我不知道从那里去哪里。文档似乎暗示我需要手动登录到Twitter来授权应用程序的连接令牌......或者其他东西。显然我需要重定向到一些回调URL(甚至是什么?!)并获得短期连接以启用长期连接密码,我必须存储以供日后使用?这种疯狂是什么?

我最初的印象是我可以从Twitter的RSS feeds获取数据,但由于某种原因无法从脚本访问这些数据(与Google News RSS提要不同,这个提取正常)。看来我已经把自己变成了比我签名要复杂得多的东西。这样做是不是更简单(更安全)的方式?或者说一点也不简单?

我为这么容易混淆的dullard道歉,但我的头脑在旋转。

谢谢!


编辑:在挖掘了更多内容之后,我决定只使用PHP curl来获取原始页面,然后做一些Xpath voodoo来获取推文和发布时间。当然,这是CPU密集型的,远非稳定,可能不是一种让Twitter上的人满意的做法;它也只返回最后20条推文(幸运的是满足了我的需求)。

然而,Cormac Driver在下面关于Temboo的回答肯定是我下次需要做这样的事情时会调查的方法。

1 个答案:

答案 0 :(得分:1)

Temboo提供了一种使用OAuth通过Twitter进行身份验证的简单方法。该过程分为两个步骤:

  1. InitializeOauth。此步骤返回Twitter授权URL,Twitter帐户持有者可以访问该URL以授予对脚本的访问权限。

  2. FinalizeOauth。此步骤将返回您的脚本将代表用户向Twitter API发出经过身份验证的请求所需的访问令牌。

  3. 有关如何使用PHP执行此操作的完整详细信息:https://www.temboo.com/library/Library/Twitter/OAuth/

    您可以在此页面上看到Temboo如何处理Facebook的OAuth示例。提供了PHP源代码,它几乎与您为Twitter做同样事情所需的代码相同。

    (完全披露:我在Temboo工作)