我试图理解整个 OAuth 概念,但无法推进我的应用程序。让我们从一些关于我想要做什么的信息开始:
首先,我正在为自己在 Codeigniter 中编写一个博客应用程序。在这个博客上,我想展示一些我在网络上共享的数据,例如推文、flickr、500px 照片、声音云轨等。我从 Twitter 开始。我知道我可以使用 twitter appltes 等,但我希望这一切都在本机代码中,以便我可以理解整个 OAuth 过程。
其次,推特上的所有数据、500px 等都是我的——没有人会登录我的博客,因此我对“用推特登录”类型的东西不感兴趣。
第三,我已经在 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。
谢谢大家,很抱歉这么冗长的问题!
詹姆士