{
"button":[
{
"type":"click",
"name":"今日歌曲",
"key":"V1001_TODAY_MUSIC"
},
{
"name":"菜单",
"sub_button":[
{
"type":"view",
"name":"搜索",
"url":"http://www.soso.com/"
},
{
"type":"miniprogram",
"name":"wxa",
"url":"http://mp.weixin.qq.com",
"appid":"wx286b93c14bbf93aa",
"pagepath":"pages/lunar/index.html"
},
{
"type":"click",
"name":"赞一下我们",
"key":"V1001_GOOD"
}]
}]
}
https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid=wx51d48729cf5ce7ce&secret=5b14c8d2cb46ddc389936cdb135f18ac
{"access_token":"7EuCwquECJQulX8GnHQyEJVRJp1ZJ4aDEBvi37EIUec4-1O97ZDO9ermLmnlibVHpw7snGEeSI2zaf0Om3hbzWU65mlHYTTJOeKSRQurMozxu2gbJFecwJ4u6jeX5KifSNSdAJAIDI","expires_in":7200}
7EuCwquECJQulX8GnHQyEJVRJp1ZJ4aDEBvi37EIUec4-1O97ZDO9ermLmnlibVHpw7snGEeSI2zaf0Om3hbzWU65mlHYTTJOeKSRQurMozxu2gbJFecwJ4u6jeX5KifSNSdAJAIDI
{"errcode":40017,"errmsg":"invalid button type hint: [0UQT4a0060vr18]"}
import java.io.IOException;
import java.util.ArrayList;
import java.util.List;
import base.token.AccessToken;
import bean.caidan.CaiDan;
import wx.util.WX_CaiDan;
import wx.util.WX_Token;
public class Test {
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
/* try {
//WX_Token.getAccessTokenByNet();
System.out.println(WX_Token.getAccessTokenByNet());
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}*/
AccessToken accessToken = null;
try {
accessToken = WX_Token.getAccessTokenByNet();
System.out.println(accessToken.getAccess_token());
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
WX_CaiDan.create(accessToken.getAccess_token(), null);
List<CaiDan> caiDanList = new ArrayList<CaiDan>();
CaiDan caidan001 = new CaiDan();
caidan001.setName("说明001");
caidan001.setType(CaiDan.CLICK);
caidan001.setKey("001");
caiDanList.add(caidan001);
CaiDan caidan002 = new CaiDan();
caidan002.setName("说明002");
caidan002.setType(CaiDan.VIEW);
caidan002.setKey("002");
caidan002.setUrl("http://www.baidu.com/");
caiDanList.add(caidan002);
/**
* 构建带有下级菜单的
* sub_caidan001是一级菜单
*/
CaiDan sub_caidan001 = new CaiDan();
List<CaiDan> sub_buttonList = new ArrayList<CaiDan>();
/**
* sub_caiDan001是sub_caidan001的下级菜单
* name是下级001
* type是click
* key是sub001
*/
CaiDan sub_caiDan001 = new CaiDan();
sub_caiDan001.setName("下级001");
sub_caiDan001.setType(CaiDan.CLICK);
sub_caiDan001.setKey("sub001");
sub_buttonList.add(sub_caiDan001);
/**
* sub_caiDan002是sub_caidan001的下级菜单
* name是下级002
* type是click
* key是sub002
*/
CaiDan sub_caiDan002 = new CaiDan();
sub_caiDan002.setName("下级002");
sub_caiDan002.setType(CaiDan.VIEW);
sub_caiDan002.setUrl("http://www.baidu.com/");
sub_buttonList.add(sub_caiDan002);
caiDanList.add(sub_caidan001);
}
}
package wx.util;
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.OutputStream;
import java.io.OutputStreamWriter;
import java.net.HttpURLConnection;
import java.net.MalformedURLException;
import java.net.URL;
import java.util.List;
import bean.caidan.CaiDan;
public class WX_CaiDan {
/*
* create菜单
*/
//public static void createCaiDan() {
//public static void create(String access_token,List<CaiDan> caiDanList) {//token,
public static String create(String access_token,List<CaiDan> caiDanList) {//token,
HttpURLConnection connection = null;
StringBuffer strb = new StringBuffer();
try {
URL url = new URL("https://api.weixin.qq.com/cgi-bin/menu/create?access_token="+access_token);
connection= (HttpURLConnection)url.openConnection();
connection.setDoOutput(true);
connection.setRequestMethod("POST");
OutputStream out = connection.getOutputStream();
OutputStreamWriter writer = new OutputStreamWriter(out);
BufferedWriter bwriter = new BufferedWriter(writer);
//?????????????????????????????
bwriter.write(getStr(caiDanList));
bwriter.flush();
InputStream in = connection.getInputStream();
InputStreamReader reader = new InputStreamReader(in);
BufferedReader breader = new BufferedReader(reader);
String str = null;
while(null!=( str = breader.readLine())){
strb.append(str);
}
System.out.println(strb);
out.close();
writer.close();
bwriter.close();
in.close();
reader.close();
breader.close();
} //catch (MalformedURLException e) {
catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}//
if(null!=connection){
connection.disconnect();
}
//return access_token;
return strb.toString();
}
/*
* 构建自定义菜单的报文
*/
private static String getStr(List<CaiDan> caiDanList){
StringBuffer strb = new StringBuffer();
/* strb.append(" { ");
strb.append(" \"button\":[ ");
strb.append(" { ");
strb.append(" \"type\":\"click\",");
strb.append(" \"name\":\"今日歌曲\",");
strb.append(" \"key\":\"V1001_TODAY_MUSIC\"");
strb.append(" }, ");
strb.append(" { ");
strb.append(" \"name\":\"菜单\",");
strb.append(" sub_button\":[");
strb.append(" { ");
strb.append(" \"type\":\"view\",");
strb.append(" name\":\"搜索\",");
strb.append(" \"url\":\"http://www.soso.com/\"");
strb.append(" }, ");
strb.append(" { ");
strb.append(" \"type\":\"miniprogram\", ");
strb.append(" \"name\":\"wxa\", ");
strb.append(" \"url\":\"http://mp.weixin.qq.com\", ");
strb.append(" \"appid\":\"wx286b93c14bbf93aa\",");
strb.append(" \"pagepath\":\"pages/lunar/index.html\"");
strb.append(" },");
strb.append(" { ");
strb.append(" \"type\":\"click\",");
strb.append(" \"name\":\"赞一下我们\",");
strb.append(" \"key\":\"V1001_GOOD\"");
strb.append(" }]");
strb.append(" }] ");
strb.append(" }] ");
strb.append(" }");*/
CaiDan caiDan = null;
for(int x=0 ; x < caiDanList.size();x++){
caiDan = caiDanList.get(x);
}
return strb.toString();
}
}
123131