微信自定义菜单errcode(40016)
最近在做微信开发,通过微信API创建自定义菜单时候出现;{"errcode":40016,"errmsg":"invalid button size hint: [afL4na0498vr21]"}错误。查询微信提供的错误文档,返回码:“40016”;说明:“不合法的按钮个数”;
从网上查询的解决方式,都是错误“invalid button size”;(跟我的错误信息:invalid button size hint不太一样)网上提供的方式有:
1、传输的数据中存在大小写,
2、传输数据之间存在空格,
3、更多说是因为自定义的一级菜单个数超过微信指定的个数(三个);
4、自定义菜单的数据json格式问题
按照上述解决方案,只要处理下传输菜单数据即可解决问题;
但是通过微信提供的“使用网页调试工具调试该接口“,我传输的菜单数据是可以正常创建的,所以肯定不是上述原因造成的;
所以,就从数据传输给微信服务器之前的菜单数据进行排查,我是模拟客户端,所以,传输的菜单json数据是按照字符串数据进行转义的。不是规定的json数据格式进行请求(这是疏忽的地方),就通过jobject进行了转化;再次请求就成功;
注:个人感觉由于微信API的升级,所以网上有的对错误信息提供的方案,存在一定的误区(比如,现在菜单数据中key的值就不用区分大小写)
微信自定义菜单errcode(40016)的更多相关文章
- 微信自定义菜单说php json_encode不转义中文汉字的方法
http://blog.csdn.net/qmhball/article/details/45690017 最近在开发微信自定义菜单. 接口比较简单,就是按微信要求的格式post一段json数据过去就 ...
- Magcodes.WeiChat——自定义CustomCreationConverter之实现微信自定义菜单的序列化
微信自定义菜单接口是一个比较麻烦的接口,往往开发的小伙伴们看到下面的这段返回JSON,整个人就会不好了: {"menu":{"button":[{" ...
- Magicodes.WeiChat——自定义knockoutjs template、component实现微信自定义菜单
本人一向比较喜欢折腾,玩了这么久的knockoutjs,总觉得不够劲,于是又开始准备折腾自己了. 最近在完善Magicodes.WeiChat微信开发框架时,发现之前做的自定义菜单这块太不给力了,而各 ...
- 微信自定义菜单url默认80端口问题解决
微信自定义菜单url默认80端口的,但是有些服务器上可能配置了多个tomcat.或者是刚好你服务器上80端口被占用了.在这样的情况下,我们可以通过如下方式解决: 首先安装apache,关于apache ...
- java 微信自定义菜单 java微信接口开发 公众平台 SSM redis shiro 多数据源
A 调用摄像头拍照,自定义裁剪编辑头像,头像图片色度调节B 集成代码生成器 [正反双向](单表.主表.明细表.树形表,快速开发利器)+快速表单构建器 freemaker模版技术 ,0个代码不用写,生成 ...
- java SSM 框架 微信自定义菜单 快递接口 SpringMVC mybatis redis shiro ehcache websocket
A 调用摄像头拍照,自定义裁剪编辑头像,头像图片色度调节B 集成代码生成器 [正反双向](单表.主表.明细表.树形表,快速开发利器)+快速表单构建器 freemaker模版技术 ,0个代码不用写,生成 ...
- 我的第一个npm包:wechat-menu-editor 基于Vue的微信自定义菜单编辑器
wechat-menu-editor 微信自定义菜单编辑器 前言 在做微信公众号相关开发时,基本上会去开发的功能就是微信自定义菜单设置的功能,本着不重复造轮子的原则,于是基于Vue封装的一个微信自定义 ...
- C#/ASP.NET MVC微信公众号接口开发之从零开发(四) 微信自定义菜单(附源码)
C#/ASP.NET MVC微信接口开发文章目录: 1.C#/ASP.NET MVC微信公众号接口开发之从零开发(一) 接入微信公众平台 2.C#/ASP.NET MVC微信公众号接口开发之从零开发( ...
- 微信自定义菜单的emoji图标
微信公众号自定义菜单添加emoji表情图标 第一步:打开微信公众平台接口调试工具,点击前往接口调试工具: 第二步:把这段代码 {"button":[{"sub_butt ...
随机推荐
- 【C/C++】C++11 Move, Forward
左值与右值 Lvalue:可以出现在 operator= 左边的 Rvalue:只能出现在operator= 右边的 ; int a = b; a = b; a = a + b; a + b = a; ...
- 模仿WC.exe的功能实现--node.js
Github项目地址:https://github.com/102derLinmenmin/myWc WC 项目要求 wc.exe 是一个常见的工具,它能统计文本文件的字符数.单词数和行数.这个项目要 ...
- [bzoj P2726] [SDOI2012]任务安排
[bzoj P2726] [SDOI2012]任务安排 Time Limit: 10 Sec Memory Limit: 128 MB Submit: 1204 Solved: 349[Submit] ...
- unity室内外VR漫游
这是一个用Unity 做的VR漫游小场景.
- js将手机号中间四位变成*号
方法一.利用数组splice,split,join方法 var tel = 18810399133; tel = "" + tel; var ary = tel.split(&qu ...
- linux 查找指定进程并kill
ps -ef | grep php | grep -v 'grep' | awk '{print $2}'| xargs kill -9
- 作业:K-means算法应用:图片压缩
from sklearn.datasets import load_sample_image from sklearn.cluster import KMeans import matplotlib. ...
- OTP gen_server
erlang behaviour小结之gen_server OTP入门 分类: Erlang2012-08-06 18:55 867人阅读 评论(0) 收藏 举报 servererlangcallba ...
- String.split()方法
如果用“(”作为分隔的话,必须是如下写法,String.split("\\("),这样才能正确的分隔开,不能用String.split("("); 如果用“)” ...
- Redis操作1
本文章内容节选自<PHP MVC开发实战>一书第16.4.2章节. 一.概述 Redis是一个NoSQL数据库,由于其数据类型的差异,所以要在MVC框架中实现CURD操作,比较繁锁.事实上 ...