使用新浪微博开放平台api同步微博内容至自己网站(新浪微博短链接API开放,腾讯微博短地址API没有开放)
优采云 发布时间: 2021-11-01 20:10使用新浪微博开放平台api同步微博内容至自己网站(新浪微博短链接API开放,腾讯微博短地址API没有开放)
在短地址(又称短链接、短地址等)方面,推特是经过发展后发展起来的,很多互联网网站都使用短地址。*敏*感*词*有很多,但稳定可靠。国内的比较靠谱。我不怕没有墙。几家外国公司已经遭遇悲剧。所以,如果在项目中使用短地址,我还是推荐使用新浪或者其他国内的短链接服务。
新浪微博短链接API开放,但腾讯微博短地址API未开放。我想通过不同的路径获取腾讯微博的API,但以失败告终。新浪微博短地址API不需要用户登录,直接调用即可,速度非常快。以下代码取自网站,使用CURLPOST方法供参考。
新浪微博短链接API文档在老版本的开发文档中,但新版本没有添加:
function shortenSinaUrl($long_url){
$apiKey='1234567890';//这里是你申请的应用的API KEY,随便写个应用名就会自动分配给你
$apiUrl='http://api.t.sina.com.cn/short_url/shorten.json?source='.$apiKey.'&url_long='.$long_url;
$curlObj = curl_init();
curl_setopt($curlObj, CURLOPT_URL, $apiUrl);
curl_setopt($curlObj, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($curlObj, CURLOPT_SSL_VERIFYPEER, 0);
curl_setopt($curlObj, CURLOPT_HEADER, 0);
curl_setopt($curlObj, CURLOPT_HTTPHEADER, array('Content-type:application/json'));
$response = curl_exec($curlObj);
curl_close($curlObj);
$json = json_decode($response);
return $json[0]->url_short;
}
function expandSinaUrl($short_url){
$apiKey='1234567890';//要修改这里的key再测试哦
$apiUrl='http://api.t.sina.com.cn/short_url/expand.json?source='.$apiKey.'&url_short='.$short_url;
$curlObj = curl_init();
curl_setopt($curlObj, CURLOPT_URL, $apiUrl);
curl_setopt($curlObj, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($curlObj, CURLOPT_SSL_VERIFYPEER, 0);
curl_setopt($curlObj, CURLOPT_HEADER, 0);
curl_setopt($curlObj, CURLOPT_HTTPHEADER, array('Content-type:application/json'));
$response = curl_exec($curlObj);
curl_close($curlObj);
$json = json_decode($response);
return $json[0]->url_long;
}
参考新浪微博的开发文档,推荐使用get方式获取。代码更简单
function shorturl($long_url){
$apiKey='1234567890';//要修改这里的key再测试哦
$apiUrl='http://api.t.sina.com.cn/short_url/shorten.json?source='.$apiKey.'&url_long='.$long_url;
$response = file_get_contents($apiUrl);
$json = json_decode($response);
return $json[0]->url_short;
}
function expandurl($short_url){
$apiKey='1234567890';//要修改这里的key再测试哦
$apiUrl='http://api.t.sina.com.cn/short_url/expand.json?source='.$apiKey.'&url_short='.$short_url;
$response = file_get_contents($apiUrl);
$json = json_decode($response);
return $json[0]->url_long;
}
好,容易吗?
调试上面代码的时候,需要填写自己的API key,不然肯定拿不到。
特别说明:短地址服务现在只为经过认证的APP KEY提供服务,刚刚申请的APP KEY会提示没有权限。可以使用209678993和3818214747这两个KEY进行测试。这两个KEY的来源不明,不推荐用于生产。(感谢您的提醒)
Jucelin 写了一个调试文档,你可以测试一下:
长到短:://
短到长::///S4bLBm
参数只有2个,类型:1表示长转短,2表示短转长,后面的URL是目标域名,因为懒所以没有错误判断,新浪微博短地址不支持短地址和那么短地址是的,逻辑上应该是这样控制的。(不信你可以试试)。