Code
<?php
$appid = "xxxxxx";
$appsecret = "xxxxxx";
$url = "https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid=$appid&secret=$appsecret";
$output = https_request($url);
$jsoninfo = json_decode($output, true);
$access_token = $jsoninfo["access_token"];
$jsonmenu = '{
"button": [
{
"name": "掃碼",
"sub_button": [
{
"type": "scancode_waitmsg",
"name": "掃碼帶提示",
"key": "rselfmenu_0_0"
},
{
"type": "scancode_push",
"name": "掃碼推事件",
"key": "rselfmenu_0_1"
}
]
},
{
"name": "發(fā)圖",
"sub_button": [
{
"type": "pic_sysphoto",
"name": "系統(tǒng)拍照發(fā)圖",
"key": "rselfmenu_1_0"
},
{
"type": "pic_photo_or_album",
"name": "拍照或者相冊(cè)發(fā)圖",
"key": "rselfmenu_1_1"
},
{
"type": "pic_weixin",
"name": "微信相冊(cè)發(fā)圖",
"key": "rselfmenu_1_2"
}
]
}
]
}';
$url = "https://api.weixin.qq.com/cgi-bin/menu/create?access_token=".$access_token;
$result = https_request($url, $jsonmenu);
var_dump($result);
function https_request($url,$data = null){
$curl = curl_init(); // 初始化cURL會(huì)話
// 用curl_setopt()設(shè)置傳輸選項(xiàng)
curl_setopt($curl, CURLOPT_URL, $url); // 需要獲取的URL地址
curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, FALSE); // 禁止驗(yàn)證HTTPS證書(shū)是否有效
curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, FALSE); // 禁止檢查SSL證書(shū)
if (!empty($data)){
curl_setopt($curl, CURLOPT_POST, 1); // 發(fā)送POST請(qǐng)求
curl_setopt($curl, CURLOPT_POSTFIELDS, $data); // 傳參
}
curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1); // 將curl_exec()獲取的信息以字符串返回搓译,而不是直接輸出
$output = curl_exec($curl); // 執(zhí)行cURL會(huì)話
curl_close($curl); // 關(guān)閉cURL會(huì)話
return $output; // 返回結(jié)果
}
?>
參數(shù)說(shuō)明
注:創(chuàng)建自定義菜單后伞梯,菜單的刷新策略是,在用戶(hù)進(jìn)入公眾號(hào)會(huì)話頁(yè)或公眾號(hào)profile頁(yè)時(shí)洲愤,如果發(fā)現(xiàn)上一次拉取菜單的請(qǐng)求在5分鐘以前宰闰,就會(huì)拉取一下菜單称簿,如果菜單有更新耸棒,就會(huì)刷新客戶(hù)端的菜單丰歌。測(cè)試時(shí)可以嘗試取消關(guān)注公眾賬號(hào)后再次關(guān)注,則可以看到創(chuàng)建后的效果屉凯。