


WeChat public platform development custom menu function development
Feb 14, 2017 am 11:35 AM1. Introduction
WeChat public platformService account and have successfully applied for internal testing before Qualified subscription accounts have the function of customizing menus. Developers can use this function to add a custom menu to the bottom of the public account's conversation interface. Users can click on the options in the menu to bring up the corresponding reply information or web link. The customized menu interface will provide more possibilities for the information display space of public accounts. This article will make a simple development application for custom menus, for readers’ reference.
2. Official description
After developers obtain the usage certificate, they can use the certificate to public Use the custom menu of the account to create, query, delete and other operations. The custom menu interface can implement the following types of buttons:
click (click event):
After the user clicks the click type button, the WeChat server will push the click event to the developer through the message interface (event type) , and bring the key value filled in by the developer in the button. The developer can reply to the message through the customized key value.
view (visit web page):
After the user clicks the view type button, it will jump directly to the url specified by the developer.
After creating a custom menu, due to WeChat client caching, it will take 24 hours for the WeChat client to display it. It is recommended that when testing, you can try to unfollow the public account and follow it again, and you can see the effect after creation.
Document address: 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. Obtain the usage voucher
3.1 Get the appid and appsecret
Find the appid and appsecret in WeChat Public Platform>Advanced Functions>Development Mode.
3.2 Use appid and appsecret to request access_token from the WeChat credential acquisition interface
Request address: https://api.weixin. qq.com/cgi-bin/token?grant_type=client_credential&appid=APPID&secret=APPSECRET
Request parameter description:
grant_type: Get access_token and fill in client_credential
appid: Third-party user Unique credential
secret: The third-party user’s unique credential key, both appsecret
Return description:
Correct Json return result:
{"access_token":"ACCESS_TOKEN","expires_in":7200}
Return parameter description:
access_token: Obtained voucher
expires_in: Voucher validity time, unit: seconds
3.3 Specific implementation
a. Print out the format
<?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);?>
The result is as follows :
b. Get 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;?>
Note: access_token corresponds to the public account and is a globally unique ticket. Repeated acquisition will cause the last access_token to become invalid.
4. Create menu
Method: POST a specific structure to achieve Create a custom menu on the WeChat client.
Request address: https://api.weixin.qq.com/cgi-bin/menu/create?access_token=ACCESS_TOKEN
Request example:
{ ?"button":[ ?{ ???????"name":"公共查詢(xún)", ???????"sub_button":[ ????????{ ???????????"type":"click", ???????????"name":"天氣查詢(xún)", ???????????"key":"tianQi" ????????}, ????????{ ???????????"type":"click", ???????????"name":"公交查詢(xún)", ???????????"key":"gongJiao" ????????}, ????????{ ???????????"type":"click", ???????????"name":"翻譯", ???????????"key":"fanYi" ????????}] ??}, ??{ ???????"name":"蘇州本地", ???????"sub_button":[ ????????{ ???????????"type":"click", ???????????"name":"愛(ài)上蘇州", ???????????"key":"loveSuzhou" ????????}, ????????{ ???????????"type":"click", ???????????"name":"蘇州景點(diǎn)", ???????????"key":"suzhouScenic" ????????}, ????????{ ???????????"type":"click", ???????????"name":"蘇州美食", ???????????"key":"suzhouFood" ????????}, ????????{ ???????????"type":"click", ???????????"name":"住在蘇州", ???????????"key":"liveSuzhou" ????????}] ???}, ???{ ???????"type":"click", ???????"name":"聯(lián)系我們", ???????"key":"lianxiUs" ???}] }
Example description:
Menu structure and description:
{ ?"button":[?????????????//button定義該結(jié)構(gòu)為一個(gè)菜單 ??{ ???????"name":"分支主菜單名", ???????"sub_button":[ //sub_button定義子菜單 ????????{ ???????????"type":"click", //按鈕類(lèi)型 ???????????"name":"分支子菜單名1", //菜單名稱(chēng) ???????????"key":"loveSuzhou" //菜單key值 ????????}, ????????{ ???????????"type":"click", ???????????"name":"分支子菜單名2", ???????????"key":"liveSuzhou" ????????}] ???}, //菜單之間用?,?分隔 ???{ ???????"type":"click", ???????"name":"獨(dú)立菜單", ???????"key":"lianxiUs" ???}] }
Return instructions:
Correct Json return result:
{"errcode":0,"errmsg":"ok"}
Submit menu:
Submit the above menu data through curl, the code is as follows:
$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);
Generate menu:
創(chuàng)建菜單的代碼提交到服務(wù)器后,并不是自動(dòng)就出來(lái)了,需要通過(guò)執(zhí)行該代碼文件才能生成,所以,打開(kāi)瀏覽器,在地址欄里輸入完整的菜單代碼URL,運(yùn)行結(jié)果如下:
測(cè)試結(jié)果:
菜單創(chuàng)建成功。
五、查詢(xún)菜單
查詢(xún)當(dāng)前使用的自定義菜單結(jié)構(gòu)。
請(qǐng)求地址: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;
運(yùn)行結(jié)果:
菜單查詢(xún)成功。
六、刪除菜單
取消當(dāng)前使用的自定義菜單。
請(qǐ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?"菜單刪除失敗"; }
運(yùn)行結(jié)果:
測(cè)試結(jié)果:
菜單刪除成功。
七、完整代碼獲取
請(qǐng)?jiān)L問(wèn)?樂(lè)思樂(lè)享?官方網(wǎng)盤(pán)
URL:http://pan.baidu.com/s/1c0s3Jby
八、關(guān)注
請(qǐng)關(guān)注?卓錦蘇州?微信公眾帳號(hào),卓錦蘇州?基于BAE 平臺(tái)開(kāi)發(fā),針對(duì)于主流的微信功能進(jìn)行開(kāi)發(fā)測(cè)試。
您可以關(guān)注?卓錦蘇州?公眾帳號(hào)進(jìn)行功能測(cè)試,以及獲取新的應(yīng)用開(kāi)發(fā)。
1. 登錄微信客戶(hù)端,通訊錄 -> 添加朋友 -> 查找公眾號(hào) ->?zhuojinsz,查找并關(guān)注。
卓錦蘇州?菜單功能:
?
更多WeChat public platform development custom menu function development相關(guān)文章請(qǐng)關(guān)注PHP中文網(wǎng)!

Hot AI Tools

Undress AI Tool
Undress images for free

Undresser.AI Undress
AI-powered app for creating realistic nude photos

AI Clothes Remover
Online AI tool for removing clothes from photos.

Clothoff.io
AI clothes remover

Video Face Swap
Swap faces in any video effortlessly with our completely free AI face swap tool!

Hot Article

Hot Tools

Notepad++7.3.1
Easy-to-use and free code editor

SublimeText3 Chinese version
Chinese version, very easy to use

Zend Studio 13.0.1
Powerful PHP integrated development environment

Dreamweaver CS6
Visual web development tools

SublimeText3 Mac version
God-level code editing software (SublimeText3)
