上一篇降到如何使用微信接口在线测试工具生成菜单,本篇讲述如何使用代码生成菜单。原理很简单,只要获取了access_token(可以在在线工具获取,后续会讲述如何使用代码获取并存储access_token),然后将菜单编辑成json形式的字符串,使用post方法发送给接口的URL就行了。本代码由于为了方便展示,只进行初步函数封装,后续会把这些接口封装成类方便调用。
setmenu.php代码如下
//post请求方法
function request_post($url,$data){
$ch = curl_init();
$opts = array(
CURLOPT_SSL_VERIFYPEER => false,
CURLOPT_SSL_VERIFYHOST => false,
CURLOPT_TIMEOUT => 30,
CURLOPT_RETURNTRANSFER => true,
CURLOPT_URL => $url,
CURLOPT_POST => true,
CURLOPT_POSTFIELDS => $data
);
curl_setopt_array($ch,$opts);
$output = curl_exec($ch);
if(curl_errno($ch)){
var_dump(curl_error($ch));
die;
}
curl_close($ch);
$result = json_decode($output,true);
return $result;
}
//设置菜单方法,$menu参数为json字符串
function set_menu($access_token,$menu){
$url = "https://api.weixin.qq.com/cgi-bin/menu/create?access_token=$access_token";
$result = request_post($url,$menu);
return $result;
}
$access_token = 'your access_token';
$menu = '{
"button": [
{
"name": "关于我们",
"sub_button": [
{
"type": "click",
"name": "走进田园",
"key": "走进田园"
},
{
"type": "click",
"name": "主营项目",
"key": "主营项目"
},
{
"type": "view",
"name": "地图定位",
"url": "http://www.baidu.com"
}
]
},
{
"name": "好货商城",
"sub_button": [
{
"type": "click",
"name": "好货商城",
"key": "好货商城"
},
{
"type": "click",
"name": "会员中心",
"key": "会员中心"
},
{
"type": "click",
"name": "会员招募",
"key": "会员招募"
}
]
},
{
"name": "活动定制",
"sub_button": [
{
"type": "click",
"name": "活动定制",
"key": "活动定制"
},
{
"type": "click",
"name": "惊喜预告",
"key": "惊喜预告"
},
{
"type": "click",
"name": "预约观光",
"key": "预约观光"
}
]
}
]
}';
set_menu($access_token,$menu);//设置菜单
//
最后访问一下setmenu.php就可以生成自定义菜单了