溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

微信公眾平臺如何開發(fā)自定義菜單功能

發(fā)布時間:2021-09-06 15:50:40 來源:億速云 閱讀:92 作者:小新 欄目:移動開發(fā)

這篇文章將為大家詳細講解有關(guān)微信公眾平臺如何開發(fā)自定義菜單功能,小編覺得挺實用的,因此分享給大家做個參考,希望大家閱讀完這篇文章后可以有所收獲。

一、簡介

微信公眾平臺服務(wù)號以及之前成功申請內(nèi)測資格的訂閱號都具有自定義菜單的功能。開發(fā)者可利用該功能為公眾賬號的會話界面底部增加自定義菜單,用戶點擊菜單中的選項,可以調(diào)出相應(yīng)的回復(fù)信息或網(wǎng)頁鏈接。自定義菜單接口將為公眾賬號的信息展示空間提供更多可能性。

二、官方說明

開發(fā)者獲取使用憑證后,可以使用該憑證對公眾賬號的自定義菜單進行創(chuàng)建、查詢和刪除等操作。 自定義菜單接口可實現(xiàn)以下類型按鈕:

click(點擊事件):

用戶點擊click類型按鈕后,微信服務(wù)器會通過消息接口(event類型)推送點擊事件給開發(fā)者,并且?guī)习粹o中開發(fā)者填寫的key值,開發(fā)者可以通過自定義的key值進行消息回復(fù)。

view(訪問網(wǎng)頁):

用戶點擊view類型按鈕后,會直接跳轉(zhuǎn)到開發(fā)者指定的url中。

創(chuàng)建自定義菜單后,由于微信客戶端緩存,需要24小時微信客戶端才會展現(xiàn)出來。建議測試時可以嘗試取消關(guān)注公眾賬號后,再次關(guān)注,則可以看到創(chuàng)建后的效果。

文檔地址:http://mp.weixin.qq.com/wiki/index.php?title=%E8%87%AA%E5%AE%9A%E4%B9%89%E8%8F%9C%E5%8D%95%E6%8E%A5%E5%8F%A3

三、獲取使用憑證

3.1 獲取appid 和appsecret

在 微信公眾平臺 > 高級功能 > 開發(fā)模式中找到appid 和appsecret。

微信公眾平臺如何開發(fā)自定義菜單功能

3.2 使用appid 和appsecret 向微信憑證獲取接口請求access_token

請求地址:https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid=APPID&secret=APPSECRET

請求參數(shù)說明:

grant_type:獲取access_token填寫client_credential

appid:第三方用戶唯一憑證

secret:第三方用戶唯一憑證密鑰,既appsecret

返回說明:

正確的Json返回結(jié)果:

{"access_token":"ACCESS_TOKEN","expires_in":7200}

返回參數(shù)說明:

access_token:獲取到的憑證

expires_in:憑證有效時間,單位:秒

3.3 具體實現(xiàn)

a. 打印出格式

<?php$APPID="wxdxxxxxxxxxxxxxxx";$APPSECRET="96xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx";$TOKEN_URL="https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid=".$APPID."&secret=".$APPSECRET;$json=file_get_contents($TOKEN_URL);$result=json_decode($json,true);print_r($result);?>

結(jié)果如下:

微信公眾平臺如何開發(fā)自定義菜單功能

b. 獲取access_token

<?php$APPID="wxdxxxxxxxxxxxxxxx";$APPSECRET="96xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx";$TOKEN_URL="https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid=".$APPID."&secret=".$APPSECRET;$json=file_get_contents($TOKEN_URL);$result=json_decode($json,true);$ACC_TOKEN=$result['access_token'];echo $ACC_TOKEN;?>

微信公眾平臺如何開發(fā)自定義菜單功能

注:access_token對應(yīng)于公眾號是全局唯一的票據(jù),重復(fù)獲取將導(dǎo)致上次獲取的access_token失效。

四、創(chuàng)建菜單

方法:通過POST一個特定結(jié)構(gòu)體,實現(xiàn)在微信客戶端創(chuàng)建自定義菜單。

請求地址:https://api.weixin.qq.com/cgi-bin/menu/create?access_token=ACCESS_TOKEN

請求示例:

{
 "button":[
 {
       "name":"公共查詢",
       "sub_button":[
        {
           "type":"click",
           "name":"天氣查詢",
           "key":"tianQi"
        },
        {
           "type":"click",
           "name":"公交查詢",
           "key":"gongJiao"
        },
        {
           "type":"click",
           "name":"翻譯",
           "key":"fanYi"
        }]
  },
  {
       "name":"蘇州本地",
       "sub_button":[
        {
           "type":"click",
           "name":"愛上蘇州",
           "key":"loveSuzhou"
        },
        {
           "type":"click",
           "name":"蘇州景點",
           "key":"suzhouScenic"
        },
        {
           "type":"click",
           "name":"蘇州美食",
           "key":"suzhouFood"
        },
        {
           "type":"click",
           "name":"住在蘇州",
           "key":"liveSuzhou"
        }]
   },
   {
       "type":"click",
       "name":"聯(lián)系我們",
       "key":"lianxiUs"
   }]
}

示例說明:

菜單結(jié)構(gòu)及說明:

{
 "button":[             //button定義該結(jié)構(gòu)為一個菜單
  {
       "name":"分支主菜單名",  
       "sub_button":[    //sub_button定義子菜單
        {
           "type":"click",  //按鈕類型
           "name":"分支子菜單名1",  //菜單名稱
           "key":"loveSuzhou"  //菜單key值
        },
        {
           "type":"click",
           "name":"分支子菜單名2",
           "key":"liveSuzhou"
        }]
   },    //菜單之間用 , 分隔
   {
       "type":"click",
       "name":"獨立菜單",
       "key":"lianxiUs"
   }]
}

返回說明:

正確的Json返回結(jié)果:

{"errcode":0,"errmsg":"ok"}

提交菜單:

通過curl 提交以上的菜單數(shù)據(jù),代碼如下:

$MENU_URL="https://api.weixin.qq.com/cgi-bin/menu/create?access_token=".$ACC_TOKEN;$ch = curl_init(); 

curl_setopt($ch, CURLOPT_URL, $MENU_URL); 
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "POST");
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE); 
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, FALSE);
curl_setopt($ch, CURLOPT_USERAGENT, 'Mozilla/5.0 (compatible; MSIE 5.01; Windows NT 5.0)');
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);
curl_setopt($ch, CURLOPT_AUTOREFERER, 1); 
curl_setopt($ch, CURLOPT_POSTFIELDS, $data);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); 

$info = curl_exec($ch);if (curl_errno($ch)) {    echo 'Errno'.curl_error($ch);
}

curl_close($ch);var_dump($info);

生成菜單:

創(chuàng)建菜單的代碼提交到服務(wù)器后,并不是自動就出來了,需要通過執(zhí)行該代碼文件才能生成,所以,打開瀏覽器,在地址欄里輸入完整的菜單代碼URL,運行結(jié)果如下:

微信公眾平臺如何開發(fā)自定義菜單功能

測試結(jié)果:

微信公眾平臺如何開發(fā)自定義菜單功能

菜單創(chuàng)建成功。

五、查詢菜單

查詢當(dāng)前使用的自定義菜單結(jié)構(gòu)。

請求地址:https://api.weixin.qq.com/cgi-bin/menu/get?access_token=ACCESS_TOKEN

curl 代碼如下:

$MENU_URL="https://api.weixin.qq.com/cgi-bin/menu/get?access_token=".$ACC_TOKEN;$cu = curl_init();
curl_setopt($cu, CURLOPT_URL, $MENU_URL);
curl_setopt($cu, CURLOPT_RETURNTRANSFER, 1);$menu_json = curl_exec($cu);$menu = json_decode($menu_json);
curl_close($cu);echo $menu_json;

運行結(jié)果:

微信公眾平臺如何開發(fā)自定義菜單功能

菜單查詢成功。

六、刪除菜單

取消當(dāng)前使用的自定義菜單。

請求地址:https://api.weixin.qq.com/cgi-bin/menu/delete?access_token=ACCESS_TOKEN

curl 代碼如下:

$MENU_URL="https://api.weixin.qq.com/cgi-bin/menu/delete?access_token=".$ACC_TOKEN;$cu = curl_init();
curl_setopt($cu, CURLOPT_URL, $MENU_URL);
curl_setopt($cu, CURLOPT_RETURNTRANSFER, 1);$info = curl_exec($cu);$res = json_decode($info);
curl_close($cu);if($res->errcode == "0"){    echo "菜單刪除成功";
}else{    echo "菜單刪除失敗";
}

運行結(jié)果:

微信公眾平臺如何開發(fā)自定義菜單功能

測試結(jié)果:

微信公眾平臺如何開發(fā)自定義菜單功能

菜單刪除成功。

七、完整代碼獲取

請訪問 樂思樂享 官方網(wǎng)盤

URL:http://pan.baidu.com/s/1c0s3Jby

八、關(guān)注

請關(guān)注 卓錦蘇州 微信公眾帳號,卓錦蘇州 基于BAE 平臺開發(fā),針對于主流的微信功能進行開發(fā)測試。

您可以關(guān)注 卓錦蘇州 公眾帳號進行功能測試,以及獲取新的應(yīng)用開發(fā)。

1. 登錄微信客戶端,通訊錄 -> 添加朋友 -> 查找公眾號 -> zhuojinsz,查找并關(guān)注。

卓錦蘇州 菜單功能:

微信公眾平臺如何開發(fā)自定義菜單功能

關(guān)于“微信公眾平臺如何開發(fā)自定義菜單功能”這篇文章就分享到這里了,希望以上內(nèi)容可以對大家有一定的幫助,使各位可以學(xué)到更多知識,如果覺得文章不錯,請把它分享出去讓更多的人看到。

向AI問一下細節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI