开发者社区> 余二五> 正文
阿里云
为了无法计算的价值
打开APP
阿里云APP内打开

新浪微博短链接口与研究

简介:
+关注继续查看

上一篇博文中我们讲到了百度短网址接口,那么这篇文章中我们着重讲述的是新浪短链的接口。

相比对与百度短链接口来说,新浪短链接口有一个好处就是,可以解析任意网址,而不像百度,会对一些知名度不很高的网址做一屏蔽。但是有一个麻烦的地方就是,短链是基于微博开放平台而存在的,因此必须申请APPKEY或者OAuth授权。

那么我建议的方式是使用APPKEY方式进行开发,为什么呢?因为OAuth授权是需要用户登录微博的,我们不可能要求别人使用你的短链服务而专门登录一次微博吧?这明显不现实,也不合理。

申请APPKEY的方式非常简单,这里就不再叙述。相信能看到这篇博文的你不会被这些小学生都会的问题难倒吧!

与百度所不同的是,新浪接口没有给出实例代码。那么本博文的重点也就来了,写出一版示例代码来。

同样的,我们仍然使用php作为示例语言。 
这个是短链接转成长链接的。

需要注意的是新浪的接口地址是用使用的json接口,并且是https安全方式访问的,所以要选择忽略证书验证,否则就需要下载证书了。。


 1: <?php 
 2: private function get_longurl($tinyurl) { 
 3: $data=array('source' => 'YOU APP KEY','url_short'=>$tinyurl); 
 4: $api_url = "https://api.weibo.com/2/short_url/expand.json?" . http_build_query($data); 
 5: $ch=curl_init(); 
 6: curl_setopt($ch,CURLOPT_URL,$api_url); 
 7: curl_setopt($ch,CURLOPT_RETURNTRANSFER,true); 
 8: //注意,这里一定得设置为FALSE,否则就需要下载证书 
 9: curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE); 
 10: curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, FALSE); 
 11: $strRes=curl_exec($ch); 
 12: curl_close($ch); 
 13: $arrResponse=json_decode($strRes,true)['urls'][0]; 
 14: if ($arrResponse['result']=='true') 
 15: { 
 16: return $arrResponse['url_long']; 
 17: } 
 18: return $arrResponse['error']; 
 19: } 
 20: ?>

这个长链转短链的

 


 1: <? 
 2: private function get_shorturl($longurl) { 
 3: $data=array('source' => 'YOU APP KEY','url_long'=>$longurl); 
 4: $api_url = "https://api.weibo.com/2/short_url/shorten.json" . http_build_query($data); 
 5: $ch=curl_init(); 
 6: curl_setopt($ch,CURLOPT_URL,$api_url); 
 7: curl_setopt($ch,CURLOPT_RETURNTRANSFER,true); 
 8: //注意,这里一定得设置为FALSE,否则就需要下载证书 
 9: curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE); 
 10: curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, FALSE); 
 11: $strRes=curl_exec($ch); 
 12: curl_close($ch); 
 13: $arrResponse=json_decode($strRes,true)['urls'][0]; 
 14: if ($arrResponse['result']=='true') 
 15: { 
 16: return $arrResponse['url_short']; 
 17: } 
 18: return $arrResponse['error']; 
 19: }

 

要说明的是,新浪的接口是支持批量转换的,方法是

$data=array('source' => 'YOU APP KEY','url_long'=>$longurl,'url_long'=>$longurl1,'url_long'=>$longurl2,'url_long'=>$longurl3…);

一直传入参数即可。

而获取的时候

$arrResponse=json_decode($strRes,true)['urls'][0];

$arrResponse=json_decode($strRes,true)['urls'][1];

$arrResponse=json_decode($strRes,true)['urls'][2];

等等。

希望可以对你有所启发。










本文转自 OH51888 51CTO博客,原文链接:http://blog.51cto.com/rozbo/1284729,如需转载请自行联系原作者

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
即时通讯技术文集(第7期):长连接网关、P2P等 [共10篇]
为了更好地分类阅读52im.net 总计1000多篇精编文章,我将在每周三推送新的一期技术文集,本次是第7 期。
0 0
网不好怎么办?TLS握手带宽直降80%,BabaSSL是怎么做到的?| 龙蜥技术
为了保障数据的安全性,客户端会先和服务器进行 TLS 握手,有什么办法可以减少 TLS 握手的带宽消耗呢?
0 0
网易云通讯与视频_总结_00_资源帖
1.官方: 网易云通讯与视频 短信接入官方文档 IM即时通讯官方文档   网易云通讯与视频开发手册 网易云通讯与视频后台   2.网上大牛博客 (1) 网易云信(验证码短信接口接入) (2) 网易云信短信接入文档  (3) Java使用【网易云信】短信接口,给手机用户发送并校验验...
676 0
[读后感]思考于“关于socket voip后台保持长连被苹果拒了”
[读后感]思考于“关于socket voip后台保持长连被苹果拒了” 太阳火神的美丽人生 (http://blog.csdn.net/opengl_es) 本文遵循“署名-非商业用途-保持一致”创作公用协议 转载请保留此句:太阳火神的美丽人生 -  本博客专注于 敏捷开发及移动和物联设备研究:iOS、Android、Html5、Arduino、pcDuino,否则,出自本博客的文章拒绝转载或再转载,谢谢合作。
1084 0
很牛逼的短链接,我们一起来晒晒短链接程序
发微博很久了,或许是我之前没注意,现在特别关注那个微博中的图片链接和URL链接,总给我看不懂但是又那么短的感觉,反正不是我上传的地址,其实这里使用一个短链接服务功能,这里拿出来晒晒。    这里看看是指向淘宝的一个商品页面,链接地址是这样的 ,但是现在在微博中变成了红圈表名的那个样子,似乎看不懂了,而且你点击之后还是到你原有的页面。
714 0
发几个通知(这是最后一个水文了,以后就都是纯技术文)
  1、感谢大家对我的支持,感谢给我写短信的几位园友,很欣慰,反对数没有远远大于推荐数。感谢大家给我的劝告。为了报答支持我的兄弟们,我决定以后只写技术文,用我的经验、技巧来回报支持我的人。     2、将于10:00(即2010.9.7 10:00)删除前两篇帖子,如果你还想看的话,那么请抓紧时间了,有些评论还是非常经典的,有些回复也是很搞笑的;如果你不愿意看的话,那么也不用急,过一会就消失了。
546 0
+关注
文章
问答
文章排行榜
最热
最新
相关电子书
更多
低代码开发师(初级)实战教程
立即下载
阿里巴巴DevOps 最佳实践手册
立即下载
冬季实战营第三期:MySQL数据库进阶实战
立即下载