微信公众号开发 - 11.查询删除自定义菜单
查询接口
使用接口创建自定义菜单后,开发者还可使用接口查询自定义菜单的结构。另外请注意,在设置了个性化菜单后,使用本自定义菜单查询接口可以获取默认菜单和全部个性化菜单信息。
请求说明
http请求方式:GET
https://api.weixin.qq.com/cgi-bin/menu/get?access_token=ACCESS_TOKEN
返回说明
直接返回json
删除接口
使用接口创建自定义菜单后,开发者还可使用接口删除当前使用的自定义菜单。另请注意,在个性化菜单时,调用此接口会删除默认菜单及全部个性化菜单。
请求说明
http请求方式:GET
https://api.weixin.qq.com/cgi-bin/menu/delete?access_token=ACCESS_TOKEN
返回说明
对应创建接口,正确的Json返回结果:
{"errcode":0,"errmsg":"ok"}
实现方法
/**
* 查询菜单
* @param token
* @return
* @throws ParseException
* @throws IOException
*/
public static JSONObject queryMenu(String token) throws Exception{
String url = QUERY_MENU_URL.replace("ACCESS_TOKEN", token);
JSONObject jsonObject = doGetStr(url);
return jsonObject;
}
/**
* 修改菜单
* @param token
* @return
* @throws ParseException
* @throws IOException
*/
public static int deleteMenu(String token) throws Exception{
String url = DELETE_MENU_URL.replace("ACCESS_TOKEN", token);
JSONObject jsonObject = doGetStr(url);
int result = 0;
if(jsonObject != null){
result = jsonObject.getInt("errcode");
}
return result;
}
测试
//查询菜单
JSONObject jsonObject = WeixinUtil.queryMenu(token.getToken());
System.out.println(jsonObject);
//删除菜单
int result = WeixinUtil.deleteMenu(token.getToken());
if (result == 0){
System.out.println("菜单删除成功");
}else{
System.out.println("失败:"+result);
}
查询后会直接返回json
{
"menu": {
"button": [
{
"type": "click",
"name": "click菜单11",
"key": "11",
"sub_button": []
},
{
"name": "菜单2",
"sub_button": [
{
"type": "view",
"name": "view菜单",
"url": "http://notemi.cn",
"sub_button": []
},
{
"type": "click",
"name": "click菜单22",
"key": "22",
"sub_button": []
}
]
},
{
"name": "菜单3",
"sub_button": [
{
"type": "scancode_push",
"name": "扫码",
"key": "31",
"sub_button": []
},
{
"type": "location_select",
"name": "地理位置",
"key": "32",
"sub_button": []
}
]
}
]
}
}
查询后的json可以转成集合遍历出来展示。
删除后重新关注公众号就没有菜单了。 :wink: