2012-06-08 70 views
2

我利用出色的tmhOAuth PHP庫爲我的網站。然而,我不能'弄清楚如何訪問從我auth.php收到的用戶令牌/祕密? (說,當試圖獲取當前用戶的好友列表)如何使用我從tmhOAuth獲得的用戶令牌/密碼?

它在the example的陳述的:

* Although this example uses your user token/secret, you can use 
* the user token/secret of any user who has authorised your application. 

我已經成功地利用了auth.php example的,但如何利用用戶令牌的/我收到的祕密?如示例,它只是說,像這樣:

$tmhOAuth = new tmhOAuth(array(
    'consumer_key' => 'YOUR_CONSUMER_KEY', 
    'consumer_secret' => 'YOUR_CONSUMER_SECRET', 
    'user_token' => 'A_USER_TOKEN', 
    'user_secret' => 'A_USER_SECRET', 
)); 

顯然,硬編碼不會爲我工作,所以,簡單地說,我不知道是在當前登錄用戶的令牌/祕訣是什麼?

這是一個存儲的憑據的例子,我相信:

// already got some credentials stored? 
} elseif (isset($_SESSION['access_token'])) { 
    $tmhOAuth->config['user_token'] = $_SESSION['access_token']['oauth_token']; 
    $tmhOAuth->config['user_secret'] = $_SESSION['access_token']['oauth_token_secret']; 

    $code = $tmhOAuth->request('GET', $tmhOAuth->url('1/account/verify_credentials')); 
    if ($code == 200) { 
    $resp = json_decode($tmhOAuth->response['response']); 
    echo $resp->screen_name; 
    } else { 
    outputError($tmhOAuth); 
    } 

回答

2

用戶都應該通過OAuth授權你,這相生你一個訪問令牌,每個用戶最終(你需要存儲的地方),您從存儲中獲取該令牌,在請求中提供該令牌,並以這種方式授予您訪問權限。因此,您的用戶需要授予您訪問權限,並且您需要存儲訪問令牌+祕密以供將來使用。

總之,不是很具體,也沒有100%準確的技術(我認爲),但希望明確遵循條款:

通過OAuth您請求的應用範圍令牌和祕密,消費者令牌和祕密。

有了這些消費者令牌,您可以向提供商索要一個請求令牌,祕密(通常爲Nonce令牌),現在可以將您的應用標識爲'應用x',這是我允許的'提供商'。

有了這個請求令牌,你可以嚮應用程序請求一個特定用戶的訪問令牌(你知道哪個用戶在你身邊,他們知道或發現他們),用戶通常必須授權你應用程序的訪問,當一切順利的話(這意味着用戶說OK)收到最終的訪問令牌和祕密與您從此可以對遠程站點的連接,作用於代表用戶。此時,您需要以某種方式物理存儲令牌(數據庫,文本文件...)以備後用。

這是他們的服務器和服務器,從來不需要,只要你有一個有效的訪問令牌+祕密存儲在用戶再次重複了第一個步驟之間來回。

一旦你有了這些,你可以將它們放在'user_token'和'user_secret'中(毫無疑問,我從來沒有使用過這個庫)和你的應用程序的Consumer Token/Secret進行驗證。

對不起,如果你知道這一切已經和它不是一個現成的適合的答案。這只是我的印象,您還沒有爲其他用戶使用令牌。

+0

耶,大多數這種流動是由tmhOAuth(感激)照顧。但我欣賞破敗!但是,我不知道如何傳遞變量(我已經存儲在$ _SESSION我相信 - 看看編輯!)所以,首先:如何傳遞$ _SESSION變量到上面的代碼? – knutole

+0

您可以用$ _SESSION ['user_token']替換'user_token',或者在您的結尾調用該變量。祕密一樣。所以, 'user_token'=> $ _SESSION [ 'ACCESS_TOKEN'] [ '的oauth_token'], 'user_secret'=> $ _SESSION [ 'ACCESS_TOKEN'] [ 'oauth_token_secret'] –

+0

很顯然,我試過了,但我有不好調試的情況下, !謝謝harald! – knutole

相關問題