微信开发常见的坑

由于实在无语微信文档的维护质量.特把自己在微信开发里掉过的坑都做个mark.就当是个笔记吧 2018-8-6

先从开发工具开始,我是用ubuntu做开发的, 微信官方没有linux下的微信开发工具,不过git上有开源的版本,但是,很多人反映安装不好.所以这里特地做一个安装的说明.

github的地址我先贴出来微信开发者工具(微信小程序)linux完美支持

我先吐槽一下,下载的真一个叫慢啊,为此,我在网盘上搬运了一份.

  1. 点击这里下载微信开发者工具或者从github官网下载
  2. 解压压缩包到你的硬盘, 本身就带个根目录. 名字是wechat_web_devtools
  3. 进入wechat_web_devtools. 清空文件夹根目录下的temp和dist文件夹.
  4. 安装wine ,具体方法百度
  5. 在wechat_web_devtools目录下运行 ./bin/wxdt install
  6. ./bin/wxdt

注意,如果你在开发小程序的时候报wcc 和 wcsc 编译错误

sudo apt-get install wine-binfmt
sudo update-binfmts --import /usr/share/binfmts/wine

上传图片接口

微信开发常见的坑_第1张图片
2018-08-06 16-56-43屏幕截图.png

原始文档在这里,这里有个小坑: localId
虽然提示的这个id是由chooseImage获取的,但你要知道chooseImage获取id的时候返回的是一个数组对象.
不要想当然的以为chooseImage返回的是id对象.

/*错误的写法*/
// 上传图片到微信服务器
                    wx.uploadImage({
                        localId: localIds,  // 你上传的不是id,而是id的数组.
                        isShowProgressTips: 1,
                        success: function(res){
                        ....
                        }
                    })
/*正确的写法*/
// 上传图片到微信服务器
                    wx.uploadImage({
                        localId: localIds[0],  // 上传id,
                        isShowProgressTips: 1,
                        success: function(res){
                        ....
                        }
                    })

自定义菜单报错: 40016 invalid button size hint

这个问题非常常见,原因也很多,我这里只把我遇到的情况做个说明.其实这个问题本不该出现,这是微信的开发文档维护不当造成的,我说的维护不当主要是指:

  1. 文档前后不一致.
  2. 说明含糊不清,甚至有错误.

很多人遇到了,就是把菜单配置用接口拉下来,再上传,依然会报这个错误.其实这个问题是字符编码问题导致的:

  1. 中文字符不要进行编码
  2. 把对象转成json对象,然后再编码当作对象传进去(这接口设计的不是一般的蹩脚哈哈)

一直很奇怪微信的接口规范: 有的接口需要传对象进去,有的接口需要传json,有的接口需要传字符串,有的接口需要做url_encode,有的接口不允许做url_encode,千奇百怪,我就不一一列举了....

由于很简单,我就直接上代码了.

menu = {"button": [........]}
r = requests.post(url, data=json.dumps(menu, ensure_ascii=False).encode())
## ensure_ascii=False表示不给非ASCII的字符做编码,注意这奇葩的传参方式

你可能感兴趣的:(微信开发常见的坑)