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的官方请求示例:
简单点说就是把上面的JSON数据以POST方式推送到请求的URL中即可。
下面是Java实现的代码,以click为例:
现在本地新建一个JSON文件:
Java代码:
自定义菜单接口可实现的按钮类型
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(); } }
相关文章推荐
- java微信公众号开发,认证,自定义菜单,消息推送,网页跳转
- 微信公众号开发之设置自定义菜单实例代码【java版】
- 微信公众号开发---自定义菜单的创建及菜单事件响应(java)
- JAVA微信公众号开发之自定义菜单
- 第六篇 :微信公众平台开发实战Java版之如何自定义微信公众号菜单
- 第六篇 :微信公众平台开发实战Java版之如何自定义微信公众号菜单
- 第六篇 :微信公众平台开发实战Java版之如何自定义微信公众号菜单
- java版微信公众号开发之自定义菜单的创建
- 微信公众号开发--获取网页授权并自定义菜单点击获得openid跳转
- C#/ASP.NET MVC微信公众号接口开发之从零开发(四) 微信自定义菜单(附源码)
- java微信开发API解析(六)-综合运用(消息处理、自定义菜单响应处理、用户自动分组处理;包含源码)
- 微信公众号开发--自定义菜单失败40033解决方案
- .NET微信公众号开发之创建自定义菜单
- 微信公众号开发,代码自定义菜单
- 微信公众号开发--自定义菜单
- 微信公众号开发笔记2-自定义菜单
- Java微信公众平台开发(十)——微信自定义菜单的创建实现
- 微信公众号开发系列-发展模式,创建自己的自定义菜单
- 微信公众号开发之创建自定义菜单
- java微信开发API解析(四)-自定义菜单以及个性化菜单实现