使用新浪微博开放平台api同步微博内容至自己网站(新浪微博短链接API是开放的,国外几家已经悲剧了)
优采云 发布时间: 2022-01-12 22:12使用新浪微博开放平台api同步微博内容至自己网站(新浪微博短链接API是开放的,国外几家已经悲剧了)
在短地址(也叫短链接、缩短地址等)方面,推特发展后,还在不断发展,很多互联网网站使用短地址,*敏*感*词*很多,但稳定且稳定。靠谱,国内的更靠谱。我不怕没有墙。几家外国公司已经遭遇了悲剧。因此,如果项目中使用短地址,我还是推荐使用新浪或者其他国内短链接服务。
新浪微博短链接API开放,腾讯微博短地址API未开放。我想通过不同的途径获取腾讯微博的API,但以失败告终。新浪微博短地址API不需要用户登录,直接调用即可,速度非常快。以下代码来自网站,使用CURL POST方法作为参考。
新浪微博短链接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 进行测试。这两个密钥的来源未知,不推荐用于生产。(感谢@congxz6688 的提醒)
jucelin写了一个调试文档,可以测试一下:
长到短:://
短到长::///S4bLBm
参数只有2个,类型:1表示长转短,2表示短转长,下面的网址是目标域名,因为懒,没有错误判断,新浪微博短地址不支持短地址和那么短地址是的,逻辑上应该是这样控制的。(不信可以试试)。
新浪微博短地址接口更详细的说明请参考“新浪微博短地址接口”。