微信公众平台开发模式 自定义菜单 指南与菜单新建错误代码分析

简介

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

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内容错误
时间: 2024-12-23 23:10:06

微信公众平台开发模式 自定义菜单 指南与菜单新建错误代码分析的相关文章

Java微信公众平台开发模式+自定义按钮源码

首先,想用开放模式需要先成为开发者.成为开发者有两种写法. 一是:通过jsp页面,用out.print("echostr")//SHA1加密的字符串: 二是:通过Servlet.doGet返回exhostr,给微信平台. 这里我只写第二种方式的请求(这里的请求是以get方式请求),代码如下: import java.io.IOException; import java.io.InputStream; import java.io.PrintWriter; import java.ut

微信公众平台开发(99) 自定义菜单获取OpenID

关键字 微信公众平台 自定义菜单 OpenID作者:方倍工作室原文:http://www.cnblogs.com/txw1958/p/weixin-menu-get-openid.html 在这篇微信公众平台开发教程中,我们将介绍如何在自定义菜单中获得用户的OpenID. 本篇开发教程的实质是微信自定义菜单及OAuth2.0授权的灵活运用. 本文分为以下四个部分: 拥有高级接口权限时的获取(基于view事件) 没有高级接口权限时的获取(基于click事件) 一.拥有高级接口权限 拥有高级接口权限

微信公众平台开发模式详解图文教程

这部分主要讲解微信公众平台的开发模式,首先说明一下我不是程序员,所以本篇并非讲编程代码之类的,但是由于我们正在开发微信POP营销系统,所以我对开发模式有一定了解,这些了解应该会对准备尝试做微信开发的朋友会有一定帮助,少走部分弯路吧.如果对本篇教程有任何疑问或错漏之处欢迎留言或直接联系我进行更正修改. 微信公众平台开发模式 首先我们要明确开发模式什么可以做,什么不可以做: 一.开发模式可以实现的功能 可以接收用户发送过来的消息,通过你自己开发的系统把对应内容反馈回去.可以接收用户发送过来的地理位置

微信公众平台-开发模式配置 URL Token

微信公众平台-开发模式配置需要拥有自己的服务器,配置页面有明文:"请填写接口配置信息,此信息需要你拥有自己的服务器资源."  这句话就是说有自己的服务器,独立ip,80端口开放的.并且这台服务器要能提供服务,就是说要能够被微信后台的服务器访问到.这需要服务器有一个外网IP.我们的Web Server监听外网IP的80端口之后就能收到微信后台的请求了. 可能很多读者希望能在自己的PC机上做接入的测试,但是笔者建议不要这么做,因为这可能会遇到很多的麻烦.如果你的确想这么做,请注意以下事情:

微信公众平台开发模式

微信公众平台提供了开发者模式,开启开发者模式的方法入下图 在右侧的工具栏最后一项“开发者中心”.点击进入“开发者中心”,需要配置服务器路径URL,和表示符Token.之后完成申请接入: (1)将微信提供的php文件放到服务器上,下载地址:http://mp.weixin.qq.com/mpres/htmledition/res/wx_sample.zip; (2)确认文件名和配置URL中的文件名一致; (3)修改php文件中define("TOKEN", "weixin&qu

微信公众平台开发(104) 自定义菜单扫一扫、发图片、发地理位置

关键字:微信公众平台 自定义菜单 扫一扫 发图片 发地理位置作者:方倍工作室原文:http://www.cnblogs.com/txw1958/p/weixin-menu-new-type.html 自定义菜单能够帮助公众号丰富界面,让用户更好更快地理解公众号的重要功能.微信增加了点击菜单后调起扫一扫(支持二维码/一维码).发图片.发地理位置的能力,需开发实现.原有自定义菜单开发权限的公众号,均可获得以上能力. 在这篇微信公众平台开发教程中,我们将介绍如何在自定义菜单上开发扫一扫.发图片.发地理

微信公众平台开发教程---自定义菜单

转载自:http://www.cnblogs.com/yank/p/3418194.html 一.概述: 如果只有输入框,可能太简单,感觉像命令行.自定义菜单,给我们提供了很大的灵活性,更符合用户的操作习惯.在一个小小的微信对话页面,可以实现更多的功能.菜单直观明了,不仅能提供事件响应,还支持URL跳转,如果需要的功能比较复杂,我们大可以使用URL跳转,跳转至我们的网页即可. 注意:自定义菜单,只有服务号才有此功能 如何注册,见第一章:微信公众账号开发教程(一) 基本原理及微信公众账号注册 效果

微信公众平台开发模式中的安全问题

一言以蔽之:只要URL和TOKEN设置的容易被猜到,ToUsername又不验证.攻击者可以轻易操控存在漏洞的公众平台. 原文作者:Create Chen 原文出处:http://technology.cnblogs.com 申请公众平台开发者模式需要填写一个URL和一个Token, 见下图: 如果这个URL和Token被别人猜中了, 并且你不判断消息中的ToUserName属性是否跟你微信号相配, 那么别人的公众帐号申请开发者时填写你的URL和你的Token, 别人的公众帐号就能把你公众帐号的

微信公众平台开发之自定义菜单的创建和删除

写在前: 在做这一块时,先看一下 公众平台开发文档(点击进入): 在创建菜单时,都是基于JSON传输数据,所以要用到JSON,下载相关包 点击下载: 公众平台开发文档上有说明: 请注意: 1.自定义菜单最多包括3个一级菜单,每个一级菜单最多包含5个二级菜单.2.一级菜单最多4个汉字,二级菜单最多7个汉字,多出来的部分将会以"..."代替.3.创建自定义菜单后,由于微信客户端缓存,需要24小时微信客户端才会展现出来.测试时可以尝试取消关注公众账号后再次关注,则可以看到创建后的效果. 自定