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

 
 

 
 

 
 

 
 

 
 

 
 

 
 

 
 

 
 

版权声明:本文为tiankx原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://www.cnblogs.com/tiankx/p/13888256.html