2013-04-26 45 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