1. ??
WeChat ?? ?????? ??? ? ?? ???? ????? ??????. ??? ?? ?? ?? ???? ?? ?? ?? ?? ??? ????. ???? ? ??? ???? ?? ??? ?? ????? ??? ??? ?? ??? ??? ? ????. ???? ??? ??? ???? ?? ?? ?? ?? ? ??? ??? ? ????. ??? ?? ?????? ?? ??? ?? ?? ??? ? ?? ???? ?????. ? ???? ???? ??? ?? ??? ??? ?? ??? ?? ??????? ??? ?????.
2. ???? ??
???? ?? ???? ?? ? ???? ??? ? ????. ?? ??? ??? ?? ??? ???? ??, ??, ?? ? ?? ??? ??? ? ????. ??? ?? ?? ?????? ?? ??? ??? ??? ? ????.
??(?? ???):
???? ?? ?? ??? ???? WeChat ??? ?? ???? ????? ?????. ??? ?????(??? ??)? ?? ???? ??? ? ?? ??? ???? ???? ???? ? ?? ?? ???? ??? ? ????.
??(???? ??):
???? ?? ?? ??? ???? ???? ??? URL? ?? ?????.
WeChat ????? ???? ?? ??? ?? ??? ??? ? WeChat ?????? ???? ? 24??? ?????. ????? ? ?? ??? ???? ?? ? ?? ???? ??? ??? ?? ? ??? ????? ?? ??????.
?? ??: 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. ??? ??
3.1 appid ? appsecret ??
WeChat ?? ???> ?? ??>?? appid ? appsecret? ????.
3.2 appid ? appsecret? ???? WeChat ?? ?? ?? ??????? access_token? ?????
?? ??: https://api. weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid=APPID&secret=APPSECRET
?? ???? ??:
grant_type: access_token? ???? client_credential
appid? ?????. : ?? ??? ?? ?? ??
secret: ?? ???? ?? ?? ?? ?, ? ? appsecret
?? ??:
??? Json ?? ??:
{"access_token":"ACCESS_TOKEN","expires_in":7200}
?? ???? ??:
access_token: ??? ???
expires_in: ??? ?? ??, ??: ?
3.3 ???? ??
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);?>
??? ??? ???? :
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;?>
??: access_token? ?? ??? ???? ????? ??? ?????. ????? ???? ??? access_token? ??????.
4. ?? ???
??: POST ?? ?? ??? WeChat ?????? ??? ?? ??.
?? ??: 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" ???}] }
?? ?:
?? ?? ? ??:
{ ?"button":[?????????????//button定義該結構為一個菜單 ??{ ???????"name":"分支主菜單名", ???????"sub_button":[ //sub_button定義子菜單 ????????{ ???????????"type":"click", //按鈕類型 ???????????"name":"分支子菜單名1", //菜單名稱 ???????????"key":"loveSuzhou" //菜單key值 ????????}, ????????{ ???????????"type":"click", ???????????"name":"分支子菜單名2", ???????????"key":"liveSuzhou" ????????}] ???}, //菜單之間用?,?分隔 ???{ ???????"type":"click", ???????"name":"獨立菜單", ???????"key":"lianxiUs" ???}] }
?? ??:
??? Json ?? ??:
{"errcode":0,"errmsg":"ok"}
?? ??:
curl? ?? ?? ?? ???? ?????. ??? ??? ????.
$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)建菜單的代碼提交到服務器后,并不是自動就出來了,需要通過執(zhí)行該代碼文件才能生成,所以,打開瀏覽器,在地址欄里輸入完整的菜單代碼URL,運行結果如下:
測試結果:
菜單創(chuà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;
運行結果:
菜單查詢成功。
六、刪除菜單
取消當前使用的自定義菜單。
請求地址: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?"菜單刪除失敗"; }
運行結果:
測試結果:
菜單刪除成功。
七、完整代碼獲取
請訪問?樂思樂享?官方網盤
URL:http://pan.baidu.com/s/1c0s3Jby
八、關注
請關注?卓錦蘇州?微信公眾帳號,卓錦蘇州?基于BAE 平臺開發(fā),針對于主流的微信功能進行開發(fā)測試。
您可以關注?卓錦蘇州?公眾帳號進行功能測試,以及獲取新的應用開發(fā)。
1. 登錄微信客戶端,通訊錄 -> 添加朋友 -> 查找公眾號 ->?zhuojinsz,查找并關注。
卓錦蘇州?菜單功能:
?
更多WeChat ?? ??? ?? ??? ?? ?? ??相關文章請關注PHP中文網!

? AI ??

Undress AI Tool
??? ???? ??

Undresser.AI Undress
???? ?? ??? ??? ?? AI ?? ?

AI Clothes Remover
???? ?? ???? ??? AI ?????.

Clothoff.io
AI ? ???

Video Face Swap
??? ??? AI ?? ?? ??? ???? ?? ???? ??? ?? ????!

?? ??

??? ??

???++7.3.1
???? ?? ?? ?? ???

SublimeText3 ??? ??
??? ??, ???? ?? ????.

???? 13.0.1 ???
??? PHP ?? ?? ??

???? CS6
??? ? ?? ??

SublimeText3 Mac ??
? ??? ?? ?? ?????(SublimeText3)