本地调试是公众号开发过程中不可缺少的步骤,我们不可能每次开发都上传到服务器再用微信去查看本地效果,这样一方面效率低,另一方面存在一定的风险性。那么有没有什么办法能够让开发者本地调试代码呢,答案是有的,网上搜出了很多方法,比如ngrok、花生壳、natapp.cn等工具,下面介绍的是ngrok,其他的嫌麻烦。
ngrok使用
1. 为什么要用ngrok
在微信开发的时候需要填写与微信服务器相连接的url才能授权,这个url必须是外网域名,也就是说我们需要在这个外网域名对应的ip服务器上做开发,而没办法本地开发调试所以用ngrok获得一个外网域名 这个外网域名实际访问的是本地主机这样把此外网域名填入到微信需要的外网url里就可以在本地开发调试了。
2.使用ngrok
首先到官网下载ngrok,然后注册一个ngrok帐号拿到token,这个token自定义域名的时候使用,具体看这里。我本人使用的MAC,需到ngrok目录下执行命令
这时候ngrok已经生成了一个外网域名http://4f75fc79.ngrok.io
访问本机localhost:80
浏览器里直接访问http://4f75fc79.ngrok.io
就可以访问本地。
现在外网有了,就可以开始授权了。为了避免和线上冲突,我注册了一个微信公众号开发者测试号,已经能够调用微信开放的大多数JS接口了。创建公众号测试帐号方法可以自行百度.
此处有一个坑,网上很多都说这里的token是随便写的,的确,但是作为一个前端开发者,在没有后端资源情况下随便填写的token总是报token无效错误,这是因为保存修改时微信会向填写的URL发送一个验证请求,验证token是否有效,但是我们不知道token是多少,现在如何做呢?我有node.js爸爸,还怕什么呢,我们可以本地起一个服务来监听微信请求的URL,上面说到微信此时会发起一个get请求到http://4f75fc79.ngrok.io
那我就本地写一个服务来监听,只要服务里的token和修改的一致不就可以匹配了吗?说干就干,直接上代码
var PORT=80; //监听80端口号 |
微信发起的请求直接到我们本地,那还不是我想怎么玩就怎么玩,嘿嘿嘿!具体操作看这里
修改接口配置成功后就可以调用测试号里面的所有js接口了,实现本地调试微信公众号不再是奢望!!!