php调用新浪API生成t.cn短网址链接
新浪提供了长链接转为短链接的API,可以把长链接转为 t.cn/xxx 这种格式的短链接。
API:
http://api.t.sina.com.cn/short_url/shorten.json (返回结果是JSON格式)
http://api.t.sina.com.cn/short_url/shorten.xml (返回结果是XML格式)
请求参数:
source 申请应用时分配的AppKey,调用接口时代表应用的唯一身份。
url_long 需要转换的长链接,需要URLencoded,最多不超过20个。
多个url参数需要使用如下方式请求:url_long=aaa&url_long=bbb
创建source方法
1.进入http://open.weibo.com/ ,选择菜单 微连接->网站接入。
2.点击立即接入,创建新应用,随便填写应用名称,点击创建。
3.创建成功后,AppKey就是source参数的值,可以用于请求创建短链接。
测试代码:
1 2 3 4 5 6 7 8 9 | <?php $api = 'http://api.t.sina.com.cn/short_url/shorten.json' ; // json // $api = 'http://api.t.sina.com.cn/short_url/shorten.xml'; // xml $source = '您申请的AppKey' ; $url_long = 'https://www.cnblogs.com/daxiangxm/' ; $request_url = sprintf( $api . '?source=%s&url_long=%s' , $source , $url_long ); $data = file_get_contents ( $request_url ); echo $data ; ?> |
返回JSON格式
1 2 3 4 5 6 7 | [ { "url_short" : "http:\/\/t.cn\/Rki0twp" , "url_long" : "http:\/\/www.cnblogs.com\/daxiangxm" , "type" : 0 } ] |
返回XML格式
1 2 3 4 5 6 | <?xml version= "1.0" encoding= "UTF-8" ?><urls> <url> <url_short>http: //t.cn/Rki0twp</url_short> <url_long>https: //www.cnblogs.com/daxiangxm/</url_long> <type>0</type> </url></urls> |
生成的短链接为 http://t.cn/Rki0twp ,访问会跳转到 https://www.cnblogs.com/daxiangxm/
完整调用方法如下:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 | <?php /** * 调用新浪接口将长链接转为短链接 * @param string $source 申请应用的AppKey * @param array|string $url_long 长链接,支持多个转换(需要先执行urlencode) * @return array */ function getSinaShortUrl( $source , $url_long ){ // 参数检查 if ( empty ( $source ) || ! $url_long ){<br> return false; } // 参数处理,字符串转为数组 if (! is_array ( $url_long )){<br> $url_long = array ( $url_long ); } // 拼接url_long参数请求格式 $url_param = array_map ( function ( $value ){ return '&url_long=' .urlencode( $value ); }, $url_long );<br> $url_param = implode( '' , $url_param ); // 新浪生成短链接接口 $api = 'http://api.t.sina.com.cn/short_url/shorten.json' ; // 请求url $request_url = sprintf( $api . '?source=%s%s' , $source , $url_param ); <br> $result = array (); // 执行请求 $ch = curl_init(); curl_setopt( $ch , CURLOPT_RETURNTRANSFER, true); curl_setopt( $ch , CURLOPT_URL, $request_url ); <br> $data = curl_exec( $ch );<br> if ( $error =curl_errno( $ch )){<br> return false; } curl_close( $ch ); $result = json_decode( $data , true); return $result ; } //AppKey <br>$source = '您申请的AppKey';<br>// 单个链接转换 $url_long = 'https://www.cnblogs.com/daxiangxm/' ;<br> $data = getSinaShortUrl( $source , $url_long ); print_r( $data );<br> // 多个链接转换 $url_long = array ( 'https://www.cnblogs.com/daxiangxm/' , 'https://www.cnblogs.com/daxiangxm/' , 'https://www.cnblogs.com/daxiangxm/' ); $data = getSinaShortUrl( $source , $url_long ); print_r( $data ); ?> |
输出:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 | Array( [0] => Array ( [url_short] => http: //t.cn/Rki0twp [url_long] => https: //www.cnblogs.com/daxiangxm/ [type] => 0 ) )Array( [0] => Array ( [url_short] => http: //t.cn/Rki0twp [url_long] => https: //www.cnblogs.com/daxiangxm/ [type] => 0 ) [1] => Array ( [url_short] => http: //t.cn/Rki0twp [url_long] => https: //www.cnblogs.com/daxiangxm/ [type] => 0 ) [2] => Array ( [url_short] => http: //t.cn/Rki0twp [url_long] => https: //www.cnblogs.com/daxiangxm/ [type] => 0 ) ) |
经测试,这个生成接口还是比较稳定的!
本文来自博客园,作者:大象已无形,转载请注明原文链接:https://www.cnblogs.com/mmm/p/9509199.html
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· AI与.NET技术实操系列(二):开始使用ML.NET
· 单线程的Redis速度为什么快?
· Pantheons:用 TypeScript 打造主流大模型对话的一站式集成库