微信公众号开发自定义菜单模板

40018:检查ACCESS_TOKEN,需要使用测试号里的appID appSECRET

40016:建议比较json字符串,一般是属性值有误。

   

第一步:根据需求建立相关的类

    {
"button":[
{    
"type":"click",
"name":"今日歌曲",
"key":"V1001_TODAY_MUSIC"
},
{
"name":"菜单",
"sub_button":[
{  
"type":"view",
"name":"搜索",
"url":"http://www.soso.com/"
},

   

{
"type":"miniprogram",
"name":"wxa",
"url":"http://mp.weixin.qq.com",
"appid":"wx286b93c14bbf93aa",
"pagepath":"pages/lunar/index"
},

   

{
"type":"click",
"name":"赞一下我们",
"key":"V1001_GOOD"
}

]
}

]
}

   

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方接口,例如百度的图片文字识别…

   

   

   

   

   

   

   

   

   

posted @ 2020-10-27 22:43  黑质白章  阅读(1063)  评论(0编辑  收藏  举报