又两个月没有写文章了, 最近人变得越来越懒, 公司页开始了加班, 每天10小时上班时间真的挺难受的, 然后自己也是在是找不到啥写的, 感觉就是Copye Paste. 不过最近一直再玩NodeJS, 那就来说说NodeJS吧
搭建Koa2 Node服务
首先需要创建一个项目, 通过npm安装koa2来搭建一个Node HTTP服务
1 | // 创建项目文件夹 |
项目和依赖都已经创建好了, 就可以开始编写代码了, 首先创建app.js
1 | const Koa = require('koa') |
接受验证公众号推送
上面的几行代码, 我们使用了koa Koa-router监听处理了get, post的请求, 并运行到了3000端口上
我也比较懒得过多解释啥操作, 我再BB也不如去看看微信官方文档
想要搭建微信公众号的服务, 那先需要去微信公众号后台把消息事件推送到我们服务器上, 并且在我们服务器上做出正确的处理
1 | const sha1 = require('sha1') |
我们通过get来监听处理微信的认证请求, 现在再去微信后台填写链接认证( 开发 > 基本配置 )
在微信开发者后台配置好后, 我们的程序就能接收到了公众号的动态, 接收到的消息了, 现在我们就来编写消息处理模块了.
做出回应回复消息
公众号的事件消息是通过post推送过来的, 所以我们要监听post请求, 并且他推送过来的数据是xml格式的, 我们还需要插件来接收并解析数据
1 | const getRawBody = require('raw-body') |
1 | {"xml":{"ToUserName":"gh_113d87971edc","FromUserName":"omC9O1LH6zNVZbESs_2ACsJgtoA4","CreateTime":"1571120674","MsgType":"text","Content":"鸡汤","MsgId":"22493037731429475"}} |
emmm, 转换成了json对象后可以发现其实并不复杂, 现在我们解析到了接收到的消息, 我这里为了演示就不做啥处理了, 直接原样回复他把.
1 | /** |
这里我们已经封装了一个创建xml的方法, 并且将接收到的数据原样返回, 不过我这里只处理了文字消息, 还有其他类型的消息可以慢慢自己定义