本文目录
一个复杂且长的链接(url)如何变成一个短小精悍的短链接?借助微博花巨资买下的t.cn域名以及提供的微博短链API,可以将任意长度的url都变成形如t.cn/RDj9Kog的短链接。本文介绍下微博的这个短链API,以及提供一个短链生成工具。
微博短链API介绍
t.cn是新浪花重资买下的一个域名,也有说法是某某大佬买下后来送给新浪的,这个不重要,反正现在t.cn是属于新浪的了,直接访问t.cn会跳转到weibo.com,也就是新浪微博的网站。
新浪在得到t.cn这个域名后,开放了以这个域名为基础的微博API,其中一个就是短链接口,顾名思义,就是通过这个接口,任意url都可以生成一个短链接。例如t.cn/RDj9Kog就是https://www.bwgyhw.cn/bandwagonhost-all-plans/的短链接。
官方短链接口API文档可以参考:http://open.weibo.com/wiki/2/short_url/shorten
微博短链API调用
上方介绍的短链接口API第二版中需要access_token,参数介绍“采用OAuth授权方式为必填参数,OAuth授权后获得”,看了下介绍,是需要用户先登陆微博才会有这个授权,只是为了做这个简单的短链工具,肯定不能每次都登陆啊,于是就去找了下它的第一版接口:http://api.t.sina.com.cn/short_url/shorten.json & http://api.t.sina.com.cn/short_url/shorten.xml,需要提供一个source参数。这个source是你注册新浪微博开发者,申请应用后得到的App Key,懒于注册,就去网上找了点共享的:
小米手机 App Key:xiaomi App Secret:3MqAdNoRLHomm4AECoURl7gds1sUIjun Panda.memo App Key:31641035 App Secret:6a7c98c1eef2109622d0a08199a35bef 周博通微博管家 App Key:202088835 App Secret:9567e3782151dcfd1a9bd2dd099d957f Android平板客户端 App Key:2540340328 App Secret:886cfb4e61fad4e4e9ba9dee625284dd Google.Nexus App Key:1206405345 App Secret:fa6095e113cd28fde6e14c7b7145c5c5 Spring微博.Android App Key:1905839263 App Secret:36b51c6ebf2dd3e5361f80f6c4506267 Acer平板电脑 App Key:783190658 App Secret:7f63ae9eb3c1438e9f8932748ca8a341 iphone客户端 App Key:5786724301 App Secret:5Jao51NF1i5PDC91hhI3ID86ucoDtn4C app梦工厂微博 App Key:569452181 App Secret:bbd573c3052999adcd026cbf88ffbf8e FIT随享.iPhone版 App Key:31024382 App Secret:25c3e6b5763653d1e5b280884b45c51f
有了API,有了授权source,代码就简单了,以PHP为例(这个url_long参数似乎必须以http://或者https://开始,否则会报错):
<?php /** * Created by PhpStorm. * User: Fly * Date: 2018/8/11 * Time: 21:16 */ $url = "http://api.t.sina.com.cn/short_url/shorten.json?source=202088835&url_long=" . $_GET["url_long"]; $ch = curl_init(); $timeout = 5; curl_setopt($ch, CURLOPT_URL, $url); curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, $timeout); $contents = curl_exec($ch); curl_close($ch); $json = json_decode($contents); $array = array(); $array["url_short"] = $json[0]->url_short; $output = json_encode( $array ); echo $output;
微博短链生成工具
1.在线短链生成工具
输入任意url(必须包含http://或者https://),点击生成短链即可得到对应的短链接:
2.微信小程序->短链生成器
搜索微信小程序flyzy小站或者扫描下方二维码,使用短链生成器即可生成短链:
短链生成器: