微信公众平台开发模式自定义菜单接口API指南

开发实现方法,请查看

微信公众平台开发(58)自定义菜单

简介

开发者获取使用凭证(如何获取凭证)后,可以使用该凭证对公众账号的自定义菜单进行创建、查询和删除等操作。 自定义菜单接口可实现以下类型按钮:

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内容错误

源代码:

微信公众平台消息接口开发(9)自定义菜单

欢迎关注方倍工作室微信,了解我们及行业的最新动态

转载于:https://www.cnblogs.com/txw1958/archive/2013/03/24/weixin-menu-if-guide.html

微信公众平台自定义菜单接口API指南相关推荐

  1. 微信公众平台——自定义菜单

    微信公众平台--自定义菜单 服务号和通过认证的订阅号可以申请自定义菜单.自定义菜单接口可实现click.view两种类型的按钮. 1.创建菜单 const CreateMenuUrl = 'https ...

  2. 微信公众平台自定义菜单无法更改怎么办?看这里就够了!微信公众号自定义菜单没办法修改怎么回事

    微信公众平台公众帐号及服务号可以在会话界面底部按需设置自定义菜单:且可为自定义菜单设置响应动作,可以通过点击菜单,收到你指定的消息或跳转到指定的网页.但是有些特殊情况我们的自定义菜单无法使用也无法更改 ...

  3. 微信“公众平台测试账号”接口调试指南

    接入微信公众平台开发,开发者需要按照如下步骤完成: 1.填写服务器配置 2.验证服务器地址的有效性 3.依据接口文档实现业务逻辑 实际开发时请自行参阅官方文档:http://mp.weixin.qq. ...

  4. 微信“公众平台测试账号”接口接入指南

    本文主要讲解微信公众号Struts2框架进行服务器验证接口对接. 使用工具:MyEclipse 准备工作: 1.打开MyEclipse,新建一个Web项目,比如"WXLocalTest&qu ...

  5. 微信公众平台自定义菜单

    之前申请了一个订阅号,当准备大张旗鼓的开始创建自定义菜单的时候发现自定义菜单不针对订阅号开放,没有办法,只好再申请服务号,问题又产生了,服务号不针对个人 开放,经过一系列的折腾,不能不说我最后还是申请 ...

  6. PHP微信公众平台自定义菜单

    最近单位搞了微信的公众平台做营销,其中就包括自定义菜单的实现,51模板集分享代码给大家一起来学习,若你是初学者还等什么直接上代码把. 自微信进入5.0,公众号有了服务号和订阅号的区别,其中一个很重要的 ...

  7. 微信公众平台自定义菜单的创建及创建过程中遇到的错误

    准备工作: 由于调用微信接口采用的是https协议,所以我们需要用cURL来模拟https请求.那么我们就要了解用php建立cURL请求的基本步骤,举个例子说明一下. 例子: public funct ...

  8. python微信公众菜单_Python实现微信公众平台自定义菜单实例

    首先先获取access_token,并保存与全局之中 def token(requset): url = 'https://api.weixin.qq.com/cgi-bin/token?grant_ ...

  9. java实现微信创建菜单_java实现微信公众平台自定义菜单的创建示例

    import java.io.ioexception; import java.io.inputstream; import java.io.outputstream; import java.net ...

最新文章

  1. OpenGL入门学习(十二) 【转】
  2. [题解]CQOI2012 T2 组装 assemble
  3. OpenCV PCA与指定的保留差异量的实例(附完整代码)
  4. rockemq 发送延迟消息_RocketMQ系列(五)广播与延迟消息
  5. Java,Scala,Guava和Trove集合-它们可以容纳多少数据?
  6. java使用的页面静态化技术_java秒杀系列(2)- 页面静态化技术
  7. x86-64寄存器与栈帧(转载)
  8. RequireJS模块化后JS压缩合并
  9. java override报红_Eclipse @override报错解决
  10. 锚( Anchor Boxes)
  11. STM32CUBEIDE配置FreeRTOS
  12. d3.js 旋转图形_视觉效果和动态图形软件After Effects 2019 v16.1.3.5 Win/Mac 中文/英文/多语言破解版...
  13. jq输出html 单引号引号转义符,jQuery.parseJSON由于JSON中的单引号转义而引发“无效JSON”错误...
  14. 在win10 系统输入法 输入几下老是自动被禁用解决办法
  15. 帧率(FPS)计算的六种方法总结
  16. Layer For Mobile
  17. cpri和10g-kr的关系?
  18. 安超云荣获“国民云计算品牌”值得关注奖
  19. 2D高德Android地图SDK 新手入门的com.amap.api.maps.MapView的坑
  20. 数据可视化分析案例:基于Python的2021中国品牌Top100强数据分析

热门文章

  1. html太极图代码静态_如何做URL静态化?和页面的静态化
  2. android view flipper,安卓控件——ViewFlipper
  3. 用函数求10个数的平均值_Excel AVERAGEIF函数条件求平均值
  4. mysql自增变量插入行时需要赋值
  5. 045_Collapse折叠面板
  6. 041_对象的创建和销毁
  7. WebDriverAgent安装到iphone真机
  8. python word 1_Python word | 学步园
  9. 驱动备份工具哪个好_文章原创度检测工具哪个好?这个工具还有其他你不知道的功能...
  10. Oralce数据库数据迁移到另一个数据