这里是创建微信自定义菜单其中corpId, secret微信提供,获取AccessToken后直接调用创建菜单方法。(直接在myeclipse中运行MenuManager类的main方法即可,显示创建成功后取消关注微信企业号后再次关注企业号即可看到自定义菜单)
Agentid:是配置页面应用id。
public static String menu_create_url = "https://qyapi.weixin.qq.com/cgi-bin/menu/create?access_token=ACCESS_TOKEN&agentid=0";
publicclass MenuManager {
public static void main(String[] args) {
// 企业Id
String CorpID = ParamesAPI.corpId;
// 管理组的凭证密钥,每个secret代表了对应用、通讯录、接口的不同权限;不同的管理组拥有不同的secret
String Secret = ParamesAPI.secret;
// 调用接口获取access_token
AccessToken at = WeixinUtil.getAccessToken(CorpID, Secret);
if (null != at) {
// 调用接口创建菜单
int result = WeixinUtil.createMenu(getMenu(), at.getToken());
// 判断菜单创建结果
if (0 == result){
System.out.println("菜单创建成功!");
}else
System.out.println("菜单创建失败!");
}
}
菜单创建接口说明--WeixinUtil.createMenu(getMenu(), at.getToken());
// 菜单创建(POST)
public static String menu_create_url = "https://qyapi.weixin.qq.com/cgi-bin/menu/create?access_token=ACCESS_TOKEN&agentid=9";
/**
* 创建菜单
*
* @param menu 菜单实例
* @param accessToken 有效的access_token
* @param agentid 企业应用的id,整型,可在应用的设置页面查看
* @return 0表示成功,其他值表示失败
*/
public static int createMenu(Menu menu, String accessToken) {
int result = 0;
// 拼装创建菜单的url
String url = menu_create_url.replace("ACCESS_TOKEN", accessToken);
// 将菜单对象转换成json字符串
String jsonMenu = JSONObject.fromObject(menu).toString();
// 调用接口创建菜单
JSONObject jsonObject = HttpRequest(url, "POST", jsonMenu);
if (null != jsonObject) {
if (0 != jsonObject.getInt("errcode")) {
result = jsonObject.getInt("errcode");
String error = String.format("创建菜单失败 errcode:{} errmsg:{}", jsonObject.getInt("errcode"), jsonObject.getString("errmsg"));
System.out.println(error);
}
}
return result;
}
组装菜单说明--getMenu()
/**
* 组装菜单数据
*
* @return
*/
private static Menu getMenu() {
ViewButton btn11 = new ViewButton();
// CommonButton btn11 = new CommonButton();
btn11.setName("登陆");
btn11.setType("view");
btn11.setUrl("http://www.qcnt-sh.cn/ssiTest/login.jsp");
CommonButton btn12 = new CommonButton();
btn12.setName("模2");
btn12.setType("click");
btn12.setKey("12");
CommonButton btn13 = new CommonButton();
btn13.setName("模3");
btn13.setType("click");
btn13.setKey("13");
CommonButton btn14 = new CommonButton();
btn14.setName("模4");
btn14.setType("click");
btn14.setKey("14");
CommonButton btn15 = new CommonButton();
btn15.setName("模5");
btn15.setType("click");
btn15.setKey("15");
// CommonButton btn21 = new CommonButton(); 菜单2
// btn21.setName("模1");
// btn21.setType("click");
// btn21.setKey("21");
//
// CommonButton btn22 = new CommonButton();
// btn22.setName("模2");
// btn22.setType("click");
// btn22.setKey("22");
//
// CommonButton btn23 = new CommonButton();
// btn23.setName("模3");
// btn23.setType("click");
// btn23.setKey("23");
//
// CommonButton btn24 = new CommonButton();
// btn24.setName("模4");
// btn24.setType("click");
// btn24.setKey("24");
//
// CommonButton btn25 = new CommonButton();
// btn25.setName("模5");
// btn25.setType("click");
// btn25.setKey("25");
// CommonButton btn31 = new CommonButton();
// btn31.setName("授权测试");
// btn31.setType("click");
// btn31.setKey("31");
ViewButton btn31 = new ViewButton();
btn31.setName("扫描二维码");
btn31.setType("view");
btn31.setUrl("http://www.baidu.com/");
CommonButton btn32 = new CommonButton();
btn32.setName("我的任务");
btn32.setType("click");
btn32.setKey("32");
CommonButton btn33 = new CommonButton();
btn33.setName("工作计划");
btn33.setType("click");
btn33.setKey("33");
ViewButton btn34 = new ViewButton();
btn34.setName("模4");
btn34.setType("view");
btn34.setUrl("http://112.124.111.3/jialian/");
CommonButton btn35 = new CommonButton();
btn35.setName("模5");
btn35.setType("click");
btn35.setKey("35");
// ViewButton btn35 = new ViewButton();
// btn35.setName("学霸客服");
// btn35.setType("view");
// btn35.setUrl("http://wpa.qq.com/msgrd?v=3&uin=471644097&site=qq&menu=yes");
//菜单1
ComplexButton mainBtn1 = new ComplexButton();
mainBtn1.setName("登录");
mainBtn1.setSub_button(new Button[] { btn11});
// mainBtn1.setSub_button(new Button[] { btn11, btn12, btn13, btn14 , btn15});
//菜单2
// ComplexButton mainBtn2 = new ComplexButton();
// mainBtn2.setName("样2");
// mainBtn2.setSub_button(new Button[] { btn21, btn22, btn23, btn24 , btn25 });
// 菜单3
// ComplexButton mainBtn3 = new ComplexButton();
// mainBtn3.setName("工作菜单");
// mainBtn3.setSub_button(new Button[] { btn31, btn32, btn33 , btn34 , btn35});
/**
*
* 在某个一级菜单下没有二级菜单的情况,menu该如何定义呢?<br>
* 比如,第三个一级菜单项不是“更多体验”,而直接是“呵呵”,那么menu应该这样定义:<br>
* menu.setButton(new Button[] { mainBtn1, mainBtn2, btn33 });
* , mainBtn2, mainBtn3
*/
Menu menu = new Menu();
// menu.setButton(new Button[] { mainBtn1 , mainBtn2});
menu.setButton(new Button[] { mainBtn1 });
return menu;
}
后面我还是上代码吧!
/**
* 菜单
*
*@author xuh
*@date
*/
public class Menu {
private Button[] button;
/**
* view类型的菜单
*
*@author xuh
*@date
*/
public class ViewButton extends Button {
private String type;
private String url;
好了,就这样了,自定义菜单你也可以直接在后台编辑如果这样的方式适合你的话!!
因能力有限文章写的不到位的地方还请见谅!!有问题大家交流!