开发微信/易信公共平台时,调试往往很麻烦,一般只能在手机上边试边改, 或在服务器写日志。当你的服务器脚本有Bug时,手机上没有显示,追查是不容易的。我在开发过程中,编写了一个调试器, 能仿真微信/易信平台,对公众号URL进行访问并显示详细响应数据,调试公众号变得很容易了。特分享给大家。
调试器地址:http://www.jostudio.org/emulator.php
界面如下: 输入公众号URL,发送文本消息,可显示出响应数据。边开发,边调试。
调试器可以发送文字信息,输入文字内容,按“发送文字消息”键即可。
调试器也可以仿真菜单点击, 输入菜单EventKey值,按“点击菜单”键即可。
调试器还可以仿真用户关注,按“从头开始”键,此时调试器将发送一个subscribe消息到公众号URL。
如果公众号URL响应过程中有错误发生,也会在返回数据显示中出来的, 调试很好用!
注:调试器向公众号URL发送消息时,发送者的openid 是 "emulator_user"
神秘功能: 这个调试器可以访问任何URL,就像web代理一样,比如:下图显示访问 www.baidu.com , 点击“从头开始”, 则可以看到返回数据。
为什么返回数据的中文是乱码呢? 这是因为baidu.com返回的是gbk编码的汉字,而调试器遵循微信平台规则,使用的是utf-8编码的汉字. 请勾选 “返回数据是GBK编码” 的选项,点击“从头开始”再次提交,则返回结果中文就不乱码了。
勾选 “返回数据是GBK编码”,点击“从头开始”再次访问www.baidu.com, 结果显示“网页不存在”. 为什么呢?这是因为,调试器遵循微信平台规则, 在URL后自动加上了签名值, 且以POST方式访问URL,所以百度认为这个URL不存在。
勾选 “以GET方式访问URL” 的选项, 并且不要勾选 “返回数据是GBK编码”, 点击“从头开始”再次访问www.baidu.com,这一次正常了。
PS:百度首页是utf-8编码, 出错页面却是gbk编码
注意:以上过程是访问其它网站的实验,在实际调试公众号URL时,不要勾选 “以GET方式访问URL” 和 “返回数据是GBK编码” 的选项
嘿嘿,再神一点,访问一下www.facebook.com 给你看看, 网页一会儿就出来了,都说可以访问任何URL罗,是不是? 难道这是FQ了?!嗯,对头!
(不过,不好意思,调试器只是读取并显示了一下网页,并没有完成web代理的各项功能,所以是不能登录facebook的)
对调试器源码感兴趣的童鞋, 可在我的资源中下载: 调试器源码下载
源码只有一个文件 emulator.php , 可以装在自己的服务器上
不解释,看源码注释吧