后台集成-使用百度小程序api提交小程序路径


背景:解决手动提交小程序资源的繁琐,直接在cms后台进行提交.本文完全适用与使用pbootcms建站的网站小程序,本文采用的是php语言,所以针对php的站点也有较大的参考.其他语言的话只有一部分参考价值

主要修改的地方/文件:

前端展示:

\apps\admin\view\default\content\content.html

后端方法:

\apps\admin\controller\content\ContentController.php

\apps\common\function.php

修改内容如下:

content.html中添加按钮入口,这里添加了三个,我们实际应用中视情况添加



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 . '
'; 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 }

后台样式如下: