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