2013-04-26 67 views
0

我尝试了解整个OAuth概念,但未能完成我的应用程序。让我们从一些关于我想做什么的信息开始:​​Oauth,Twitter和其他人 - Codeigniter PHP

首先,我正在为自己编写一个博客应用程序在Codeigniter中。在这个博客上,我想介绍一些来自网络的共享数据,比如推文,flickr,500px照片,声音云轨道等等。我从Twitter开始。我知道我可以使用twitter应用程序等,但我希望这一切都在本机代码中,以便我能够理解整个OAuth过程。其次,所有关于twitter,500px等的数据都是我的 - 没有人会登录到我的博客,因此我不对“用twitter登录”类型的东西感兴趣。

第三,我已经在Twitter上注册了我的应用,并且拥有消费者密钥,消费者密钥,访问令牌和访问令牌密钥。

现在,这是我认为我会出错的地方。可以说我想抓住我自己的时间表。 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资源。一旦我理解了这个概念,我应该能够应用相同的逻辑和理解来连接我的500px照片。我不想使用Twitter特定的代码,并希望尽可能使所有这些都尽可能通用,以便我可以在理论上连接到任何API。

非常感谢所有这些冗长的问题!

James

回答

0

我知道这个问题是相当古老的,但也许我可以帮助。我发现this guide真的很有帮助,它解释了授权请求需要采取的步骤。我还创建了使用Twitter API的CodeIgniter library。这可能是工作得到它的副本,并查看代码,看看它是如何完成的。

+0

干杯,我会看看指导和你的图书馆 - 非常有用。再次感谢 – 2013-08-21 13:28:26