python撤回的微信消息怎么看(Python实现微信消息防撤回功能的实例代码)
python撤回的微信消息怎么看
Python实现微信消息防撤回功能的实例代码微信(wechat)是腾讯公司于2011年1月21日推出的一款社交软件,8年时间微信做到日活10亿,日消息量450亿。在此期间微信也推出了不少的功能如:“摇一摇”、“漂流瓶”、“朋友圈”、“附近的人”、“公众平台”、“小程序”等等,涵盖了我们生活的方方面面,微信正在慢慢践行着他们的口号:微信,是一个生活方式
一、背景介绍
产品的更新迭代必然会伴随着功能的推出和下线,今天我们要讲的便是微信在2014年推出的一个小小的新功能:撤回消息,使用此功能者提神醒脑、神清气爽,但被施用者却可能会抓耳挠腮、咬牙切齿的想知道你到底撤回了啥,这就是所谓的好奇害死猫(curiosity kills the cat),今天我们就来用python实现防微信消息撤回,满足一下大家的好奇心!
二、功能设计
我们希望当有好友或者群中有人撤回消息的时候,第一时间能把原消息、发送者信息转发到文件助手中(当然你也可以把消息发回给他,哈哈),这样方便我们查看。
给大家来演示一下实现的功能。
三、功能实现
1.微信撤回消息实现原理
我们先来了解一下微信撤回消息的原理:
其实微信撤回消息原理就是操作者在点击撤回的时候,客户端会自动发一条系统消息:“xxx撤回了一条消息”,然后对方app端收到消息后解析,替换原消息,改个显示的样式即可
猪哥给大家演示一下正常消息和撤回消息的内容到底有什么区别:
正常消息:content='你好骚啊',大家留意一下msgid='8784390488772995470'
撤回消息:content是一串xml格式的内容
我们在下面把它格式化看看
|
<sysmsg type = "revokemsg" > <revokemsg> <session>xxx< / session> <oldmsgid> 1090336364 < / oldmsgid> <msgid> 8784390488772995470 < / msgid> <replacemsg><![cdata[ "猪哥" 撤回了一条消息]]>< / replacemsg> < / revokemsg> < / sysmsg> |
分析上面撤回的content字段我们发现<msgid>8784390488772995470</msgid>
的id与我们之前发送消息的id是一致的,而<replacemsg>这个标签也验证了我的猜想,确实是用新消息替换原消息。
2.找到被撤回消息
根据抓取正常消息和撤回消息的内容我们发现规则:撤回消息中会包含之前被撤回的那条消息的msgid,那我们只要找到之前那条消息就可以了,而wxpy模块默认为我们缓存了最近的200条消息,所以我们只要遍历这些历史消息然后比较msgid就可以找到被撤回的那条消息啦!
如果你微信消息太过频繁,2分钟之内消息数量超过200,则可以将max_history设置大些。
3.转发被撤回消息
原理也搞懂了,被撤回的消息也找到了,就差最后一步转发消息了,如果你之前玩过wxpy肯定会了吧,只要一行代码就可以将消息转发:
msg.forward(bot.file_helper)
4.代码
原理和过程讲完了,代码贴出来给大家看看,注释还是比较详细,有不懂得话可以在学习群中问我。
四、功能验证
五、总结
微信消息防撤回功能实现简单,但实用性很好,目前项目的唯一缺点就是易用性差,简单说就是我们还没有将项目部署服务器,每次使用都得打开电脑然后运行还得一直开着,猪哥考虑后面将项目部署在云服务器上或者打包成apk,这样就使用起来就非常方便了,而且还可以把apk发给朋友,让朋友也体验此功能!
学会这招,再也不用好奇对方到底撤回了啥消息,快下载项目试试吧!下载项目后可直接运行不需要修改代码!
Github项目地址:https://github.com/pig6/wxrobot
wxpy官方文档:https://wxpy.readthedocs.io/zh/latest
总结
以上所述是小编给大家介绍的python实现微信消息防撤回功能的实例代码,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对开心学习网网站的支持!
如果你觉得本文对你有帮助,欢迎转载,烦请注明出处,谢谢!原文链接:http://www.cnblogs.com/pig66/p/10787789.html
- 微信js开发教程(微信JSSDK分享功能图文实例详解)
- 微信小程序贪吃蛇大作战(微信小程序实现贪吃蛇游戏)
- python采集微信电脑端聊天信息(利用Python实现微信找房机器人实例教程)
- 微信小程序简易计算器制作(微信小程序实现简单计算器功能)
- 微信小程序企业微信打卡(使用Python实现企业微信的自动打卡功能)
- 微信开发接口文档地址
- css浮动小例子教程(使用css transition属性实现一个带动画显隐的微信小程序部件)
- 微信发送镭射效果代码(JS实现微信"炸屎"大作战功能)
- 微信小程序的交通码(微信小程序中实现车牌输入功能)
- thinkphp微信开发实例(ThinkPHP框架下微信支付功能总结踩坑笔记)
- 微信小程序抽签如何抽中(JavaScript实现班级抽签小程序)
- h5微信手机端debug模式(iOS微信H5页面橡皮回弹效果的踩坑记录)
- 微信html隐藏功能(使用Html5多媒体实现微信语音功能)
- python爬微信好友(python抓取需要扫微信登陆页面)
- python微信防封(深入学习微信网址链接解封的防封原理visit_type)
- h5怎么在微信公众号发布(H5微信公众号授权的简单实现步骤)
- 泰国旅游攻略(泰国旅游攻略必去景点)
- 越难春卷(越难春卷皮怎么用)
- 休闲VS新古典 办公家居简约设计(办公家居简约设计)
- 15个新成 园 位置公布 深圳龙岗2022年共建花园建设又有大动作(15个新成园位置公布)
- 记者手记 书记带我去 巡街(记者手记书记带我去)
- 富士胶片集团将向土耳其东南部地震灾民捐赠5000万日元 | 美通社(富士胶片集团将向土耳其东南部地震灾民捐赠5000万日元)
热门推荐
- js实现继承的五种(JavaScript继承的三种方法实例)
- php制作随机编号(PHP生成随机码的思路与方法实例探索)
- docker脚本指定linux(在docker中执行linux shell命令的操作)
- css垂直居中图解(全面总结使用CSS实现水平垂直居中效果的方法)
- python后端生成的pdf文件(Python实现截取PDF文件中的几页代码实例)
- sqlserver2016安装教程(SQL server 2016 安装步骤图文教程)
- python怎样读取txt文件的数据内容(Python实现读取txt文件中的数据并绘制出图形操作示例)
- js对日期加减指定天、时、分、秒
- python使用什么函数定义匿名函数(Python匿名函数及应用示例)
- tomcat部署web项目常见问题(关于tomcat部署应用无法访问前端页面的问题)
排行榜
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9