一个复杂且长的链接(url)如何变成一个短小精悍的短链接?我们可以借助新浪微博短链API,可以将任意长度的url都变成形如t.cn/XXXX格式的短链接。本文介绍下微博的这个短链API,以及提供一个短链生成工具。

微博短链接如何生成  新浪短网址(新浪短链接)生成工具的使用-LMLPHP

t.cn是新浪花重资买下的一个域名,也有说法是某某大佬买下后来送给新浪的,这个不重要,反正现在t.cn是属于新浪的了,直接访问t.cn会跳转到weibo.com,也就是新浪微博的网站。

新浪在得到t.cn这个域名后,开放了以这个域名为基础的微博API,其中一个就是短链接口,顾名思义,就是通过这个接口,任意url都可以生成一个短链接。例如https://t.cn/Ryh0P2j就是https://www.baidu.com的短链接。

上方介绍的短链接口API第二版中需要access_token,参数介绍“采用OAuth授权方式为必填参数,OAuth授权后获得”,看了下介绍,是需要用户先登陆微博才会有这个授权,只是为了做这个简单的短链工具,肯定不能每次都登陆啊!所以这个时候我们就需要借助一些第三方的工具来实现这个功能了!

微博短链接在线生成工具

 麦云短网址

微博短链接如何生成  新浪短网址(新浪短链接)生成工具的使用-LMLPHP


麦云短网址可让您通过简单地复制粘贴链接就能缩短你的长链接,把你的URL转换简短的t.cn短网址,您在几秒钟内就可以设置一个新的短链接域名,用于包装你的长链接,且无需验证码或额外的验证。平台支持API接口调用以及在线生成2种请求方式:

在线生成

新浪短网址在线压缩:http://maiyurl.cn/ 

1、复制要缩短的网址。粘贴到输入栏。你可以缩短任何长网址,长度不重要。

2、将要缩短的URL粘贴到新浪短链接生成器后。把你的光标移动到缩短按钮。点击“生成”按钮。它会为您创建缩短的URL。您的新缩短的URL将被显示。自己保存好缩短的链接就可以了!

API接口调用

新浪短网址API接口地址:http://maiyurl.cn/yunapi.html

PHP调用演示:

$url = 'http://www.baidu.com';
$api_url = 'http://maiyurl.cn/weibourl?url_long=http://www.baidu.com;
$short_url = file_get_contents($api_url);
echo $short_url;

JAVA调用演示:

public static void main(String path[]) throws Exception {
URL u=new URL("http://maiyurl.cn/weibourl?url_long=http://www.baidu.com");
InputStream in = u.openStream();
ByteArrayOutputStream out = new ByteArrayOutputStream();
try {
byte buf[] = new byte[1024];
int read = 0;
while ((read = in .read(buf)) > 0) {
out.write(buf, 0, read);
}
} finally {
if ( in != null) {
in .close();
}
}
byte b[] = out.toByteArray();
System.out.println(new String(b, "utf-8"));
}

Python调用演示:

import urllib, urllib2, sys
host = 'http://maiyurl.cn/'
path = 'weibourl?url_long='
method = 'GET'
querys = 'url=http%3A%2F%2Fwww.baidu.com'
bodys = {}
url = host + path + '?' + querys
request = urllib2.Request(url)
response = urllib2.urlopen(request)
content = response.read()
if (content):
print(content)

注意事项:

① 调用api接口时,只需将 “http://www.baidu.com”换成需要缩短的长网址即可。

② 接口支持url参数,当url中出现 & 符号时,请用 %26 代替(或者使用url编码格式),否则参数可能会丢失。

③ 填写url时,必须要以http(s)://开头,否则可能会导致生出的短网址无法访问原网站。

④ 上文提到的几个url.cn短网址api接口,经测试都是比较稳定的,觉得好记得收藏一下,以免丢失。

常见问题:

① 长链接转换,为什么结尾的参数丢失了?

答:因为url中含有特殊字符,需要使用UTF8编码格式,将url编码

② 接口没有返回结果,是什么情况?

答:有些时候接口返回数据会有延迟,延时未返回则会提示生成失败;或者是因为原链接被封了。

③ 生成的短网址有效期是多久?有没有访问次数限制?

答:生成的短网址都是永久有效的,而且没有点击次数限制,可以任意使用

09-22 08:16