0

我试图理解整个 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。

谢谢大家,很抱歉这么冗长的问题!

詹姆士

4

1 回答 1

0

我知道这个问题已经很老了,但也许我可以提供帮助。我发现本指南非常有用,它解释了授权请求所需的步骤。我还创建了一个CodeIgniter 库来使用 Twitter API。获取它的副本并查看代码以查看其完成方式可能是一项工作。

于 2013-08-21T09:47:33.377 回答