使用java实现微信公众平台自定义菜单的创建示例代码

这篇文章主要介绍了使用java实现微信公众平台自定义菜单的创建示例代码,需要的朋友可以参考下

代码如下:

import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import java.net.HttpURLConnection;
import java.net.MalformedURLException;
import java.net.URL;
import org.json.JSONObject;
public class MenuUtil {
 /**
  * 获得ACCESS_TOKEN
 * @Title: getAccess_token
 * @Description: 获得ACCESS_TOKEN
 * @param @return    设定文件
 * @return String    返回类型
 * @throws
  */
 private static String getAccess_token(){  

  String APPID=;
  String APPSECRET=;

       String url = https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid=+ APPID + &secret= +APPSECRET;
       String accessToken = null;
      try {
             URL urlGet = new URL(url);
             HttpURLConnection http = (HttpURLConnection) urlGet.openConnection();    

             http.setRequestMethod(GET);      //必须是get方式请求    
             http.setRequestProperty(Content-Type,application/x-www-form-urlencoded);    
             http.setDoOutput(true);        
             http.setDoInput(true);
             System.setProperty(sun.net.client.defaultConnectTimeout, 30000);//连接超时30秒
             System.setProperty(sun.net.client.defaultReadTimeout, 30000); //读取超时30秒
             http.connect();

             InputStream is =http.getInputStream();
             int size =is.available();
             byte[] jsonBytes =new byte[size];
             is.read(jsonBytes);
             String message=new String(jsonBytes,UTF-8);

             JSONObject demoJson = new JSONObject(message);
             accessToken = demoJson.getString(access_token);

             System.out.println(message);
             } catch (Exception e) {
                 e.printStackTrace();
             }
        return accessToken;
     }

 /**
  * 创建Menu
 * @Title: createMenu
 * @Description: 创建Menu
 * @param @return
 * @param @throws IOException    设定文件
 * @return int    返回类型
 * @throws
  */
    public static String createMenu() {
      String menu = {\button\:[{\type\:\click\,\name\:\MENU01\,\key\:\1\},{\type\:\click\,\name\:\天气查询\,\key\:\西安\},{\name\:\日常工作\,\sub_button\:[{\type\:\click\,\name\:\待办工单\,\key\:\01_WAITING\},{\type\:\click\,\name\:\已办工单\,\key\:\02_FINISH\},{\type\:\click\,\name\:\我的工单\,\key\:\03_MYJOB\},{\type\:\click\,\name\:\公告消息箱\,\key\:\04_MESSAGEBOX\},{\type\:\click\,\name\:\签到\,\key\:\05_SIGN\}]}]};

        //此处改为自己想要的结构体,替换即可
        String access_token= getAccess_token();
        String action = https://api.weixin.qq.com/cgi-bin/menu/create?access_token=+access_token;
        try {
           URL url = new URL(action);
           HttpURLConnection http =   (HttpURLConnection) url.openConnection();    

           http.setRequestMethod(POST);        
           http.setRequestProperty(Content-Type,application/x-www-form-urlencoded);    
           http.setDoOutput(true);        
           http.setDoInput(true);
           System.setProperty(sun.net.client.defaultConnectTimeout, 30000);//连接超时30秒
           System.setProperty(sun.net.client.defaultReadTimeout, 30000); //读取超时30秒
           http.connect();
           OutputStream os= http.getOutputStream();    
           os.write(menu.getBytes(UTF-8));//传入参数    
           os.flush();
           os.close();

           InputStream is =http.getInputStream();
           int size =is.available();
           byte[] jsonBytes =new byte[size];
           is.read(jsonBytes);
           String message=new String(jsonBytes,UTF-8);
           return 返回信息+message;
           } catch (MalformedURLException e) {
               e.printStackTrace();
           } catch (IOException e) {
               e.printStackTrace();
           }    
        return createMenu 失败;
   }

    /**
     * 删除当前Menu
    * @Title: deleteMenu
    * @Description: 删除当前Menu
    * @param @return    设定文件
    * @return String    返回类型
    * @throws
     */
   public static String deleteMenu()
   {
       String access_token= getAccess_token();
       String action = https://api.weixin.qq.com/cgi-bin/menu/delete? access_token=+access_token;
       try {
          URL url = new URL(action);
          HttpURLConnection http =   (HttpURLConnection) url.openConnection();    

          http.setRequestMethod(GET);        
          http.setRequestProperty(Content-Type,application/x-www-form-urlencoded);    
          http.setDoOutput(true);        
          http.setDoInput(true);
          System.setProperty(sun.net.client.defaultConnectTimeout, 30000);//连接超时30秒
          System.setProperty(sun.net.client.defaultReadTimeout, 30000); //读取超时30秒
          http.connect();
          OutputStream os= http.getOutputStream();    
          os.flush();
          os.close();

          InputStream is =http.getInputStream();
          int size =is.available();
          byte[] jsonBytes =new byte[size];
          is.read(jsonBytes);
          String message=new String(jsonBytes,UTF-8);
          return deleteMenu返回信息:+message;
          } catch (MalformedURLException e) {
              e.printStackTrace();
          } catch (IOException e) {
              e.printStackTrace();
          }
       return deleteMenu 失败;   
   }
 public static void main(String[] args) {

  System.out.println(createMenu());
 }
}

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。