新浪短网址API接口免费使用说明

2020-04-09
229次阅读
没有评论

还是老样子,我不喜欢过于封装API接口,只有考虑到利弊的时候才会选择去封装,否则我就觉得这个API是不完整的,就是一个套着壳子的垃圾。

所以,能本地处理的我一律自己写代码,或者直接使用别人开源的三方库来写。

今天更新的是“新浪缩短网址”的接口,这个是我自己写的,抓取新浪分享页面的url展现出来。

原理是这样子:

使用下面这个网址:

http://service.weibo.com/share/share.php?url=https://cfhcx.com/421/&title={书蓝画青博客分享测试}&pic=https://cfhcx.com/wp-content/uploads/2020/02/20200212_043642_22.png&searchPic=true#_loginLayer_1586429897299

其中,我标注红色的部分都是需要修改的,title随便输入什么,建议随机输入字符串;url就是我们需要缩短的实际地址,这个必须明确;pic这个参数可带可不带,建议带一下,因为做戏要做全套;最后面一个数值就是unix的时间戳,这个我们直接使用php的time();函数就行了,不用管。

新浪短网址API接口免费使用说明

打开上面的网址后,你会看到一个明显的已经缩短的网址,这个就是新浪的短网址了(在这里我不知道短网址的有效期是多久,网上也没找到,群里面问了说是永久,只要不违规就是永久的,真实性有待商榷)。

我的做法是,直接get目标网页的html源代码,然后用正则直接匹配出我需要的内容就行,其他的东西不用管。

到这里就算是结束了,下面上代码;

<?php
/**
 * 新浪短网址
 * 使用新浪分享页面自动抓取指定的已生成网址
 * time:2020年4月8日13:27:31
 * Author:cfhcx.com
 */ 
header('Content-type:text/html;charset=utf-8');
// include_once("./function.php");
$url = $_REQUEST['url'];
if(!isset($url) || !$url){
	$error1 = ["code"=>"202","msg"=>"只允许携带参数[?url=]!"];
	die(json_encode($error1,JSON_UNESCAPED_SLASHES|JSON_UNESCAPED_UNICODE));
}elseif(empty($url)){
	$error0 = ["code"=>"201","msg"=>"输入内容为空!"];
	die(json_encode($error0,JSON_UNESCAPED_SLASHES|JSON_UNESCAPED_UNICODE));
}
// 如果是一个网址格式则继续,必须携带http/s
$pattern="/^http(s?)://(?:[A-za-z0-9-]+.)+[A-za-z]{2,4}(?:[/?#][/=?%-&~`@[]':+!.#w]*)?$/";
if(preg_match($pattern,$url)){
	$get_url = 'http://service.weibo.com/share/share.php?url='.$url.'&title=%E3%80%90%E4%B9%A6%E8%93%9D%E7%94%BB%E9%9D%92%E3%80%91&pic=https://ae01.alicdn.com/kf/Ha89e8d406ae04c52bcf59f2a0086919ak.jpg&searchPic=true#_loginLayer_'.time();
	$return_code =@file_get_contents($get_url);
	// 正则匹配出指定的缩短网址
	$regex = "/<em .*?class=".*?tag_text.*?".*?>(.*?)</em>/is";
	preg_match_all($regex,$return_code,$matches,PREG_PATTERN_ORDER);
	// exit($matches[1][0]);
	$return = ["code"=>"200","msg"=>"success","text"=>$matches[1][0]];
	die(json_encode($return,JSON_UNESCAPED_SLASHES|JSON_UNESCAPED_UNICODE));
}else{
	$error3 = ["code"=>"203","msg"=>"生成个寂寞,请输入完整的URL,http/s开头的!"];
	die(json_encode($error3,JSON_UNESCAPED_SLASHES|JSON_UNESCAPED_UNICODE));
}

-----------------

不会用怎么办:

不会用可以直接用我的API啊,我既然写了肯定会投入使用的嘛。

网址:https://api.mxooo.cn/dwz/sina.php?url=你要压缩的网址

把上面的整个网址复制到新的页面打开,把后面的汉字换成你要压缩的网址就行了,必须带上http或者https才行,否则报错的。

比如我要压缩 https://api.mxooo.cn/dwz/sina.php?url=https://cfhcx.com/421/

返回的结果:{"code":"200","msg":"success","text":"http://t.cn/A6wzhgA8"}  此为JSON类型,用作API处理。

然后复制橙色的那个代码就行了,这就是已经压缩的网址了。

PS:此代码有性能缺陷,因为获取短连接需要先抓取目标页面代码,然后找到指定内容,所以速度稍慢,无法和别人的高效代码对比,仅仅作为测试使用,后期可能会找相关资料学习重写。性能实在是low爆了。

最后结语:目前只有新浪t.cn的短网址是开放的,百度的dwz.cn要付钱,腾讯url.cn的接口没找到。

正文结束
居烽
版权声明:本站原创文章,由 居烽 于2020-04-09发表,共计2458字。
转载说明:除特殊说明外本站文章皆由CC-4.0协议发布,转载请注明出处。
评论(没有评论)
验证码