微信公众号开发 自定义菜单创建
2018-01-02 14:50
661 查看
接口调用请求说明
http请求方式:POST(请使用https协议) https://api.weixin.qq.com/cgi-bin/menu/create?access_token=ACCESS_TOKEN
正确时的返回JSON数据包如下:
错误时的返回JSON数据包如下(示例为无效菜单名长度):
基于常识,我们知道微信公众号菜单有3层,如图:
菜单中还有按钮,按钮点开还有菜单,菜单点开中还有按钮
建立菜单pojo类:
菜单类:
按钮基类:
二级菜单(包含按钮):
一级菜单(包含按钮,点击后出现上拉框):
按钮点击事件pojo:
实例化菜单模板
拿到access_token向微信发请求要求创建菜单:
http请求方式:POST(请使用https协议) https://api.weixin.qq.com/cgi-bin/menu/create?access_token=ACCESS_TOKEN
正确时的返回JSON数据包如下:
{"errcode":0,"errmsg":"ok"}
错误时的返回JSON数据包如下(示例为无效菜单名长度):
{"errcode":40018,"errmsg":"invalid button name size"}
基于常识,我们知道微信公众号菜单有3层,如图:
菜单中还有按钮,按钮点开还有菜单,菜单点开中还有按钮
建立菜单pojo类:
菜单类:
public class Menu { private Button[] button; public Button[] getButton() { return button; } public void setButton(Button[] button) { this.button = button; } }
按钮基类:
/* * 所属:menu * 描述:项目下的基类 */ public class Button { private String name;//所有一级菜单、二级菜单都共有一个相同的属性,那就是name public String getName() { return name; } public void setName(String name) { this.name = name; } }
二级菜单(包含按钮):
public class CommonButton extends Button { private String type; private String key; public String getType() { return type; } public void setType(String type) { this.type = type; } public String getKey() { return key; } public void setKey(String key) { this.key = key; } }
一级菜单(包含按钮,点击后出现上拉框):
public class ComplexButton extends Button { private Button[] sub_button; public Button[] getSub_button() { return sub_button; } public void setSub_button(Button[] sub_button) { this.sub_button = sub_button; } }
按钮点击事件pojo:
/* 参数 描述 ToUserName 开发者 微信号 FromUserName 发送方帐号(一个OpenID) CreateTime 消息创建时间 (整型) MsgType 消息类型,event Event 事件类型,CLICK EventKey 事件KEY值,与自定义菜单接口中KEY值对应 * */ public ab08 class MenuClick extends Message { private String Event; private String EventKey; public String getEvent() { return Event; } public void setEvent(String event) { Event = event; } public String getEventKey() { return EventKey; } public void setEventKey(String eventKey) { EventKey = eventKey; } }
实例化菜单模板
private static Menu getMenu() { CommonButton btn11 = new CommonButton(); btn11.setName("授权邀请"); btn11.setType("click"); btn11.setKey("11"); CommonButton btn12 = new CommonButton(); btn12.setName("信息查询"); btn12.setType("click"); btn12.setKey("12"); CommonButton btn13 = new CommonButton(); btn13.setName("漏洞搜索"); btn13.setType("click"); btn13.setKey("13"); CommonButton btn31 = new CommonButton(); btn31.setName("天气查询"); btn31.setType("click"); btn31.setKey("31"); CommonButton btn32 = new CommonButton(); btn32.setName("电影排行榜"); btn32.setType("click"); btn32.setKey("32"); CommonButton btn33 = new CommonButton(); btn33.setName("幽默笑话"); btn33.setType("click"); btn33.setKey("33"); /** * 微信: mainBtn1,mainBtn2底部的2个一级菜单。 */ ComplexButton mainBtn1 = new ComplexButton(); mainBtn1.setName("工作助手"); // 一级下有多个子菜单 mainBtn1.setSub_button(new CommonButton[] { btn11, btn12, btn13 }); ComplexButton mainBtn2 = new ComplexButton(); mainBtn2.setName("生活管家"); mainBtn2.setSub_button(new CommonButton[] { btn31, btn32, btn33 }); /** * 封装整个菜单 */ Menu menu = new Menu(); menu.setButton(new Button[] { mainBtn1, mainBtn2 }); return menu; }
拿到access_token向微信发请求要求创建菜单:
public static int CreateMenu(Menu menu,String accessToken) { int result=0; String url=menu_create_url.replace("ACCESS_TOKEN", accessToken); String jsonMenu=JSONObject.fromObject(menu).toString(); JSONObject jsonObject=InterfaceUtil.httpRequest(url, "POST", jsonMenu); if (null!=jsonObject) { if (0!=jsonObject.getInt("errcode")) { result=jsonObject.getInt("errcode"); System.out.println("创建失败!"); } } return result; }
相关文章推荐
- 微信公众号开发系列-发展模式,创建自己的自定义菜单
- php之微信公众号开发(一)接入微信验证和创建自定义菜单
- [置顶] 基于springboot+mybatis的微信公众号开发第四篇-自定义菜单的查询、创建、删除及菜单事件响应
- 微信公众号开发——创建自定义菜单(PHP版)
- 微信公众号开发---自定义菜单的创建及菜单事件响应(java)
- 微信公众号开发---实现微信自定义菜单创建以及消息回复等
- .NET开发微信公众号之创建自定义菜单
- 和小猪一起搞微信公众号开发—创建自定义菜单
- 微信公众号开发系列-开发模式创建自定义菜单
- .NET微信公众号开发-2.0创建自定义菜单
- 使用C# .net开发微信公众号之创建自定义菜单
- 微信公众号开发(五)创建自定义菜单
- java版微信公众号开发之自定义菜单的创建
- .NET微信公众号开发之创建自定义菜单
- 微信公众号开发之创建自定义菜单
- 微信公众帐号开发教程第14篇-自定义菜单的创建及菜单事件响应 (Java版)
- 第六篇 :微信公众平台开发实战Java版之如何自定义微信公众号菜单
- 玩一玩微信公众号开发(二) 管理凭据和自定义菜单
- 微信公众帐号自定义菜单创建及事件响应开发教程 附源代码(转)
- php 开发微信公众号杂记————自定义菜单