L06-获取用户发送的消息
L06-获取用户发送的消息
1、精简auth.js
- 将以上代码转化为:

2、将signature比对放到GET请求下
3、POST请求下验证消息是否来自服务器
4、测试
- 重启服务器
- 打开接口测试号,发送一条消息,观察控制台是否打印消息

- openid是用户微信的id,每个用户都不一样
- 如果开发者服务器没有返回响应为微信服务器,微信服务器会发送三次请求过来,可以先用
res.end(‘’);返回(后续再删掉)
5、接受请求体中的数据(流式数据)
- 编写一个getUserDataAsync()方法
- 使用async函数来接收这个流式数据
6、测试接收结果
- 重启服务器
- 在测试号发送一条消息,观察控制台
<ToUserName>:开发者id<FromUserName>:用户openid<CreateTime>:发送的时间戳<MsgType>:发送的消息类型<Content>:发送的内容<MsgId>:消息id 微信服务器会默认保存3天用户发送的数据,通过此id3天内就能找到消息数据
7、为了拿到数据,我们需要将xml数据解析成js对象
定义一个parseXMLAsync(xmlData)方法,在tool.js中编写
需要用到一个库(xml2js),终端输入
nom i xml2js进行下载安装
8、测试解析结果
- 重启服务器,测试号发送一条消息,观察控制台打印的结果

9、怎么提取我们想要的信息?
解析出来的结果,很多都不是我们想要的,为了今后能够更方便的使用这些数据,我们对其进行格式化,使其成为(名称:内容)的格式进行输出
在tool.js中定义一个新方法:formatMessage(jsData),来获取有用的数据
注意:将value里的第一个值赋值给message

10、测试输出结果
- 同步方法,不需要添加await关键字了

本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 小新's Blog!
评论
Va







