新浪微博短链接口与研究
转载地址 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];
等等。
希望可以对你有所启发。
新浪微博短链接口与研究相关推荐
- Java调用 新浪微博API 接口发微博(包含js微博组件、springMVC新浪登录)详解
参考自:http://www.myexception.cn/program/1930025.html https://blog.csdn.net/qq_36580777/article/details ...
- 新浪微博OAuth接口实现登录 java版
新浪微博采用的是OAuth协议来做的登录,现在登录接口做完了.留个笔记方便以后查阅,也方便后来人能够少走一些弯路. 首先简单说说OAuth授权协议:OAUTH协议为用户资源的授权提供了一个安全的.开放 ...
- 新浪微博登录接口实例
2019独角兽企业重金招聘Python工程师标准>>> 提交的方法: public void getRequestToken() { OAuthBase oAuth = ne ...
- 使用AFNetworking请求新浪微博数据接口出错解决办法
在使用AFNetworking请求新浪微博数据接口时会出这样的错误,如 这样的错误说明,AFNetworking无法处理这样的数据格式.所以,我们需要修改AFNetworking中的一些接收数据格式. ...
- solidworks与matlab接口,CAD软件与Matlab_SimMechanics接口问题研究
1软件简介和问题提出 作为当今国际三大科学计算软件之一的Matlab在数学计算和系统仿真上具有不可比拟的优越性.SimMechanics是Matlab面向机械领域的重要工具箱之一.其立足于Matlab ...
- CI框架下 新浪微博登录接口完整版
https://www.cnblogs.com/yznyzcw/p/3756622.html#top 说明:本贴只适合CI框架.功能实现:登录接口跳转链接成功,获取用户信息(包括最重要的u_id)成功 ...
- 预测机器剩余使用寿命的可解释回归框架;基于磁场诱导Skyrmion动力学的神经形态计算模式识别;宽截面纳米带连续体内外的束缚态:一种新的递归S矩阵方法;脑-机接口:研究从视觉诱发电位到纯粹想象稳态电位
可解释的机器学习 1)中文标题:预测机器剩余使用寿命的可解释回归框架 英文标题:An Explainable Regression Framework for Predicting Remaining ...
- 新浪微博开发接口_第三方登录(授权)/分享(发帖)
应用场景:第三方登录(授权)/分享(发帖) 注意:不要运行官方Demo 修改官方Demo包名,或者将所有资源拷贝到自己项目中 原因:官方Demo运行有问题 1. 新浪微博开放接口使用步骤 1) 进入h ...
- 新浪微博接口 java_Java新浪微博新接口处理和注意事项
新浪微博新接口处理和注意事项 一. 新浪微博最新的主要接口介绍: 1.读取接口 1)https://api.weibo.com/2/statuses/public_timeline.json 获取最新 ...
最新文章
- Captaris Workflow 6.0 EventService 执行效率低下的排除。
- vnc远程桌面复制文件Linux,vncviewer远程桌面linux
- flutter图片点击跳转_使用Flutter之后,我们的CPU占用率降了50%
- Linux 内核修正 5 年历史的严重 bug
- 使用TensorFlow.js从网络摄像头进行实时AI情感检测
- 英国政府将设立10亿英镑光网基金
- Vaadin介绍与开发练习之二(创建第一个Vaadin类)
- 从排列与组合的python实现到生日问题的解释
- java基础70 负责静态的网页制作语言XML(网页知识)
- 拓端tecdat|决策树算法建立电信客户流失模型
- initwithcoder和 initwithframe 区别?
- PRINCE2认证之项目四大管理步骤
- 记一个藏得很深的bug
- 星星之火可以燎原鸿蒙,余承东:没有人能够熄灭满天星光 星星之火可以燎原...
- 《算法导论》第16章-贪心算法 16.1-活动选择问题(含C++代码)
- 域控制器组策略:域用户加入域,默认加入本地管理员组
- python字典创建、使用字典保存中国主要城市和对应邮编_Python字典及相关操作(内含例题)...
- 论文笔记--Quality Prediction of Asymmetrically Distorted Stereoscopic 3D Images
- RabbitMQ-客户端源码之ChannelN
- LabVIEW编程LabVIEW控制NET0816以太网数据采集卡例程与相关资料
热门文章
- error: error validating “deployment. yaml“: error validating data: apiVersion not set; if you choose
- 什么是Java虚拟机?为什么Java被称为平台无关的编程语言
- [补档]从OI学麻将
- 2022年最新Mac 安装cocoapods步骤
- ubuntu下Thrift安装
- 实习医生格蕾第十三季/全集Grey’s Anatomy迅雷下载
- 8.凤凰架构:构建可靠的大型分布式系统 --- 流量治理
- 《Minecraft》——游戏介绍
- CSS3 RGBA颜色
- 数据脱敏工具advance-tool-datamask