package com.zhiwei.weixin.main;

import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

import com.zhiwei.weixin.pojo.AccessToken;
import com.zhiwei.weixin.pojo.Button;
import com.zhiwei.weixin.pojo.CommonButton;
import com.zhiwei.weixin.pojo.Menu;
import com.zhiwei.weixin.util.WeixinUtil;

/** 
 * 菜单管理器类 
 *  
 * @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 = "wx7d6a533ed451e07e";     //wx22554dc3322ec3f1(数据洞察帐号) 
        // 第三方用户唯一凭证密钥  
        String appSecret = "217b1d655755033d74cb1fc27636288f";   //49a0abfc4507e90e6cab812414f005fb（数据洞察帐号）
  
        // 调用接口获取access_token  
        AccessToken at = WeixinUtil.getAccessToken(appId, appSecret);  
        
        if (null != at) {  
            // 调用接口创建菜单  
        	System.out.println(at.getToken());
            int result = WeixinUtil.createMenu(getMenu(), at.getToken());  
            System.out.println(result);
  
            // 判断菜单创建结果  
            if (0 == result)  
                log.info("菜单创建成功！");  
            else  
                log.info("菜单创建失败，错误码：" + result);  
        }  
    }  
  
    /** 
     * 组装菜单数据 
     *  
     * @return 
     */  
    private static Menu getMenu() {  
       //声明主菜单
//    	CommonButton mainBtn1 = new CommonButton();  
//        mainBtn1.setName("领取门票");  
//        mainBtn1.setKey("11");   
//        mainBtn1.setType("view");
        
        
//        CommonButton mainBtn2 = new CommonButton();  
//        mainBtn2.setName("邀请码激活");  
//        mainBtn2.setKey("22");
//        mainBtn2.setType("click");
        
        CommonButton mainBtn3 = new CommonButton();  
        mainBtn3.setName("大会直播");  
        mainBtn3.setType("view");
        mainBtn3.setUrl("http://daxue.qq.com/content/content/id/1796");
        /** 
         * 这是公众号xiaoqrobot目前的菜单结构，每个一级菜单都有二级菜单项<br> 
         * 在某个一级菜单下没有二级菜单的情况，menu该如何定义呢？<br> 
         * 比如，第三个一级菜单项不是“更多体验”，而直接是“幽默笑话”，那么menu应该这样定义：<br> 
         * menu.setButton(new Button[] { mainBtn1, mainBtn2, btn33 }); 
         */  
        //将自定的菜单绑定到程序中
        Menu menu = new Menu();  
        menu.setButton(new Button[] { mainBtn3 });  
        
//      menu.setButton(new Button[] { mainBtn1 ,mainBtn3});  
  
        return menu;  
    }  
}  
