最近重新研究了微信公众号的高级接口,原来也利用C#或JAVA写过微信公众号,主要是消息的基础接口。
由于当时不知道微信公众号可以申请测试公众号,微信测试公众号基本上没有任何限制,对于开发来说是一个不错的选择,
以后如需要实现自己的公众号只需要认证或申请服务号,把代码中的APPID和APPSECERT进行替换就OK了。
本次主要是用NodeJS为进行实现,为什么换成NodeJS呢而不是以前已处理好的C#或JAVA呢?
主要是想用一个免费的公共云服务进行部署应用(具体https://leancloud.cn/),二是NodeJS处理起来比较简单不需要编译和发布。
如今前端的百花齐放不也正是因为V8和NodeJS的出现么,各种前端构建工具,如webpack,gulp,grunt等。
如利用NodeJS写一个命令行工具也是很简单的。
如文件搜索过滤。
如去除代码文件中的换行符或注释(利用nodejs stream的pipe可以很简单的处理)
处理前
处理后
代码:
好像扯了比较远呢。回到正题。
微信公众号主要是通过消息的转发进行实现大部分工作。
如客户端需要查询天气情况,客户端先发送获取天气指令消息到公众号(微信服务器),微信服务器将消息转发到开发的应用程序,
应用程序接受到消息后,判断是获取天气的指令,然后通过第三方平台的天气接口进行查询天气情况,并把结果返回到客户端。
代码处理,第一步将微信的XML消息转换成JSON格式,程序比较容易处理。
第二步根据微信的消息类型进行消息处理。
第三步根据消息进行处理并返回处理结果
上面只是简单的消息,还有其他如创建菜单,订阅事件,上报地理处理,扫一扫,JSSDK,订阅用户列表,获取用户信息(直接获或通过oatuh2.0获取)等接口。
如感兴趣可获取源码:https://github.com/hhqqnu/weixin
实现最后的效果: