2012-08-01 140 views
0

所以我試圖從bit.ly中檢索access_token以使用它們的URL縮短API調用。每次我進行curl調用時,都會收到INVALID_CLIENT_ID作爲響應。我四重檢查,我所有的鑰匙都沒問題。會發生什麼?Bit.ly訪問令牌INVALID_CLIENT_ID

下面是代碼:

define('BITLY_CLIENT_ID','xxx'); 
define('BITLY_CLIENT_SECRET','xxx'); 
define('BITLY_API_KEY','xxx'); 

function curl($url, $params) { 

    $params_str = http_build_query($params); 
    $curl = curl_init(); 
    $header[0] = "Accept: text/xml,application/xml,application/xhtml+xml,"; 
    $header[0] .= "text/html;q=0.9,text/plain;q=0.8,image/png,*/*;q=0.5"; 
    $header[] = "Cache-Control: max-age=0"; 
    $header[] = "Connection: keep-alive"; 
    $header[] = "Keep-Alive: 300"; 
    $header[] = "Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.7"; 
    $header[] = "Accept-Language: en-us,en;q=0.5"; 
    $header[] = "Pragma: "; // browsers keep this blank. 

    curl_setopt($curl, CURLOPT_URL, $url); 
    curl_setopt($curl, CURLOPT_HTTPHEADER, $header); 
    curl_setopt($curl, CURLOPT_POST,count($params)); 
    curl_setopt($curl, CURLOPT_POSTFIELDS,urlencode($params_str)); 
    curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1); 

    $rs = curl_exec($curl); 
    curl_close($curl); 
    return $rs; 
} 

$access_token = curl('https://api-ssl.bitly.com/oauth/access_token',array('client_id'=>BITLY_CLIENT_ID,'client_secret'=>BITLY_CLIENT_SECRET,'x_auth_username'=>'MY_USERNAME','x_auth_password'=>'MY_PASSWORD')); 

echo $access_token;exit; // Returns INVALID_CLIENT_ID 

回答

1

所以我通過電子郵件Bit.ly今天早些時候(真棒服務順便說一句,快速,禮貌),這是他們給我的迴應:

如果你正在尋找做的是讓一個access_token爲您自己的帳戶,我建議使用在http://dev.bitly.com/authentication.html記錄的基本身份驗證機制。只是加載了終端和捲曲以下網址瓦特/你的用戶名和密碼:

捲曲-U「用戶名:密碼」 -X POST「https://api-ssl.bitly.com/oauth/access_token」

所以運行這個並將你的access_token複製並粘貼到你的配置文件中。

我的新捲曲的呼叫是這樣的:

curl('https://api-ssl.bitly.com/v3/shorten',array('apiKey'=>BITLY_API_KEY,'access_token'=>BITLY_ACCESS_TOKEN,'longUrl'=>'http://www.google.com')) 

P.S - URL編碼的$ params_str打破了通話了。謝謝timoh!