微信公众号开发教程[011]-自定义菜单以及个性化菜单

来源:互联网 发布:去掉淘宝客链接 编辑:程序博客网 时间:2024/06/06 06:42

        我承接app微信公众号开发,如果有谁需要的话,可以惠顾我,谢谢.

QQ: 40678884

微信: szuzsq

主页: http://www.wxshaker.com

博客: http://blog.csdn.net/szuzsq

-------------------------------------------------------------------------------------------------------------------------------------



        自定义菜单最多包括3个一级菜单,每个一级菜单最多包含5个二级菜单.类型分别有click,view,scancode_push,scancode_waitmsg,pic_sysphoto,pic_photo_or_album,pic_weixin,location_select,media_id,view_limited.详见官方文档.



一.通用的自定义菜单

1).创建通用菜单.代码如下:

function create() {$ACCESS_TOKEN = "uZNdRwxNN3V7RwT5x_K8K21wNWfO1kX4dMH3JS0usWmXXMIB03-WWoTfMg8as1NyuznLfZK_GqYgJgqiYwIRO4dCK0ZbYNQd-5cxYSX5awA3TkEE-5Qn4QTneX8YIpnTJWJfABAZMZ";$url = "https://api.weixin.qq.com/cgi-bin/menu/create?access_token=$ACCESS_TOKEN";$data = '{"button": [{"type": "click","name": "今日歌曲","key": "V1001_TODAY_MUSIC"},{"name": "菜单","sub_button": [{"type": "click","name": "1.click.赞一下我们","key": "V1001_GOOD"},{"type": "view","name": "2.view.视频","url": "http://v.qq.com/"},{"type": "scancode_push","name": "3.scancode_push.扫码推事件","key": "rselfmenu_0_1","sub_button": []},{"type": "scancode_waitmsg","name": "4.scancode_waitmsg.扫码带提示","key": "rselfmenu_0_0","sub_button": []},{"type": "pic_sysphoto","name": "5.pic_sysphoto.系统拍照发图","key": "rselfmenu_1_0","sub_button": []}]},{"name": "菜单","sub_button": [{"type": "pic_photo_or_album","name": "6.pic_photo_or_album.拍照/相册发图","key": "rselfmenu_1_1","sub_button": []},{"type": "pic_weixin","name": "7.pic_weixin.微信相册发图","key": "rselfmenu_1_2","sub_button": []},{"type": "location_select","name": "8.location_select.发送位置","key": "rselfmenu_2_0"}]}]}';$result = curl_http_post($url, $data);echo $result;}

返回结果如下:

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

2).查询通用菜单.代码如下:

function query() {$ACCESS_TOKEN = "uZNdRwxNN3V7RwT5x_K8K21wNWfO1kX4dMH3JS0usWmXXMIB03-WWoTfMg8as1NyuznLfZK_GqYgJgqiYwIRO4dCK0ZbYNQd-5cxYSX5awA3TkEE-5Qn4QTneX8YIpnTJWJfABAZMZ";$url = "https://api.weixin.qq.com/cgi-bin/menu/get?access_token=$ACCESS_TOKEN";$result = curl_http_get($url);echo $result;}

返回结果如下:

{"button": [{"type": "click","name": "今日歌曲","key": "V1001_TODAY_MUSIC"},{"name": "菜单","sub_button": [{"type": "click","name": "1.click.赞一下我们","key": "V1001_GOOD"},{"type": "view","name": "2.view.视频","url": "http://v.qq.com/"},{"type": "scancode_push","name": "3.scancode_push.扫码推事件","key": "rselfmenu_0_1","sub_button": []},{"type": "scancode_waitmsg","name": "4.scancode_waitmsg.扫码带提示","key": "rselfmenu_0_0","sub_button": []},{"type": "pic_sysphoto","name": "5.pic_sysphoto.系统拍照发图","key": "rselfmenu_1_0","sub_button": []}]},{"name": "菜单","sub_button": [{"type": "pic_photo_or_album","name": "6.pic_photo_or_album.拍照/相册发图","key": "rselfmenu_1_1","sub_button": []},{"type": "pic_weixin","name": "7.pic_weixin.微信相册发图","key": "rselfmenu_1_2","sub_button": []},{"type": "location_select","name": "8.location_select.发送位置","key": "rselfmenu_2_0"}]}]}

3).获取自定义菜单配置接口.代码如下:

function info() {$ACCESS_TOKEN = "uZNdRwxNN3V7RwT5x_K8K21wNWfO1kX4dMH3JS0usWmXXMIB03-WWoTfMg8as1NyuznLfZK_GqYgJgqiYwIRO4dCK0ZbYNQd-5cxYSX5awA3TkEE-5Qn4QTneX8YIpnTJWJfABAZMZ";$url = "https://api.weixin.qq.com/cgi-bin/get_current_selfmenu_info?access_token=$ACCESS_TOKEN";$result = curl_http_get($url);echo $result;}

我这里和"2).查询通用菜单"结果一样.返回结果如下:

{"button": [{"type": "click","name": "今日歌曲","key": "V1001_TODAY_MUSIC"},{"name": "菜单","sub_button": [{"type": "click","name": "1.click.赞一下我们","key": "V1001_GOOD"},{"type": "view","name": "2.view.视频","url": "http://v.qq.com/"},{"type": "scancode_push","name": "3.scancode_push.扫码推事件","key": "rselfmenu_0_1","sub_button": []},{"type": "scancode_waitmsg","name": "4.scancode_waitmsg.扫码带提示","key": "rselfmenu_0_0","sub_button": []},{"type": "pic_sysphoto","name": "5.pic_sysphoto.系统拍照发图","key": "rselfmenu_1_0","sub_button": []}]},{"name": "菜单","sub_button": [{"type": "pic_photo_or_album","name": "6.pic_photo_or_album.拍照/相册发图","key": "rselfmenu_1_1","sub_button": []},{"type": "pic_weixin","name": "7.pic_weixin.微信相册发图","key": "rselfmenu_1_2","sub_button": []},{"type": "location_select","name": "8.location_select.发送位置","key": "rselfmenu_2_0"}]}]}



3).删除通用菜单.代码如下:

function delete() {$ACCESS_TOKEN = "uZNdRwxNN3V7RwT5x_K8K21wNWfO1kX4dMH3JS0usWmXXMIB03-WWoTfMg8as1NyuznLfZK_GqYgJgqiYwIRO4dCK0ZbYNQd-5cxYSX5awA3TkEE-5Qn4QTneX8YIpnTJWJfABAZMZ";$url = "https://api.weixin.qq.com/cgi-bin/menu/delete?access_token=$ACCESS_TOKEN";$result = curl_http_get($url);echo $result;}

返回结果如下:

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


4).自定义菜单事件推送.

        用户点击自定义菜单后,微信会把点击事件推送给开发者.我的结果如下:

<xml><ToUserName><![CDATA[gh_056dd68c0c2a]]></ToUserName><FromUserName><![CDATA[oe5SXv71irmrQ0TH-JxA-z_hmYLE]]></FromUserName><CreateTime>1468506310</CreateTime><MsgType><![CDATA[event]]></MsgType><Event><![CDATA[CLICK]]></Event><EventKey><![CDATA[V1001_GOOD]]></EventKey></xml><xml><ToUserName><![CDATA[gh_056dd68c0c2a]]></ToUserName><FromUserName><![CDATA[oe5SXv71irmrQ0TH-JxA-z_hmYLE]]></FromUserName><CreateTime>1468506313</CreateTime><MsgType><![CDATA[event]]></MsgType><Event><![CDATA[VIEW]]></Event><EventKey><![CDATA[http://v.qq.com/]]></EventKey><MenuId>413699252</MenuId></xml><xml><ToUserName><![CDATA[gh_056dd68c0c2a]]></ToUserName><FromUserName><![CDATA[oe5SXv71irmrQ0TH-JxA-z_hmYLE]]></FromUserName><CreateTime>1468506514</CreateTime><MsgType><![CDATA[event]]></MsgType><Event><![CDATA[scancode_push]]></Event><EventKey><![CDATA[rselfmenu_0_1]]></EventKey><ScanCodeInfo><ScanType><![CDATA[qrcode]]></ScanType><ScanResult><![CDATA[http://www.163.com]]></ScanResult></ScanCodeInfo></xml><xml><ToUserName><![CDATA[gh_056dd68c0c2a]]></ToUserName><FromUserName><![CDATA[oe5SXv71irmrQ0TH-JxA-z_hmYLE]]></FromUserName><CreateTime>1468506624</CreateTime><MsgType><![CDATA[event]]></MsgType><Event><![CDATA[scancode_waitmsg]]></Event><EventKey><![CDATA[rselfmenu_0_0]]></EventKey><ScanCodeInfo><ScanType><![CDATA[qrcode]]></ScanType><ScanResult><![CDATA[陈孟江,你这么吊,你妈妈知道么?]]></ScanResult></ScanCodeInfo></xml><xml><ToUserName><![CDATA[gh_056dd68c0c2a]]></ToUserName><FromUserName><![CDATA[oe5SXv71irmrQ0TH-JxA-z_hmYLE]]></FromUserName><CreateTime>1468506760</CreateTime><MsgType><![CDATA[event]]></MsgType><Event><![CDATA[pic_sysphoto]]></Event><EventKey><![CDATA[rselfmenu_1_0]]></EventKey><SendPicsInfo><Count>1</Count><PicList><item><PicMd5Sum><![CDATA[de785d149820eaae34d0f2d0298aa607]]></PicMd5Sum></item></PicList></SendPicsInfo></xml><xml><ToUserName><![CDATA[gh_056dd68c0c2a]]></ToUserName><FromUserName><![CDATA[oe5SXv71irmrQ0TH-JxA-z_hmYLE]]></FromUserName><CreateTime>1468506942</CreateTime><MsgType><![CDATA[event]]></MsgType><Event><![CDATA[pic_photo_or_album]]></Event><EventKey><![CDATA[rselfmenu_1_1]]></EventKey><SendPicsInfo><Count>1</Count><PicList><item><PicMd5Sum><![CDATA[5f8bba221fa5c0de7835776a59c1c677]]></PicMd5Sum></item></PicList></SendPicsInfo></xml><xml><ToUserName><![CDATA[gh_056dd68c0c2a]]></ToUserName><FromUserName><![CDATA[oe5SXv71irmrQ0TH-JxA-z_hmYLE]]></FromUserName><CreateTime>1468507103</CreateTime><MsgType><![CDATA[event]]></MsgType><Event><![CDATA[pic_weixin]]></Event><EventKey><![CDATA[rselfmenu_1_2]]></EventKey><SendPicsInfo><Count>0</Count><PicList></PicList></SendPicsInfo></xml><xml><ToUserName><![CDATA[gh_056dd68c0c2a]]></ToUserName><FromUserName><![CDATA[oe5SXv71irmrQ0TH-JxA-z_hmYLE]]></FromUserName><CreateTime>1468507124</CreateTime><MsgType><![CDATA[event]]></MsgType><Event><![CDATA[location_select]]></Event><EventKey><![CDATA[rselfmenu_2_0]]></EventKey><SendLocationInfo><Location_X><![CDATA[23]]></Location_X><Location_Y><![CDATA[114]]></Location_Y><Scale><![CDATA[15]]></Scale><Label><![CDATA[深圳市南山区西丽新围村小区内(西丽366大街东)]]></Label><Poiname><![CDATA[]]></Poiname></SendLocationInfo></xml>



二.个性化菜单

1 创建个性化菜单.代码如下:

function add() { //创建个性化菜单$ACCESS_TOKEN = "uZNdRwxNN3V7RwT5x_K8K21wNWfO1kX4dMH3JS0usWmXXMIB03-WWoTfMg8as1NyuznLfZK_GqYgJgqiYwIRO4dCK0ZbYNQd-5cxYSX5awA3TkEE-5Qn4QTneX8YIpnTJWJfABAZMZ";$url = "https://api.weixin.qq.com/cgi-bin/menu/addconditional?access_token=$ACCESS_TOKEN";$data = '{"button": [{"type": "click","name": "今日歌曲","key": "V1001_TODAY_MUSIC"},{"name": "菜单","sub_button": [{"type": "view","name": "搜索","url": "http://www.soso.com/"},{"type": "view","name": "视频","url": "http://v.qq.com/"},{"type": "click","name": "赞一下我们","key": "V1001_GOOD"}]}],"matchrule":{"sex": "1","country": "中国","province": "广东","city": "深圳","client_platform_type": "1","language": "zh_CN"}}';$result = curl_http_post($url, $data);echo $result;}

返回结果如下:

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

3).测试个性化菜单匹配结果.代码如下:

function match() { //测试个性化菜单匹配结果$ACCESS_TOKEN = "uZNdRwxNN3V7RwT5x_K8K21wNWfO1kX4dMH3JS0usWmXXMIB03-WWoTfMg8as1NyuznLfZK_GqYgJgqiYwIRO4dCK0ZbYNQd-5cxYSX5awA3TkEE-5Qn4QTneX8YIpnTJWJfABAZMZ";$url = "https://api.weixin.qq.com/cgi-bin/menu/trymatch?access_token=$ACCESS_TOKEN";$data = '{"user_id":"szuzsq"}';$result = curl_http_post($url, $data);echo $result;}

返回结果如下:

{"button": [{"type": "click","name": "今日歌曲","key": "V1001_TODAY_MUSIC"},{"name": "菜单","sub_button": [{"type": "view","name": "搜索","url": "http://www.soso.com/"},{"type": "view","name": "视频","url": "http://v.qq.com/"},{"type": "click","name": "赞一下我们","key": "V1001_GOOD"}]}]}

4). 删除个性化菜单.代码如下:

function del() { //删除个性化菜单$ACCESS_TOKEN = "uZNdRwxNN3V7RwT5x_K8K21wNWfO1kX4dMH3JS0usWmXXMIB03-WWoTfMg8as1NyuznLfZK_GqYgJgqiYwIRO4dCK0ZbYNQd-5cxYSX5awA3TkEE-5Qn4QTneX8YIpnTJWJfABAZMZ";$url = "https://api.weixin.qq.com/cgi-bin/menu/delconditional?access_token=$ACCESS_TOKEN";$data = '{"menuid":"413705287"}';$result = curl_http_post($url, $data);echo $result;}

返回结果如下:

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

5).查询个性化菜单.

使用普通自定义菜单查询接口可以获取默认菜单和全部个性化菜单信息.

6).删除个性化菜单

使用普通自定义菜单删除接口可以删除所有自定义菜单(包括默认菜单和全部个性化菜单).


三.效果图

        我只看到了通用的自定义菜单,个性化菜单没看到.官方档上说:"个性化菜单要求用户的微信客户端版本在iPhone6.2.2,Android6.2.4以上".4s的吊丝表示伤不起.如下图:



0 0
原创粉丝点击