微信公众号开发(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/微信公众号开发(三)/