微信公众平台自定义菜单接口API指南
微信公众平台开发模式自定义菜单接口API指南
简介
开发者获取使用凭证(如何获取凭证)后,可以使用该凭证对公众账号的自定义菜单进行创建、查询和删除等操作。 自定义菜单接口可实现以下类型按钮:
click(点击事件):
用户点击click类型按钮后,微信服务器会通过消息接口(event类型)推送点击事件给开发者,并且带上按钮中开发者填写的key值,开发者可以通过自定义的key值进行消息回复。
创建自定义菜单后,由于微信客户端缓存,需要24小时微信客户端才会展现出来。建议测试时可以尝试取消关注公众账号后,再次关注,则可以看到创建后的效果。
菜单创建
接口说明
通过POST一个特定结构体,实现在微信客户端创建自定义菜单。
请求说明
http请求方式:POST
https://api.weixin.qq.com/cgi-bin/menu/create?access_token=ACCESS_TOKEN
请求示例
{
"button":[
{
"type":"click",
"name":"今日歌曲",
"key":"V1001_TODAY_MUSIC"
},
{
"type":"click",
"name":"歌手简介",
"key":"V1001_TODAY_SINGER"
},
{
"name":"菜单",
"sub_button":[
{
"type":"click",
"name":"hello word",
"key":"V1001_HELLO_WORLD"
},
{
"type":"click",
"name":"赞一下我们",
"key":"V1001_GOOD"
}]
}]
}
创建后效果:

参数说明
| 参数 | 是否必须 | 说明 |
|---|---|---|
| button | 是 | 按钮数组,按钮个数应为1~3个 |
| sub_button | 否 | 子按钮数组,按钮个数应为1~5个 |
| type | 是 | 按钮类型,目前有click类型 |
| name | 是 | 按钮描述,既按钮名字,不超过16个字节,子菜单不超过40个字节 |
| key | 类型为click必须 | 按钮KEY值,用于消息接口(event类型)推送,不超过128字节 |
返回说明
正确的Json返回结果:
{"errcode":0,"errmsg":"ok"}
错误的Json返回结果
{"errcode":40018,"errmsg":"invalid button name size"}
菜单查询
接口说明
查询当前使用的自定义菜单结构。
请求说明
http请求方式:GET
https://api.weixin.qq.com/cgi-bin/menu/get?access_token=ACCESS_TOKEN
返回说明
对应创建接口,正确的Json返回结果:
{"menu":{"button":[{"type":"click","name":"今日歌曲","key":"V1001_TODAY_MUSIC","sub_button":[]},{"type":"click","name":"歌手简介","key":"V1001_TODAY_SINGER","sub_button":[]},{"name":"菜单","sub_button":[{"type":"click","name":"hello word","key":"V1001_HELLO_WORLD","sub_button":[]},{"type":"click","name":"赞一下我们","key":"V1001_GOOD","sub_button":[]}]}]}}
菜单删除
接口说明
取消当前使用的自定义菜单。
请求说明
http请求方式:GET
https://api.weixin.qq.com/cgi-bin/menu/delete?access_token=ACCESS_TOKEN
返回说明
对应创建接口,正确的Json返回结果:
{"errcode":0,"errmsg":"ok"}
请先确保公众账号已经拥有接口调用权限。
默认每个公众帐号都不能超过下面的频率限制。 当超出调用接口频率限制,调用对应接口将会收到如下错误信息:
{"errcode":45009,"errmsg":"api freq out of limit"}
接口调用频率限制
| 接口名称 | 频率限制 |
|---|---|
| 获取凭证接口 | 200(次/天) |
| 自定义菜单创建接口 | 100(次/天) |
| 自定义菜单查询接口 | 1000(次/天) |
| 自定义菜单删除接口 | 100(次/天) |
返回码说明
| 返回码 | 说明 |
|---|---|
| -1 | 系统繁忙 |
| 0 | 请求成功 |
| 40001 | 验证失败 |
| 40002 | 不合法的凭证类型 |
| 40003 | 不合法的OpenID |
| 40004 | 不合法的媒体文件类型 |
| 40005 | 不合法的文件类型 |
| 40006 | 不合法的文件大小 |
| 40007 | 不合法的媒体文件id |
| 40008 | 不合法的消息类型 |
| 40009 | 不合法的图片文件大小 |
| 40010 | 不合法的语音文件大小 |
| 40011 | 不合法的视频文件大小 |
| 40012 | 不合法的缩略图文件大小 |
| 40013 | 不合法的APPID |
| 40014 | 不合法的access_token |
| 40014 | 不合法的access_token |
| 40015 | 不合法的菜单类型 |
| 40016 | 不合法的按钮个数 |
| 40017 | 不合法的按钮个数 |
| 40018 | 不合法的按钮名字长度 |
| 40019 | 不合法的按钮KEY长度 |
| 40020 | 不合法的按钮URL长度 |
| 40021 | 不合法的菜单版本号 |
| 40022 | 不合法的子菜单级数 |
| 40023 | 不合法的子菜单按钮个数 |
| 40024 | 不合法的子菜单按钮类型 |
| 40025 | 不合法的子菜单按钮名字长度 |
| 40026 | 不合法的子菜单按钮KEY长度 |
| 40027 | 不合法的子菜单按钮URL长度 |
| 40028 | 不合法的自定义菜单使用用户 |
| 41001 | 缺少access_token参数 |
| 41002 | 缺少appid参数 |
| 41003 | 缺少refresh_token参数 |
| 41004 | 缺少secret参数 |
| 41005 | 缺少多媒体文件数据 |
| 41006 | 缺少media_id参数 |
| 41007 | 缺少子菜单数据 |
| 42001 | access_token超时 |
| 43001 | 需要GET请求 |
| 43002 | 需要POST请求 |
| 43003 | 需要HTTPS请求 |
| 44001 | 多媒体文件为空 |
| 44002 | POST的数据包为空 |
| 44003 | 图文消息内容为空 |
| 45001 | 多媒体文件大小超过限制 |
| 45002 | 消息内容超过限制 |
| 45003 | 标题字段超过限制 |
| 45004 | 描述字段超过限制 |
| 45005 | 链接字段超过限制 |
| 45006 | 图片链接字段超过限制 |
| 45007 | 语音播放时间超过限制 |
| 45008 | 图文消息超过限制 |
| 45009 | 接口调用超过限制 |
| 45010 | 创建菜单个数超过限制 |
| 46001 | 不存在媒体数据 |
| 46002 | 不存在的菜单版本 |
| 46003 | 不存在的菜单数据 |
| 47001 | 解析JSON/XML内容错误 |
微信公众平台自定义菜单接口API指南的更多相关文章
- 微信公众平台自定义菜单及高级接口PHP SDK
本文介绍介绍微信公众平台自定义菜单及高级接口的PHP SDK及使用方法. 作者 方倍工作室 修正记录: 2014.05.03 v1.0 方倍工作室 http://www.cnblogs.com/txw ...
- 微信公众平台自定义菜单及高级接口PHP SDK(转)
本文介绍介绍微信公众平台自定义菜单及高级接口的PHP SDK及使用方法. 作者 方倍工作室 修正记录: 2014.05.03 v1.0 方倍工作室 http://www.cnblogs.com/txw ...
- 微信公众平台自定义菜单PHP开发
微信公众平台自定义菜单PHP开发,微信公众平台自定义菜单是如何实现的呢?其实很简单,首先在微信公众平台升级为服务号,获取appid和appsecret,然后根据这2个参数获取access_token, ...
- java版微信公众平台自定义菜单创建代码实现
微信公众平台自定义菜单创建代码实现—java版 搞了两天的自定义菜单,终于搞定了,现在分享下心得,以便后来者少走弯路...... 好了,先看先微信官方的API 官方写的很详细,但是我看完后很茫然,不知 ...
- 微信公众平台自定义菜单创建代码实现—java版
搞了两天的自定义菜单,终于搞定了,现在分享下心得,以便后来者少走弯路...... 好了,先看先微信官方的API 官方写的很详细,但是我看完后很茫然,不知道你们什么感觉. 我知道是post一个带参数的 ...
- 微信公众平台自定义菜单新增扫一扫、发图片、发位置 LBS运作更便捷
今天微信公众平台发布更新,自定义菜单新增扫一扫.发图片.发送位置等功能,这对于有意挖掘微信LBS服务的运营者来说更便捷了,订阅号不用返回微信界面就能扫图.发送图片.调用地理位置,用户体验更友好,自然也 ...
- H5网页后在返回到微信公众平台自定义菜单
<p class="success">订阅成功!</p> <div class="btn" @click="finish ...
- PHP玩转微信公众平台自定义接口
从微信公众平台开通自定义回复后,就一直在关注微信接口这一块,很想用自定义回复这块做个站长工具的查询,例如PR查询,备案查询等,输入网址信息,就能自动获取PR,获取备案信息,应该是一个不错的想法.不过以 ...
- C#微信公众号——自定义菜单
自定义菜单最多包括3个一级菜单,每个一级菜单最多包含5个二级菜单.一级菜单最多4个汉字,二级菜单最多7个汉字,多出来的部分将会以“...”代替.自定义菜单的介绍,可以看官方开发文档http://mp. ...
随机推荐
- AE中Identify查询工具的实现
原文 AE中Identify查询工具的实现 主要实现点击查询并闪烁显示,并把查询要素的信息通过DataGridView显示出来,主要用到的接口: IIdentity.IArray.IIdentifyO ...
- [React] Setup 'beforeunload' listener
In this lesson we'll show how to take a beforeUnload call and convert it to a declarative React Comp ...
- [Angular2Fire] Firebase auth (Google, Github)
To do auth, first you need to go firebase.console.com to enable the auth methods, for example, enabl ...
- chain rule 到 Markov chain
1. 联合概率(joint distribution)的链式法则 基于链式法则的 explicit formula: p(x1:n)===p(x)p(x1)∏i=2np(xi|x1,-,xi−1)∏i ...
- java生成UUID通用唯一识别码 (Universally Unique Identifier) 分类: B1_JAVA 2014-08-22 16:09 331人阅读 评论(0) 收藏
转自:http://blog.csdn.net/carefree31441/article/details/3998553 UUID含义是通用唯一识别码 (Universally Unique Ide ...
- 微信测试号开发之四 获取access_token和jsapi_ticket
原文:https://blog.csdn.net/qq_37936542/article/details/78549233 access_token:公众号的全局唯一接口调用凭据,公众号调用各接口时都 ...
- 【63.73%】【codeforces 560A】Currency System in Geraldion
time limit per test2 seconds memory limit per test256 megabytes inputstandard input outputstandard o ...
- JAVA获取文件本身所在的磁盘位置
我们在做java开发(纯java程序,或者java web开发)时,经常会遇到需要读取配置文件的需求,如果我们将文件所在位置的信息直接写到程序中,例如:e:\workspace\javagui\bin ...
- USB 3.0规范中译本 第2章 术语及缩略语
本文为CoryXie原创译文,转载及有任何问题请联系cory.xie#gmail.com. 本章列出并定义本规范通篇将使用的术语及缩略语. 术语/略缩语 定义 ACK(确认包) 表示积极肯定的握手包. ...
- 指针知识梳理6-const与指针
const 定义的变量为仅仅读变量.在语法层面上通过这个变量去改动内存是不同意的. 可是对于下面代码.就有非常多人绕了: const int *p1; //p1能变.*p1不能变 int cons ...