您的位置:首页 > 移动开发 > 微信开发

Java微信公众号开发之自定义菜单

2018-02-06 10:06 309 查看
自定义菜单官方文档

自定义菜单接口可实现的按钮类型

click:点击推事件用户点击click类型按钮后,微信服务器会通过消息接口推送消息类型为event的结构给开发者(参考消息接口指南),并且带上按钮中开发者填写的key值,开发者可以通过自定义的key值与用户进行交互;

view:跳转URL用户点击view类型按钮后,微信客户端将会打开开发者在按钮中填写的网页URL,可与网页授权获取用户基本信息接口结合,获得用户基本信息。

官方一共给出10种类型,剩下类型请参阅官方文档

接口调用请求说明

http请求方式:POST(请使用https协议) https://api.weixin.qq.com/cgi-bin/menu/create?access_token=ACCESS_TOKEN

click和view的官方请求示例:

{
"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"
},
{
"type":"click",
"name":"赞一下我们",
"key":"V1001_GOOD"
}]
}]
}


简单点说就是把上面的JSON数据以POST方式推送到请求的URL中即可。

下面是Java实现的代码,以click为例:

现在本地新建一个JSON文件:

{
"button":[
{
"type":"scancode_push",
"name":"扫一扫",
"key":"SCAN_QRCODE"
},
{
"type":"click",
"name":"关于我们",
"key":"ABOUT_US"
},
{
"type":"click",
"name":"联系我们",
"key":"CONTACT_US"
}
]
}


Java代码:

public static void CreatMenu(){
getToken();

HttpURLConnection conn=null;
try{
File file=new File("C:\\Users\\Administrator\\Desktop\\WeChat\\公众号\\menu.json");
FileInputStream fin=new FileInputStream(file);
String menuJson=IOUtil.readJson2String(fin);
String URL="https://api.weixin.qq.com/cgi-bin/menu/create?access_token="+access_token;
System.out.println(URL);
URL url = new URL(URL);
conn = (HttpURLConnection) url.openConnection();
conn.setRequestMethod("POST");
conn.setRequestProperty("Content-Type","application/json");
conn.setDoOutput(true);
conn.setDoInput(true);
//            System.out.println(menuJson);
OutputStream os= conn.getOutputStream();
os.write(menuJson.getBytes("UTF-8"));
os.flush();
os.close();
if(HttpURLConnection.HTTP_OK==conn.getResponseCode()){
InputStream in=conn.getInputStream();
String reStr=IOUtil.readString(in);
System.out.println("返回:"+reStr);
}
}catch(Exception e){
e.printStackTrace();
}finally {
conn.disconnect();
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: