微信在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发给朋友,让朋友也体验此功能!

学会这招,再也不用好奇对方到底撤回了啥消息,撤回了啥,我都知道!!!

找个朋友模拟试试?哈哈哈!

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/69923331/viewspace-2647985/,如需转载,请注明出处,否则将追究法律责任。

转载于:http://blog.itpub.net/69923331/viewspace-2647985/

暗恋的女孩子撤回了啥?3步查看微信撤回消息相关推荐

  1. python第三方库文件传输助手_python实现文件助手中查看微信撤回消息

    利用python实现防撤回,对方撤回的消息可在自己的微信文件传输助手中查看. 如果想变成可执行文件放在电脑中运行,可用pyinstaller将此程序打包成exe文件. pyinstaller 文件名. ...

  2. python查看微信撤回信息

    python查看微信撤回信息 1.简介 2.安装 3.创建python文件,输入源代码 4.运行生成微信网页版二维码,手机扫码登陆即可 1.简介 itchat是一个开源的微信个人号接口,使用pytho ...

  3. 大学暗恋一个女同学四年,毕业半年后,同学告诉我她等了我四年。【转贴】

    从进学校军训的时候开始我就注意到她了,她长的很清秀,也挺文静的,那时候我也很腼腆,只敢在站军姿的时候偷偷的瞄她,每次她眼睛扫过来的时候我都不敢与她对视.就在偷偷瞄她和怕被她发现中,军训就不知不觉的过去 ...

  4. python查看微信撤回消息_想查看微信好友撤回的消息?Python帮你搞定

    要说微信最让人恶心的发明,消息撤回绝对能上榜. 比如你现在正和女朋友用微信聊着天,或者跟自己喜欢的女孩子聊着天,一个不留神,你没注意到对方发的消息就被她及时撤回了,这时你很好奇,好奇她到底发了什么?于 ...

  5. python查看微信撤回消息_python如何查看微信消息撤回

    本文为大家分享了python查看微信消息撤回的具体代码,供大家参考,具体内容如下 1.安装itchat itchat是一个开源的python微信库,支持发送消息.图片.视频.地图.名片.文件等,还可以 ...

  6. 用PHP查看微信撤回的消息,python实现文件助手中查看微信撤回消息

    利用python实现防撤回,对方撤回的消息可在自己的微信文件传输助手中查看. 如果想变成可执行文件放在电脑中运行,可用pyinstaller将此程序打包成exe文件. pyinstaller 文件名. ...

  7. Python3爬虫查看微信撤回消息

    导语 赋闲在家几天,想鼓捣点简单又好玩的脚本分享给大家,于是就有了这篇文章~~~ 本文将利用Python记录微信好友/微信群中他人撤回的消息,并将这些消息通过文件传输助手发送到自己的手机上. 让我们愉 ...

  8. 使用Python,不到百行代码查看微信撤回消息!

    微信在2014年推出的一个小小的新功能:撤回消息,使用此功能者提神醒脑.神清气爽,但被施用者却可能会抓耳挠腮.咬牙切齿的想知道你到底撤回了啥,这就是所谓的好奇害死猫(Curiosity kills t ...

  9. 用Python实现自动抢红包以及查看微信撤回消息

    欢迎点击右上角关注小编,除了分享技术文章之外还有很多福利,私信学习资料可以领取包括不限于Python实战演练.PDF电子文档.面试集锦.学习资料等. 前言 曾经有一份很大的红包,摆在我的面前,我没有好 ...

最新文章

  1. 杂七杂八(1)——如何查看本机的.NET Framework版本
  2. 学php好不,怎么学好php
  3. BCEWithLogitsLoss的使用案例
  4. [设计模式]抽象工厂模式
  5. 指定端口传输_一段话告诉你什么是端口
  6. 北大教授最短毕业致辞。#人性的可爱 #饶毅#自我尊重
  7. 双表查询java代码_多表增删改查
  8. centos提示找不到netstat 和 ifconfig命令的问题
  9. VB 字符串续行符最多25行…………
  10. 以太坊概念知识入门篇
  11. Linux 卸载JDK以及安装步骤
  12. 如果出现 Cause: java.lang.ClassNotFoundException: Cannot find class: com.itheima.domian.User
  13. linux 内核移植和根文件系统的制作
  14. 计算机主机风扇安装方法,散热风扇怎么装 电脑机箱散热风扇安装图解教程 (全文)...
  15. CC2640R2F BLE5.0 CC2640R2F软件架构
  16. Goldsrc 地图 BSP 文件格式规范
  17. 学计算机二手笔记本,二手笔记本中的套路 坑你就跟玩一样
  18. TSF微服务治理实战系列(四)——服务安全
  19. Android问题——解决Toast在APP通知关闭不显示
  20. 当了12年大学教师,跟大家聊聊嵌入式工程师,硬核单片机编程思想

热门文章

  1. GPX Data——GPX数据
  2. Linux基础环境搭建(CentOS7)- 安装Flume
  3. android通讯录操作批量查询删除更新头像vcf文件写入读取便捷方法
  4. sysadmin默认密码_支持分布式sysadmin团队的5种工具
  5. 无线法则亚服服务器,《无限法则》自带亚服 1060冰龙抢先体验
  6. 判断回文数的两种解法
  7. SAP R/3系统技术
  8. opencv图片局部放大镜
  9. c语言中int占两个字节short,选择.设C语言中,int类型数据占2个字节,则short类型数据占几个字节...
  10. shell迷你版监控脚本