转载地址 http://rozbo.blog.51cto.com/2201536/1284729

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

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

等等。

希望可以对你有所启发。

新浪微博短链接口与研究相关推荐

  1. Java调用 新浪微博API 接口发微博(包含js微博组件、springMVC新浪登录)详解

    参考自:http://www.myexception.cn/program/1930025.html https://blog.csdn.net/qq_36580777/article/details ...

  2. 新浪微博OAuth接口实现登录 java版

    新浪微博采用的是OAuth协议来做的登录,现在登录接口做完了.留个笔记方便以后查阅,也方便后来人能够少走一些弯路. 首先简单说说OAuth授权协议:OAUTH协议为用户资源的授权提供了一个安全的.开放 ...

  3. 新浪微博登录接口实例

    2019独角兽企业重金招聘Python工程师标准>>> 提交的方法: public void getRequestToken()     { OAuthBase oAuth = ne ...

  4. 使用AFNetworking请求新浪微博数据接口出错解决办法

    在使用AFNetworking请求新浪微博数据接口时会出这样的错误,如 这样的错误说明,AFNetworking无法处理这样的数据格式.所以,我们需要修改AFNetworking中的一些接收数据格式. ...

  5. solidworks与matlab接口,CAD软件与Matlab_SimMechanics接口问题研究

    1软件简介和问题提出 作为当今国际三大科学计算软件之一的Matlab在数学计算和系统仿真上具有不可比拟的优越性.SimMechanics是Matlab面向机械领域的重要工具箱之一.其立足于Matlab ...

  6. CI框架下 新浪微博登录接口完整版

    https://www.cnblogs.com/yznyzcw/p/3756622.html#top 说明:本贴只适合CI框架.功能实现:登录接口跳转链接成功,获取用户信息(包括最重要的u_id)成功 ...

  7. 预测机器剩余使用寿命的可解释回归框架;基于磁场诱导Skyrmion动力学的神经形态计算模式识别;宽截面纳米带连续体内外的束缚态:一种新的递归S矩阵方法;脑-机接口:研究从视觉诱发电位到纯粹想象稳态电位

    可解释的机器学习 1)中文标题:预测机器剩余使用寿命的可解释回归框架 英文标题:An Explainable Regression Framework for Predicting Remaining ...

  8. 新浪微博开发接口_第三方登录(授权)/分享(发帖)

    应用场景:第三方登录(授权)/分享(发帖) 注意:不要运行官方Demo 修改官方Demo包名,或者将所有资源拷贝到自己项目中 原因:官方Demo运行有问题 1. 新浪微博开放接口使用步骤 1) 进入h ...

  9. 新浪微博接口 java_Java新浪微博新接口处理和注意事项

    新浪微博新接口处理和注意事项 一. 新浪微博最新的主要接口介绍: 1.读取接口 1)https://api.weibo.com/2/statuses/public_timeline.json 获取最新 ...

最新文章

  1. Captaris Workflow 6.0 EventService 执行效率低下的排除。
  2. vnc远程桌面复制文件Linux,vncviewer远程桌面linux
  3. flutter图片点击跳转_使用Flutter之后,我们的CPU占用率降了50%
  4. Linux 内核修正 5 年历史的严重 bug
  5. 使用TensorFlow.js从网络摄像头进行实时AI情感检测
  6. 英国政府将设立10亿英镑光网基金
  7. Vaadin介绍与开发练习之二(创建第一个Vaadin类)
  8. 从排列与组合的python实现到生日问题的解释
  9. java基础70 负责静态的网页制作语言XML(网页知识)
  10. 拓端tecdat|决策树算法建立电信客户流失模型
  11. initwithcoder和 initwithframe 区别?
  12. PRINCE2认证之项目四大管理步骤
  13. 记一个藏得很深的bug
  14. 星星之火可以燎原鸿蒙,余承东:没有人能够熄灭满天星光 星星之火可以燎原...
  15. 《算法导论》第16章-贪心算法 16.1-活动选择问题(含C++代码)
  16. 域控制器组策略:域用户加入域,默认加入本地管理员组
  17. python字典创建、使用字典保存中国主要城市和对应邮编_Python字典及相关操作(内含例题)...
  18. 论文笔记--Quality Prediction of Asymmetrically Distorted Stereoscopic 3D Images
  19. RabbitMQ-客户端源码之ChannelN
  20. LabVIEW编程LabVIEW控制NET0816以太网数据采集卡例程与相关资料

热门文章

  1. error: error validating “deployment. yaml“: error validating data: apiVersion not set; if you choose
  2. 什么是Java虚拟机?为什么Java被称为平台无关的编程语言
  3. [补档]从OI学麻将
  4. 2022年最新Mac 安装cocoapods步骤
  5. ubuntu下Thrift安装
  6. 实习医生格蕾第十三季/全集Grey’s Anatomy迅雷下载
  7. 8.凤凰架构:构建可靠的大型分布式系统 --- 流量治理
  8. 《Minecraft》——游戏介绍
  9. CSS3 RGBA颜色
  10. 数据脱敏工具advance-tool-datamask