600字范文,内容丰富有趣,生活中的好帮手!
600字范文 > 微信公众号实现长链接转短链接!w.url.cn短网址生成

微信公众号实现长链接转短链接!w.url.cn短网址生成

时间:2022-06-06 09:53:54

相关推荐

微信公众号实现长链接转短链接!w.url.cn短网址生成

微信公众号开发者平台提供短网址生成的API,最终生成的短网址是的,下面是详细的代码。

官方文档

https://developers./doc/offiaccount/Account_Management/URL_Shortener.html

请求参数

access_token

action此处填long2short,代表长链接转短链接

long_url需要转换的原链接

HTTP POST请求网址

https://api./cgi-bin/shorturl?access_token=ACCESS_TOKEN

请求流程

1、获取本地缓存的access_token,如果超过有效期,则重新获取,如果还没过期,直接使用缓存的access_token

2、构建请求参数,发起POST请求

3、获得短网址

代码

appid和appsecret可以申请一个微信公众号测试账号进行开发,申请地址:http://mp./debug...

<?phpheader("Content-type:application/json");// 声明APPID、APPSECRET$appid = "xxx";$appsecret = "xxx";// 获取access_token和jsapi_ticketfunction getToken(){$file = file_get_contents("access_token.json",true);//读取access_token.json里面的数据$result = json_decode($file,true);//判断access_token是否在有效期内,如果在有效期则获取缓存的access_token//如果过期了则请求接口生成新的access_token并且缓存access_token.jsonif (time() > $result['expires']){$data = array();$data['access_token'] = getNewToken();$data['expires'] = time()+7000;$jsonStr = json_encode($data);$fp = fopen("access_token.json", "w");fwrite($fp, $jsonStr);fclose($fp);return $data['access_token'];}else{return $result['access_token'];}}//获取新的access_tokenfunction getNewToken($appid,$appsecret){global $appid;global $appsecret;$url = "https://api./cgi-bin/token?grant_type=client_credential&appid=".$appid."&secret=".$appsecret."";$access_token_Arr = file_get_contents($url);$token_jsonarr = json_decode($access_token_Arr, true);return $token_jsonarr["access_token"];}// 获得长链接$long_url = trim($_GET["long_url"]);// 过滤if (empty($long_url)) {$result = array("result" => "101","msg" => "请传入长链接");} else if (strpos($long_url,'http') !== false){//初始化 CURL$ch = curl_init();//请求地址 curl_setopt($ch, CURLOPT_URL, 'https://api./cgi-bin/shorturl?access_token='.getToken());curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "POST");$postdata = '{"action":"long2short","long_url":"'.$long_url.'"}'; curl_setopt($ch, CURLOPT_POSTFIELDS, $postdata);// 对认证证书来源的检查curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 0);// 从证书中检查SSL加密算法是否存在curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 2);//获取的信息以文件流的形式返回,而不是直接输出curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);//发起请求$dwzStr = curl_exec($ch);//解析数据$arr_dwzStr = json_decode($dwzStr, true);$dwz = $arr_dwzStr["short_url"];//关闭请求curl_close($ch);// 返回结果$result = array("result" => "100","msg" => "解析成功","dwz" => $dwz);}else{$result = array("result" => "102","msg" => "长链接不合法");}// 返回JSONecho json_encode($result,JSON_UNESCAPED_UNICODE);?>

生成示例

{"result":"100","msg":"生成成功","dwz":"https:\/\/\/s\/AF5p0UM"}

体验

/api/wurl/?long_url=长链接

Author:TANKING

Date:-09-18

Web:

WeChat:face6009

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。