微信公众号开发(Python)[3]
本文最后更新于 2024年1月13日 下午
解析微信事件XML数据消息及响应
目录
- 微信公众号开发(一)——申请微信公众号以及配置流程简介
- 微信公众号开发(二)——解析微信请求及响应消息
- 微信公众号开发(三)——解析微信事件XML数据消息及响应
- 微信公众号开发(四)——公众号按钮设置及自己的微信按钮编辑器
- 微信公众号开发(五)——微信网页授权获取用户openId
获取提交的XML数据内容并解析
由于 xml 数据是在 请求体里以post方式提交上来的,所以不能像获取基本参数那样使用 request.args 去获取了,这部分数据在请求体里面,要获取这部分数据需要使用 request.stream 方法去获取到里面的内容。 而这个得到的是一个输入流,那么问题就变成了如何从输入流中读取其字符串, 可以直接用lxml库进行解析
1 | |
| 参数 | 描述 |
|---|---|
| ToUserName | 开发者微信号 |
| FromUserName | 发送方账号(一个OpenID) |
| CreateTime | 消息创建时间 (整型) |
| MsgType | 消息类型:event:事件text:文本消息image:图片消息voice:语音消息video:视频消息shortvideo:小视频消息location:地理位置消息link:链接消息 |
| MsgId | 消息id |
| Event | 事件类型subscribe:关注事件. 特别的:如果未关注公众号用户扫描参数二维码关注, 也是使用此值,不过此时EventKey的值有前缀qrscene_unsubscribe取消关注事件SCAN: 扫描带参数二维码事件LOCATION: 上报地理位置事件CLICK: 自定义key按钮菜单事件VIEW: 自定义view按钮菜单事件MASSSENDJOBFINISH: 群发消息结果事件TEMPLATESENDJOBFINISH: 发送模板消息结果事件 |
| EventKey | 事件关键值 |
| MenuId | 菜单按钮ID |
| Content | 文本消息内容 |
| PicUrl | 图片消息的图片链接(由系统生成) |
| MediaId | 消息媒体id,可以调用获取临时素材接口拉取数据。 |
| Format | 语音消息格式,如amr,speex等 |
| Recognition | 语音识别结果,UTF8编码 |
| ThumbMediaId | 视频消息缩略图的媒体id,可以调用多媒体文件下载接口拉取数据。 |
| Location_X | 地理位置纬度 |
| Location_Y | 地理位置经度 |
| Scale | 地图缩放大小 |
| Label | 地理位置信息 |
| Title | 链接消息标题 |
| Description | 链接消息描述 |
| Url | 链接消息链接 |
| Ticket | 事件,二维码的ticket,可用来换取二维码图片 |
| Latitude | 事件,上报地理位置,地理位置纬度 |
| Longitude | 事件,上报地理位置,地理位置经度 |
| Precision | 事件,上报地理位置,地理位置精度 |
响应微信消息或事件
先简单的处理一下普通文本消息吧,不管用户向我们出了什么样内容的文本消息,我们都回复:然后捏?
首先判断消息的类型:
1 | |
微信公众号开发(Python)[3]
https://blog.noobbei.top/2024/01/13/微信公众号开发(三)/