JSON

微信公众帐号开发教程介绍(4)

字号+ 作者:H5之家 来源:H5之家 2015-10-21 09:48 我要评论( )

// 菜单创建(POST) 限100(次/天) public static String menu_create_url = "https://api.weixin.qq.com/cgi-bin/menu/create?access_token=ACCESS_TOKEN"; /** * 创建菜单 * * @param menu 菜单实例 * @param acces

  

// 菜单创建(POST) 限100(次/天)   public static String menu_create_url = "https://api.weixin.qq.com/cgi-bin/menu/create?access_token=ACCESS_TOKEN";   /**   * 创建菜单   *   * @param menu 菜单实例   * @param accessToken 有效的access_token   * @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");   log.error("创建菜单失败 errcode:{} errmsg:{}", jsonObject.getInt("errcode"), jsonObject.getString("errmsg"));   }   }   return result;   }


  调用封装的方法创建自定义菜单

 

package org.liufeng.weixin.main;  import org.liufeng.weixin.pojo.AccessToken;  import org.liufeng.weixin.pojo.Button;  import org.liufeng.weixin.pojo.CommonButton;  import org.liufeng.weixin.pojo.ComplexButton;  import org.liufeng.weixin.pojo.Menu;  import org.liufeng.weixin.util.WeixinUtil;  import org.slf4j.Logger;  import org.slf4j.LoggerFactory;  /**  * 菜单管理器类  *  * @author liufeng  * @date 2013-08-08  */  public class MenuManager {  private static Logger log = LoggerFactory.getLogger(MenuManager.class);  public static void main(String[] args) {  // 第三方用户唯一凭证  String appId = "000000000000000000";  // 第三方用户唯一凭证密钥  String appSecret = "00000000000000000000000000000000";  // 调用接口获取access_token  AccessToken at = WeixinUtil.getAccessToken(appId, appSecret);  if (null != at) {  // 调用接口创建菜单  int result = WeixinUtil.createMenu(getMenu(), at.getToken());  // 判断菜单创建结果  if (0 == result)  log.info("菜单创建成功!");  else  log.info("菜单创建失败,错误码:" + result);  }  }  /**  * 组装菜单数据  *  * @return  */  private static Menu getMenu() {  CommonButton btn11 = new CommonButton();  btn11.setName("天气预报");  btn11.setType("click");  btn11.setKey("11");  CommonButton btn12 = new CommonButton();  btn12.setName("公交查询");  btn12.setType("click");  btn12.setKey("12");  CommonButton btn13 = new CommonButton();  btn13.setName("周边搜索");  btn13.setType("click");  btn13.setKey("13");  CommonButton btn14 = new CommonButton();  btn14.setName("历史上的今天");  btn14.setType("click");  btn14.setKey("14");  CommonButton btn21 = new CommonButton();  btn21.setName("歌曲点播");  btn21.setType("click");  btn21.setKey("21");  CommonButton btn22 = new CommonButton();  btn22.setName("经典游戏");  btn22.setType("click");  btn22.setKey("22");  CommonButton btn23 = new CommonButton();  btn23.setName("美女电台");  btn23.setType("click");  btn23.setKey("23");  CommonButton btn24 = new CommonButton();  btn24.setName("人脸识别");  btn24.setType("click");  btn24.setKey("24");  CommonButton btn25 = new CommonButton();  btn25.setName("聊天唠嗑");  btn25.setType("click");  btn25.setKey("25");  CommonButton btn31 = new CommonButton();  btn31.setName("Q友圈");  btn31.setType("click");  btn31.setKey("31");  CommonButton btn32 = new CommonButton();  btn32.setName("电影排行榜");  btn32.setType("click");  btn32.setKey("32");  CommonButton btn33 = new CommonButton();  btn33.setName("幽默笑话");  btn33.setType("click");  btn33.setKey("33");  ComplexButton mainBtn1 = new ComplexButton();  mainBtn1.setName("生活助手");  mainBtn1.setSub_button(new CommonButton[] { btn11, btn12, btn13, btn14 });  ComplexButton mainBtn2 = new ComplexButton();  mainBtn2.setName("休闲驿站");  mainBtn2.setSub_button(new CommonButton[] { btn21, btn22, btn23, btn24, btn25 });  ComplexButton mainBtn3 = new ComplexButton();  mainBtn3.setName("更多体验");  mainBtn3.setSub_button(new CommonButton[] { btn31, btn32, btn33 });  /**  * 这是公众号xiaoqrobot目前的菜单结构,每个一级菜单都有二级菜单项  *  * 在某个一级菜单下没有二级菜单的情况,menu该如何定义呢?  * 比如,第三个一级菜单项不是“更多体验”,而直接是“幽默笑话”,那么menu应该这样定义:  * menu.setButton(new Button[] { mainBtn1, mainBtn2, btn33 });  */  Menu menu = new Menu();  menu.setButton(new Button[] { mainBtn1, mainBtn2, mainBtn3 });  return menu;  }  }


  注意:在运行以上代码时,需要将appId和appSecret换成你自己公众号的。

  整个工程的结构

  


 

1.本站遵循行业规范,任何转载的稿件都会明确标注作者和来源;2.本站的原创文章,请转载时务必注明文章作者和来源,不尊重原创的行为我们将追究责任;3.作者投稿可能会经我们编辑修改或补充。

相关文章
  • 浅谈使用PHP开发微信支付的流程

    浅谈使用PHP开发微信支付的流程

    2016-02-13 15:00

  • JSONSchema那些事儿:基本概念

    JSONSchema那些事儿:基本概念

    2016-02-05 17:02

  • 基于HTML5的微信支付开发详解

    基于HTML5的微信支付开发详解

    2015-11-17 09:18

  • asp.net微信开发(开发者接入)

    asp.net微信开发(开发者接入)

    2015-11-16 19:26

网友点评