2011-09-05 93 views
6

我正在尋找PHP的基本oAuth庫,我可以傳遞一個使用者密鑰,一個密鑰和一個URL來請求令牌(和回調)只需返回一個oAuth令牌。它需要的主要功能是可用於各種社交網絡。目前我有一個Twitter的大包裝,一個用於Facebook的巨大包裝,另一個用於Linked in等,這可以用每個站點的一個功能和一個基本的oAuth站點替換。簡單的PHP和oAuth庫

+0

http://code.google.com/p/oauth-php/,Twitter的例子:http://code.google.com/p/oauth-php/source/browse你可以檢查出來/trunk/example/client/twoleggedtwitter.php –

+0

Twitter和Facebook使用不同版本的OAuth。你不能在一個庫中支持這兩個文件 – sanmai

+0

我試圖建立這個。它在谷歌代碼中可用,但從未完成。目前只適用於twitter和linkedin http://code.google.com/p/social-php/ –

回答

4

目前沒有這樣的圖書館。你有oauth-phpoauth2-php庫,但它們不是「簡單」的,最好的部分是他們自己管理它們的標記。 他們不喜歡超長的代幣(如雅虎),這可能是一個大問題。

另外,Microsoft API的某些功能在其5.0版本中不再可用,這意味着您必須使用其舊版API(實現其own Oauth protocol)(所有oauth_ *參數都被命名爲wrap_ *)。

編輯:你可以檢查HybridAuth項目實現登錄部分(不是整個API),但應該給你一個很好的入門。

+1

我今晚會看看HybridAuth,看起來就像我將要得到的最接近 – maccard

+1

結果發現有oAuth內置到PHP中,這比建議更簡單。 https://github.com/jrconlin/oauthsimple/blob/master/php/example.php是我發現的一個簡單的oAuth庫的一個很好的例子,但最終我去了HybridAuth。它處理登錄,這正是我想要的,我可以在其上構建其餘的API(我不需要更多) 謝謝 – maccard

1

我自己實際上遇到了這個問題,並在查看了我所有的選擇後最終創建了OAuth庫。以下是調用Twitter API的示例代碼:

use ohmy\Auth1; 

# start a session to save oauth data in-between redirects 
session_start(); 

# initialize 3-legged oauth 
$twitter = Auth1::init(3); 

# configuration 
$twitter->set('key', 'your consumer key') 
     ->set('secret', 'your consumer secret') 
     ->set('callback', 'your callback url') 
     ->request('https://api.twitter.com/oauth/request_token') 
     ->authorize('https://api.twitter.com/oauth/authorize') 
     ->access('https://api.twitter.com/oauth/access_token') 
     ->finally(session_destroy); 

# test GET call 
$twitter->GET('https://api.twitter.com/1.1/statuses/home_timeline.json', array('count' => 5)) 
     ->then(function($response) { 
      echo '<pre>'; 
      var_dump($response->json()); 
      echo '</pre>'; 
     }); 

該庫與Twitter,Facebook和LinkedIn一起使用。 https://github.com/sudocode/ohmy-auth