我如何使用Twitter'的API从某人'的时间轴获取tweet ?(身份验证问题!)


How do I use Twitter's API to fetch tweets from someone's timeline ? (problems with authentication !)

因此,我试图使用PHP脚本获取用户发布的最新tweet(并将结果缓存到文本文件中)。我正在使用请求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库。但是我还是连接不上!我把我的凭证在config.php文件,但我不知道从那里去。文档似乎在暗示我需要手动登录Twitter来授权应用程序的连接令牌…什么的。显然,我需要重定向到一些回调URL(什么甚至?!),并获得一个短期连接,以启用一个长期的连接密码,我必须存储以后?这是怎么回事?

我最初的印象是,我可以从Twitter的RSS提要中获取数据,但由于某种原因,这些数据不能从脚本中访问(不像谷歌新闻的RSS提要,它可以很好地获取)。看来我让自己陷入了比我当初签约时要复杂得多的境地。难道没有更简单(也更理智)的方法来做这件事吗?或者没有什么是绝对简单的?

我很抱歉我是个容易糊涂的笨蛋,但是我的头很晕。

谢谢!


编辑:在深入研究之后,我决定只使用PHP curl来获取原始页面,然后使用一些Xpath来获取tweet和它们发布的时间。当然,这是cpu密集型的,远不稳定,可能不会让Twitter的人高兴;它还只返回最近的20条tweet(谢天谢地,这足以满足我的需求)。

但是,Cormac Driver下面关于Temboo的回应肯定是我下次需要做类似事情时要研究的方法。

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

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

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

关于如何在PHP中做到这一点的详细信息在这里:https://www.temboo.com/library/Library/Twitter/OAuth/

你可以在这个页面看到Temboo如何处理Facebook的OAuth的例子。提供了PHP源代码,它几乎与您在Twitter上执行相同操作所需的代码相同。

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