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

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

本文固定链接: http://jucelin.com/php-get-sina-weibo-short-url.html | Jucelin

该日志由 jucelin 于2011年12月01日发表在 后台开发, 实验室 分类下, 你可以发表评论,并在保留原文地址及作者的情况下引用到你的网站或博客。
原创文章转载请注明: 简单获取新浪微博短地址接口(API) | Jucelin
关键字: , , , , , ,

简单获取新浪微博短地址接口(API):目前有25 条留言

  1. 13楼
    灰狼:

    很久前看过,没懂。今天终于看懂了,还折腾了一个出来~

    2013-10-28 17:16
  2. 12楼
    feebas:

    这篇对我来说很有帮助,谢谢博主的分享,会继续关注。能够交个朋友,交换个友情链接。我的博客地址是www.gulianqiang.com,QQ:574138482.期待中

    2012-12-05 18:51
    • jucelin:

      已经加上了。记得加上我的。

      2012-12-11 19:27
  3. 11楼
    妈妈:

    接口地址:https://api.weibo.com/2/short_url/shorten.json

    2012-10-24 13:33
  4. 10楼
    门软:

    :lol: 能给我个具体源码吗?谢谢。1292756@qq.com

    2012-09-16 02:16
  5. 能file_get_contents一句搞定的事,CURL干啥 :lol:

    2012-02-20 23:29
    • jucelin:

      file_get_contents是get方式,CURL则可用在post方式。更多时候我更偏向于用CURL

      2012-02-20 23:55
    • jucelin:

      实际上,最早看到的代码就是用curl的,file_get_contents的方式是我自己加上的,呵呵

      2012-02-21 00:03
  6. 8楼
    陈昊军:

    好东西,要学学

    2011-12-08 21:11
  7. 7楼
    陈昊军:

    翻墙技巧真的很重要!

    2011-12-07 22:15
    • jucelin:

      每次使用VPN出去,速度实在受不了,就没什么兴趣了

      2011-12-08 14:26
  8. 6楼
    索阳网:

    你的空间是SAE的么?

    2011-12-03 18:53
  9. 5楼
    cao.im:

    新浪的东西直接无视

    2011-12-02 18:38
    • jucelin:

      哈哈,我用的也少,国内就几家短链接开放了API,所以…呵呵

      2011-12-02 18:51
  10. 恩 也是通过这个实现的 挺好用的说

    2011-12-02 17:17
  11. 地板
    集趣:

    要有流量,肯定要拥有很多粉丝

    2011-12-02 11:36
    • jucelin:

      的确,而且还不能是僵尸类的

      2011-12-02 14:42
  12. 板凳
    陌凡:

    到现在还不知道微博又什么用…

    2011-12-02 01:32
    • jucelin:

      可以倒流量啊,微博也是社区,流量很恐怖的

      2011-12-02 09:26
  13. 沙发
    亨sir:

    很少用新浪微博的说,只上推
    嘎嘎

    2011-12-01 19:51
    • jucelin:

      翻+墙比较累,而且互动不是很多,所以就玩玩国内的,但腾讯微博用的较多。

      2011-12-02 09:25

发表评论

您必须 [ 登录 ] 才能发表留言!

更多