微信公众号开发自定义菜单模板
40018:检查ACCESS_TOKEN,需要使用测试号里的appID appSECRET
40016:建议比较json字符串,一般是属性值有误。
第一步:根据需求建立相关的类
{
{
{ ]
] |
Button 类(button类的名称可以随便取,但是其它所有的类都是包含在,button类里面,所以这个时候button类需要一个集合),而且集合的属性名一定要是button.
|-click类(需要有type\name\key属性)
|-sub_button类(需要有name\sub_button属性,而且sub_button还必须是个集合)
|-view 类(需要有type\name\url属性)
|-miniprogram类(需要有type\name\url\appID\pagepath属性)
|click类
public static void main(String[] args) { Button button = new Button(); button.getButton().add(new ClickBtn("菜单1", "10")); button.getButton().add(new ViewBtn("菜单2", "http://www.baidu.com"));
List<abstractBtn> subBtn = new ArrayList<>(); subBtn.add(new ClickBtn("子菜单1", "31")); subBtn.add(new ViewBtn("news2", "http://news.163.com")); subBtn.add(new PicPhotoOrAlbum("照片",null, "33"));
button.getButton().add(new SubBtn("菜单3", subBtn)); //装配好之后就可以利用JSONObject进行转换 JSONObject obj = JSONObject.fromObject(button); System.out.println(obj); String url = "https://api.weixin.qq.com/cgi-bin/menu/create?access_token=ACCESS_TOKEN"; url = url.replace("ACCESS_TOKEN", TokenService.getAccessToken()); //post请求url,返回ok,菜单就成功创建 String result = MyUtil.post(url, obj.toString()); System.out.println(result); } |
菜单创建成功后可以尝试点击相应按钮,利用请求类型捕获对应的访问,并给与回复
同时,也可以接入3方接口,例如百度的图片文字识别…