簡單獲取新浪微博短地址接口(API)


短地址(也稱短鏈接、縮短地址等)方面,在twitter發展之后就接着發展了起來,而且很多互聯網網站都使用了短地址,國內國外都很多,但穩定和可靠性,還是國內的比較靠譜些,不怕沒牆,國外幾家已經悲劇了,所以如果項目中用到短地址,個人還是建議使用新浪或者其他國內的短鏈接服務。

新浪微博短鏈接API是開放的,而騰訊微博的短地址API沒有開放,本想着通過不一樣的路徑獲取騰訊微博的API的,最后還是以失敗收場。新浪微博短地址API是不需要用戶登錄的,所以直接可以調用,而且速度很快,下面的代碼是從網站找來的,用的是CURL POST的方法,可供參考。

新浪微博短鏈接API文檔在舊版開發文檔中,新版中暫未加入:http://open.weibo.com/wiki/Short_url/shorten

function shortenSinaUrl($long_url){
$apiKey='1234567890';//這里是你申請的應用的API KEY,隨便寫個應用名就會自動分配給你
$apiUrl='http://api.t.sina.com.cn/short_url/shorten.json?source='.$apiKey.'&url_long='.$long_url;
$curlObj = curl_init();
curl_setopt($curlObj, CURLOPT_URL, $apiUrl);
curl_setopt($curlObj, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($curlObj, CURLOPT_SSL_VERIFYPEER, 0);
curl_setopt($curlObj, CURLOPT_HEADER, 0);
curl_setopt($curlObj, CURLOPT_HTTPHEADER, array('Content-type:application/json'));
$response = curl_exec($curlObj);
curl_close($curlObj);
$json = json_decode($response);
return $json[0]->url_short;
}

function expandSinaUrl($short_url){
$apiKey='1234567890';//要修改這里的key再測試哦
$apiUrl='http://api.t.sina.com.cn/short_url/expand.json?source='.$apiKey.'&url_short='.$short_url;
$curlObj = curl_init();
curl_setopt($curlObj, CURLOPT_URL, $apiUrl);
curl_setopt($curlObj, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($curlObj, CURLOPT_SSL_VERIFYPEER, 0);
curl_setopt($curlObj, CURLOPT_HEADER, 0);
curl_setopt($curlObj, CURLOPT_HTTPHEADER, array('Content-type:application/json'));
$response = curl_exec($curlObj);
curl_close($curlObj);
$json = json_decode($response);
return $json[0]->url_long;
}

參照新浪微博的開發文檔,其推薦的是使用get的方法獲取。那代碼就更簡單了

function shorturl($long_url){
    $apiKey='1234567890';//要修改這里的key再測試哦
    $apiUrl='http://api.t.sina.com.cn/short_url/shorten.json?source='.$apiKey.'&url_long='.$long_url;
    $response = file_get_contents($apiUrl);
    $json = json_decode($response);
    return $json[0]->url_short;
}

function expandurl($short_url){
    $apiKey='1234567890';//要修改這里的key再測試哦
    $apiUrl='http://api.t.sina.com.cn/short_url/expand.json?source='.$apiKey.'&url_short='.$short_url;

    $response = file_get_contents($apiUrl);
    $json = json_decode($response);
    return $json[0]->url_long;
}

OK,是不是更簡單了?

大家在調試上面的代碼是需要填寫自己的API key哦,不然肯定獲取不到的。

特別提示:短地址服務現在僅對已經認證的APP KEY提供服務,剛申請的APP KEY會被提示無權限。大家可以使用209678993和3818214747兩個KEY做測試,這2個KEY來歷不明,不建議用於生產。(感謝@congxz6688的提醒)

jucelin寫了個調試的文檔,大家可以測試下:

長轉短:http://jucelin.com/lab/short.php?type=1&url=http://jucelin.com

短轉長:http://jucelin.com/lab/short.php?type=2&url=http://t.cn/S4bLBm

就2個參數,type:1表示長轉短,2表示短轉長,后面的URL就是目標域名了,因為比較懶,就沒有寫錯誤判斷,新浪微博短地址不支持短地址再轉短地址的,邏輯上也應該這樣控制。(不信你可以試試)。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM