微信开发之自定义菜单创建
最进在研究微信公众平台开发.遇到不少问题,现在记录一下.(PS:目前我使用的是wechat4j创建)
代码先出来
protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { String token = TokenProxy.accessToken(); LOG.info("token===["+token+"]"); Menu menu = new Menu(); MenuButton mb = new MenuButton(); mb.setType(EventType.VIEW); mb.setName("测试按钮"); mb.setUrl("www.baidu.com");//http://192.168.1.100:8080/wx mb.setKey("aa"); List bu = new ArrayList<MenuButton>(); bu.add(mb); menu.setButton(bu); MenuManager mm = new MenuManager(); try { mm.create(menu); } catch (WeChatException e) { // LOG. e.printStackTrace(); } }
此时出现了两个问题,如下
1)异常码:65318;异常说明:must use utf-8 charset hint: [OTISGa0776vr19]
这个问题的出现是因为mb.setType(EventType.VIEW);这句代码
经过查找资料说需要使用小写的字符.后来改为mb.setType(EventType.view).便不抱错了
2)异常码:40055;异常说明:invalid button url domain hint
这个问题的出现是在
mb.setUrl("www.baidu.com"); 这里.找了一个以前的网址上的说明(官网上没有看到这个错误说明. http://blog.csdn.net/u014401637/article/details/61932637)
40055 invalid button url domain 不合法的菜单按钮url域名
后来我改成跳转到我自己项目上的地址便可以了 mb.setUrl("http://192.168.1.100:8080/wx");
此时.完整的代码如下:
protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { String token = TokenProxy.accessToken(); LOG.info("token===["+token+"]"); Menu menu = new Menu(); MenuButton mb = new MenuButton(); mb.setType(EventType.view); mb.setName("测试按钮"); mb.setUrl("http://192.168.1.100:8080/wx"); //mb.setKey("aa"); List bu = new ArrayList<MenuButton>(); bu.add(mb); menu.setButton(bu); MenuManager mm = new MenuManager(); try { mm.create(menu); } catch (WeChatException e) { // LOG. e.printStackTrace(); } }
以上内容来源于百科书,可以关注我了解更多.