1. 程式人生 > >微信公眾號生成個性化選單

微信公眾號生成個性化選單

微信公眾號後來新增的介面,可以生成個性化選單,可以先看下個性化選單與自定義選單的資料格式有哪些不同。

在原有的資料格式基礎上,增加了以下部分:

"matchrule":{
  "group_id":"2",
  "sex":"1",
  "country":"中國",
  "province":"廣東",
  "city":"廣州",
  "client_platform_type":"2"
  "language":"zh_CN"
  }
也就是匹配規則,這個匹配是完全匹配,即當符合所有的匹配條件的時候才會出發定義的個性化選單。另一點,必須得先定義自定義選單的基礎上才可以再實現個性化選單。

解釋一下:group_id就是分組的名稱,不同的分組有不同的id號,這個可以做一個二次開發,比如說不同分組的使用者可以看到的是不同的選單,那麼問題來了,如何讓使用者自動進入不同的分組呢,這裡就有一個點,即使用者在關注的時候,掃描帶引數二維碼實現自動分組、掃描不同二維碼實現自動分組,在此請參考我的另2篇文章,掃描帶引數二維碼實現自動分組的功能,http://blog.csdn.net/naruto668/article/details/52374082

sex是根據使用者性別區分;country,province,city這個說句心裡話可能不太準確,具體可根據地理位置的不同來做大致的劃分,不要太當真。畢竟是使用者自己設定的,對吧~

client_platform_type客戶端版本,當前只具體到系統型號:IOS(1), Android(2),Others(3),不填則不做匹配

最後一欄代表著語言,這個其實沒什麼太大的區分度。

好了看程式碼實現。

<?php
 $jsonmenu='{
     "button":[
       {
           
               "type":"view",
               "name":"點",
               "url":"http://url.cn/420hqFb"
       },
      {
           "name":"掃",
           "sub_button":[
           {
               "type":"click",
               "name":"解碼手冊",
               "key":"V201"
            },
            {
               "type":"view",
               "name":"掃一掃",
               "url":"http://g-cat.me/platform/weixin/scanCode.do?code=dksj&share_voucher=voucher"
            }]
       },
       {
           "name":"挖",
           "sub_button":[
           
            {
               "type":"view",
               "name":"品牌故事",
               "url":"http://mp.weixin.qq.com/s?__biz=MzA3OTQ3Mzc2Mw==&mid=210864245&idx=1&sn=243961660f7eb8ad7f4e2410b4a354af&scene=18#wechat_redirect"
            },
            {
               "type":"view",
               "name":"門店資訊",
               "url":"http://mp.weixin.qq.com/s?__biz=MzA3OTQ3Mzc2Mw==&mid=442478945&idx=1&sn=49722ea5e9b293fcff6ca819c4b0b26d&scene=0#rd"
            },
            {
               "type":"view",
               "name":"往期文章",
               "url":"http://mp.weixin.qq.com/s?__biz=MzA3OTQ3Mzc2Mw==&mid=206509356&idx=1&sn=9daa46ba7a65e6b7daca01f43503a763&scene=0#rd"
            }]
       }],
       "matchrule":{
        "group_id":"140"
      }
 }';

//獲取accesstoken的實現我在前面已經講過了

require('Accesstoken.php');
$access_token=get_token();
$url = "https://api.weixin.qq.com/cgi-bin/menu/addconditional?access_token=".$access_token;
$result = https_request($url, $jsonmenu);
var_dump($result);
function https_request($url,$data = null){
    $curl = curl_init();
    curl_setopt($curl, CURLOPT_URL, $url);
    curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, FALSE);
    curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, FALSE);
    if (!empty($data)){
        curl_setopt($curl, CURLOPT_POST, 1);
        curl_setopt($curl, CURLOPT_POSTFIELDS, $data);
    }
    curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
    $output = curl_exec($curl);
    curl_close($curl);
    return $output;
}
?>