后台集成-使用百度小程序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 }
复制代码

后台样式如下:

 

posted @   玄之又玄众妙之门  阅读(121)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 记一次.NET内存居高不下排查解决与启示
· DeepSeek 开源周回顾「GitHub 热点速览」
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了

哦哦查

研学服务

知芽网

醉学网

点击右上角即可分享
微信分享提示