2011-04-27 104 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; 
    } 
}