2014-02-10 71 views
0

我試圖使用,特別是getRequestToken()方法。我發現的一個問題是我無法將自定義參數添加到我的請求中。我想添加參數「範圍」,但我找不到任何方法來做到這一點。如果我嘗試將參數添加到URL看起來像所有其他參數都沒有像這樣:具有自定義參數的OAuth getRequestToken

$oauth->getRequestToken("http://www.api.com/oauth/request_token?scope=email", "http://www.mypage.com/callback.php"); 

這是一個工作的API調用,但沒有必要的自定義參數一個完整的例子:

$oauth = new \OAuth("consumer_key", "consumer_secret"); 
$oauth->setNonce(sha1(\Str::Random(10).time())); 
$oauth->setTimestamp(time()); 

try 
{ 
    $oauth->getRequestToken("http://www.api.com/oauth/request_token", "http://www.mypage.com/callback.php"); 
} 
catch (\OAuthException $e) 
{ 
    exit($oauth->getLastResponse()); 
} 

因此:如何將自定義參數添加到使用PHP OAuth庫的OAuth調用中?

+0

http://www.api.com/oauth/request_token?scope=email < - 看起來像您添加了它。 – DaImTo

+0

是的,但在這種情況下,請求失敗。好像所有其他參數都缺少,如果我添加一個URL。我在回調中獲得了「oauth_problem = parameter_absent」以及缺失的所有其他參數列表。 – musse1

+1

我會檢查您試圖連接的API的doucmentaion,看看它們需要發送什麼參數。 – DaImTo

回答

0

我已經想出瞭如果別人遇到這個問題時丟失了什麼。解決方案是「提取」和「setAuthType」方法的組合。方法fetch()允許自定義數據作爲第二個參數。這樣,我可以加我的「範圍」參數,像這樣:

$oauth->fetch("http://www.api.com/oauth/request_token", array("scope" => "email"), OAUTH_HTTP_METHOD_GET); 

這種結合setAuthType()成爲可能的方法。 setAuthType()需要一個名爲OAUTH_AUTH_TYPE_ *的常量。爲此,我添加了將OAuth參數附加到請求URI的常量OAUTH_AUTH_TYPE_URI。

相關問題