2011-04-27 184 views
3

我在this網站上發現了以下Bitly API代碼。我很難讓它創建,然後爲名爲$ fullurl的變量回顯一個Bitly縮短的URL。我會怎麼做?使用Bitly API縮短網址

編輯:沒有錯誤代碼出現,只是沒有顯示縮短的網址。

編輯2:var_dump($response);返回NULL

編輯3:我做了更換API登錄和關鍵我的礦。

編輯4:我在原始教程的其中一條評論中找到了答案。我的問題對於PHP專業人員來說太基本了:我只需要在最後添加echo bitly_shorten($fullurl);

由於提前,

約翰

function bitly_shorten($url) 
{ 
    $query = array(
     "version" => "2.0.1", 
     "longUrl" => $url, 
     "login" => API_LOGIN, // replace with your login 
     "apiKey" => API_KEY // replace with your api key 
    ); 

    $query = http_build_query($query); 

    $ch = curl_init(); 
    curl_setopt($ch, CURLOPT_URL, "http://api.bit.ly/shorten?".$query); 
    curl_setopt($ch, CURLOPT_HEADER, 0); 
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); 

    $response = curl_exec($ch); 
    curl_close($ch); 

    $response = json_decode($response); 

    if($response->errorCode == 0 && $response->statusCode == "OK") { 
     return $response->results->{$url}->shortUrl; 
    } else { 
     return null; 
    } 
} 
+0

什麼錯誤代碼? – ariefbayu 2011-04-27 04:38:15

+0

出於調試目的,您應該回顯'$ response-> errorCode'和'$ response-> statusCode'。這應該會讓你知道哪裏出了問題。 – 2011-04-27 04:44:13

+0

用於調試的'var_dump($ response)' – Ibu 2011-04-27 04:47:12

回答

0

我在原始教程的其中一條評論中找到了答案。我的問題對於PHP專業人員來說太基本了:我只需要在最後添加echo bitly_shorten($fullurl);

0

看來,bit.ly已經更新了他們的API,請訪問

http://code.google.com/p/bitly-api/wiki/ApiDocumentation#Authentication_and_Shared_Parameters

的API ..

該網址似乎是這樣的,http://api.bitly.com/v3/shorten?.....

他們說新版本是3,在你的代碼的2.0.1

每當你使用在線服務的API,它能夠更好地從他們的網站上找到它,而不是領,從任何第三方網站或博客。

+0

是的,我看到了,我應該使用它。但它適用於舊的Bitly URL。 – John 2011-04-27 05:04:37

+0

:)簡單的錯誤,那就是爲什麼你應該完全發佈你已經完成的所有,而不是一個部分代碼..如果你會這樣做,你可以從早些時候得到這個答案.. :) – Vijay 2011-04-27 05:07:37

1

將其更改爲:

function bitly_shorten($url){ 
    $query = array(
    "version" => "2.0.1", 
    "longUrl" => $url, 
    "login" => API_LOGIN, // replace with your login 
    "apiKey" => API_KEY // replace with your api key 
); 

    $query = http_build_query($query); 

    $ch = curl_init(); 
    curl_setopt($ch, CURLOPT_URL, "http://api.bitly.com/v3/shorten?".$query); 
    curl_setopt($ch, CURLOPT_HEADER, 0); 
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); 

    $response = curl_exec($ch); 
    curl_close($ch); 

    $response = json_decode($response); 
    if($response->status_txt == "OK") {   
    return $response->data->url; 
    } else { 
    return null; 
    } 
}