竹磬网-邵珠庆の日记 生命只有一次,你可以用它来做些更多伟大的事情–Make the world a little better and easier

226月/1214

教你如何简单获取新浪微博短地址接口

 

短地址(也称短链接、缩短地址等)方面,在twitter发展之后就接着发展了起来,而且很多互联网网站都使用了短地址,国内国外都很多,但稳定和可靠性,还是国内的比较靠谱些,不怕没墙,国外几家已经悲剧了,所以如果项目中用到短地址,个人还是建议使用新浪或者其他国内的短链接服务。

新浪微博短链接API是开放的,而腾讯微博的短地址API没有开放,本想着通过不一样的路径获取腾讯微博的API的,最后还是以失败收场。新浪微博短地址API是不需要用户登录的,所以直接可以调用,而且速度很快,下面的代码是从网站找来的,用的是CURL POST的方法,可供参考。

新浪微博短链接API文档在旧版开发文档中,新版中暂未加入:http://open.weibo.com/wiki/Short_url/shorten

1 function shortenSinaUrl($long_url){
2 $apiKey='1234567890';//这里是你申请的应用的API KEY,随便写个应用名就会自动分配给你
3 $apiUrl='http://api.t.sina.com.cn/short_url/shorten.json?source='.$apiKey.'&url_long='.$long_url;
4 $curlObj = curl_init();
5 curl_setopt($curlObj, CURLOPT_URL, $apiUrl);
6 curl_setopt($curlObj, CURLOPT_RETURNTRANSFER, 1);
7 curl_setopt($curlObj, CURLOPT_SSL_VERIFYPEER, 0);
8 curl_setopt($curlObj, CURLOPT_HEADER, 0);
9 curl_setopt($curlObj, CURLOPT_HTTPHEADER, array('Content-type:application/json'));
10 $response = curl_exec($curlObj);
11 curl_close($curlObj);
12 $json = json_decode($response);
13 return $json[0]->url_short;
14 }
15  
16 function expandSinaUrl($short_url){
17 $apiKey='1234567890';//要修改这里的key再测试哦
18 $apiUrl='http://api.t.sina.com.cn/short_url/expand.json?source='.$apiKey.'&url_short='.$short_url;
19 $curlObj = curl_init();
20 curl_setopt($curlObj, CURLOPT_URL, $apiUrl);
21 curl_setopt($curlObj, CURLOPT_RETURNTRANSFER, 1);
22 curl_setopt($curlObj, CURLOPT_SSL_VERIFYPEER, 0);
23 curl_setopt($curlObj, CURLOPT_HEADER, 0);
24 curl_setopt($curlObj, CURLOPT_HTTPHEADER, array('Content-type:application/json'));
25 $response = curl_exec($curlObj);
26 curl_close($curlObj);
27 $json = json_decode($response);
28 return $json[0]->url_long;
29 }

参照新浪微博的开发文档,其推荐的是使用get的方法获取。那代码就更简单了

1 function shorturl($long_url){
2     $apiKey='1234567890';//要修改这里的key再测试哦
3     $apiUrl='http://api.t.sina.com.cn/short_url/shorten.json?source='.$apiKey.'&url_long='.$long_url;
4     $response = file_get_contents($apiUrl);
5     $json = json_decode($response);
6     return $json[0]->url_short;
7 }
8  
9 function expandurl($short_url){
10     $apiKey='1234567890';//要修改这里的key再测试哦
11     $apiUrl='http://api.t.sina.com.cn/short_url/expand.json?source='.$apiKey.'&url_short='.$short_url;
12  
13     $response = file_get_contents($apiUrl);
14     $json = json_decode($response);
15     return $json[0]->url_long;
16 }

OK,是不是更简单了?

大家在调试上面的代码是需要填写自己的API key哦,不然肯定获取不到的。

特别提示:短地址服务现在仅对已经认证的APP KEY提供服务,刚申请的APP KEY会被提示无权限。大家可以使用209678993和3818214747两个KEY做测试,这2个KEY来历不明,不建议用于生产。

写了个调试的文档,大家可以测试下:

长转短: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就是目标域名了,因为比较懒,就没有写错误判断,新浪微博短地址不支持短地址再转短地址的,逻辑上也应该这样控制。(不信你可以试试)。

关于新浪微博短地址接口的更详细说明可以参考《新浪微博短地址接口》。

喜欢这个文章吗?

考虑订阅我们的RSS Feed吧!

发布在 邵珠庆

评论 (14) 引用 (2)
  1. WOW just what I was searching for. Came here by searching
    for 邵珠庆

  2. Thanks for sharing your thoughts on 邵珠庆.
    Regards

  3. Thanks for sharing your thoughts about 邵珠庆. Regards

  4. Thanks for finally talking about > 教你如何简单获取新浪微博短地址接口 « 邵珠庆の博客 < Liked it!

  5. Thanks for finally talking about > 教你如何简单获取新浪微博短地址接口 « 邵珠庆の博客 < Loved it!

  6. Hello, i think that i saw you visited my weblog so i came to return the favor?I’m trying to find
    things to enhance my web site!I suppose its ok to use some of your ideas!!

  7. 緊急に必要な融資は、対応してくれる金融会社をしっかりと選択して活用したほうが良いです。業態的に消費者金融などいろいろあります。これらはあなたの仕事の状態などで違いがありますが、借入を利用する場合は、既存顧客の満足度などを考えて決めるべきです。

  8. グローブの破目はこちら。お役立ち用地です。グローブについて知って理論!コークスがへばりついて出にくいコークス製造がまたいらげる。

  9. 愛知県の硬貨価値をいきさつ使うのか。愚かないいな。愛知県の硬貨価値について知って対面する!不深切な感じで行きます。

  10. Thanks for sharing your thoughts about 邵珠庆. Regards

  11. Thanks for sharing your thoughts on 邵珠庆.
    Regards

  12. Thanks for sharing your thoughts about 邵珠庆. Regards

  13. Thanks for sharing your thoughts on 邵珠庆.

    Regards


Leave a comment

ca788