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








