【发布时间】:2013-08-21 17:47:33
【问题描述】:
我试图了解整个 OAuth 概念,但无法继续我的申请。让我们从一些关于我想做的事情的信息开始:
首先,我正在为自己在 Codeigniter 中编写一个博客应用程序。在这个博客上,我想展示一些我在网络上共享的数据,比如推文、flickr、500px 照片、声音云音轨等。我从 Twitter 开始。我知道我可以使用 twitter appltes 等,但我希望这一切都在本机代码中,以便我可以理解整个 OAuth 过程。
其次,twitter 上的所有数据,500px 等都是我的——没有人会登录我的博客,因此我对“用 twitter 登录”类型的东西不感兴趣。
第三,我已经在 Twitter 上注册了我的应用,并且拥有 Consumer Key、Consumer Secret、Access Token 和 Access Token secret。
现在这就是我认为我出错的地方。可以说我想抓住自己的时间线。 twitter API 说这需要经过身份验证。我不能只传递我的两个密钥和我的访问令牌来检索我的时间线吗?
我尝试了各种方法,但一直收到以下错误:
{"errors":[{"message":"Invalid or expired token","code":89}]}
我知道我的访问令牌是正确的,因为我可以在我的 twitter api 面板中看到它。
如果我拨打这个电话,我知道它不需要身份验证,它会很好地返回我的用户详细信息:
$user = $this->rest->get('http://twitter.com/users/show', array('screen_name' => 'jamesstoddern'));
但是,如果我尝试使用类似这样的方式连接到我的时间线,则会失败并出现上述错误。
$authArray = array(
'consumer_key' => 'MY KEY HERE',
'consumer_secret' => 'MY SECRET HERE',
'username' => 'jamesstoddern',
'access_token' => 'MY ACCESS TOKEN HERE'
);
$timeline = $this->rest->get('https://api.twitter.com/1/statuses/home_timeline.json', $authArray);
我显然做错了什么,但我发现的所有示例似乎都是关于使用“使用 twitter 登录”按钮验证其他用户,而不仅仅是静默验证您自己的应用程序。
如果有人可以给我一些指示或示例,我会非常感激。
我正在使用 Codeigniter,并尝试过 Phils Sturgeons OAuth spark,但找不到足够的示例来帮助我。我真的觉得这一切都是一场斗争。
请有人解释我需要采取哪些步骤来静默验证我自己的应用程序,以便我可以调用我自己的 Twitter 资源。一旦我理解了这个概念,我应该能够应用相同的逻辑和理解来连接到我的 500 像素照片。我不想使用 twitter 特定的代码,并且希望使所有这些尽可能通用,以便我可以在理论上连接到任何 API。
谢谢大家,对于这么冗长的问题感到抱歉!
詹姆斯
【问题讨论】:
标签: api codeigniter twitter oauth