后台集成-使用百度小程序api提交小程序路径
背景:解决手动提交小程序资源的繁琐,直接在cms后台进行提交.本文完全适用与使用pbootcms建站的网站小程序,本文采用的是php语言,所以针对php的站点也有较大的参考.其他语言的话只有一部分参考价值
主要修改的地方/文件:
前端展示:
\apps\admin\view\default\content\content.html
后端方法:
\apps\admin\controller\content\ContentController.php
\apps\common\function.php
修改内容如下:
content.html中添加按钮入口,这里添加了三个,我们实际应用中视情况添加
<button type="submit" name="submit" value="baixcx_ri" class="layui-btn layui-btn-sm">百度天级推送</button>
<button type="submit" name="submit" value="baixcx_zhou" class="layui-btn layui-btn-sm">百度周级推送</button>
<button type="submit" name="submit" value="baixcx_chanpin" class="layui-btn layui-btn-sm">百度小程序_非新闻的推送</button>ss
ContentController.php中添加对应的处理逻辑:
1 case 'baixcx_ri': 2 $flag_num = 0; 3 $list = post('list'); 4 // $urls = post('urls'); 5 if (! $list) { 6 alert_back('请选择要推送的内容!'); 7 } 8 9 10 //$App_Key = $this->config('App_Key'); 11 12 // 开始推送 13 $domain = "/pages/news-detail/news-detail?id="; 14 15 foreach ($list as $key => $value) { 16 17 $url =$domain . $value; 18 19 $this->log('百度小程序收录推送:' . $url); 20 $post_urls .= $url . ','; 21 $flag_num++; 22 } 23 24 if(strlen($post_urls) > 5){ 25 $result = baiduMini(substr($post_urls,0,-1),1); 26 27 28 if ($result->errno == 0 || $result->errno == '0') { 29 alert_back('成功推送' . $flag_num . '条'); 30 31 } else { 32 alert_back('百度小程序收录推送发生错误:' . $result->msg); 33 } 34 }else{ 35 alert_back('百度小程序收录推送发生错误_链接获取失败'); 36 } 37 case 'baixcx_zhou': 38 $flag_num = 0; 39 $list = post('list'); 40 // $urls = post('urls'); 41 if (! $list) { 42 alert_back('请选择要推送的内容!'); 43 } 44 45 46 //$App_Key = $this->config('App_Key'); 47 48 // 开始推送 49 $domain = "/pages/news-detail/news-detail?id="; 50 51 foreach ($list as $key => $value) { 52 53 $url =$domain . $value; 54 55 $this->log('百度小程序收录推送:' . $url); 56 $post_urls .= $url . ','; 57 $flag_num++; 58 } 59 60 if(strlen($post_urls) > 5){ 61 $result = baiduMini(substr($post_urls,0,-1),0); 62 63 64 if ($result->errno == 0 || $result->errno == '0') { 65 alert_back('成功推送' . $flag_num . '条'); 66 67 } else { 68 alert_back('百度小程序收录推送发生错误:' . $result->msg); 69 } 70 }else{ 71 alert_back('百度小程序收录推送发生错误_链接获取失败'); 72 } 73 case 'baixcx_path': 74 $flag_num = 0; 75 $list = post('list'); 76 // $urls = post('urls'); 77 if (! $list) { 78 alert_back('请选择要推送的内容!'); 79 } 80 81 82 //$App_Key = $this->config('App_Key'); 83 84 // 开始推送 85 $domain = "/pages/news-detail/news-detail?id="; 86 87 foreach ($list as $key => $value) { 88 89 $url =$domain . $value; 90 91 $this->log('百度小程序收录推送:' . $url); 92 $post_urls .= $url . '<br/>'; 93 $flag_num++; 94 } 95 echo(substr($post_urls,0,-1)); 96 97 //$result = post_baidu($api, $post_urls); 98 case 'baixcx_chanpin': 99 $flag_num = 0; 100 $list = post('list'); 101 // $urls = post('urls'); 102 if (! $list) { 103 alert_back('请选择要推送的内容!'); 104 } 105 106 107 // 开始推送 108 $domain = "/pages/product-detail/product-detail?id="; 109 110 foreach ($list as $key => $value) { 111 112 $url =$domain . $value; 113 114 $this->log('百度普通收录推送:' . $url); 115 $post_urls .= $url . ','; 116 $flag_num++; 117 } 118 119 if(strlen($post_urls) > 5){ 120 $result = baiduMini(substr($post_urls,0,-1)); 121 122 if ($result->errno == 0 || $result->errno == '0') { 123 alert_back('成功推送' . $flag_num . '条'); 124 125 } else { 126 alert_back('百度小程序收录推送发生错误:' . $result->msg); 127 } 128 }else{ 129 alert_back('百度小程序收录推送发生错误_链接获取失败'); 130 } 131
function.php中添加提交方法,这里可以多加一个参数,表示提交等级的参数
1 function baiduMini($url,$type_num=0){ 2 $str=file_get_contents('https://openapi.baidu.com/oauth/2.0/token?grant_type=client_credentials&client_id='百度的key'&client_secret='百度的Secret'&scope=smartapp_snsapi_base'); 3 $array=json_decode($str,true); 4 $token=$array["access_token"]; 5 //$data['type'] = rand(0,1);//· 0:周级提交,一周左右生效; 1:天级提交,2~3 天生效; 2:小时级提交,1 小时内生效;3:优质资源提交,1 小时内生效 6 $data['type'] = $type_num; 7 $data['url_list'] = $url; 8 $api = 'https://openapi.baidu.com/rest/2.0/smartapp/access/submitsitemap/api?access_token='.$token; 9 $ch = curl_init(); 10 $options = array( 11 CURLOPT_URL => $api, 12 CURLOPT_POST => true, 13 CURLOPT_RETURNTRANSFER => true, 14 CURLOPT_NOBODY => false, 15 CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_0, 16 CURLOPT_POSTFIELDS => http_build_query($data), 17 CURLOPT_SSL_VERIFYPEER => false, 18 CURLOPT_HTTPHEADER => array('Content-Type: application/x-www-form-urlencoded'), 19 ); 20 curl_setopt_array($ch, $options); 21 $result = curl_exec($ch); 22 $data = json_encode($result, true); 23 24 return $data; 25 }
后台样式如下:
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 记一次.NET内存居高不下排查解决与启示
· DeepSeek 开源周回顾「GitHub 热点速览」
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了