【Python写微信防撤回脚本】04完结 发送被撤回消息

码界捕手漫游
• 阅读 2729
上一期我们整理好了撤回消息文本,现在可以把它们转发给“文件传输助手”了。

ItChat获取好友信息

前面讲过,ItChat能很方便的处理朋友发来的微信消息。这里要讲的是,ItChat还能更方便给朋友发送微信消息。

要给朋友发消息,很自然的,我们必须知道是给哪位朋友发送什么消息。

消息的内容可以自己定义。至于怎么确定是哪位朋友,就需要在接收到消息的时候从msg对象中分析了,这样做的缺点是只能在这位朋友发来消息之后才能给他回复消息。更高级一点的发送消息的方式是提前获取好友的UserName代码,然后就可以随时根据某个好友对应的代码给他发送消息了。

ItChat有提供一个方法,能让我们知道所有好友的具体信息,其中就包括前面提到的UserNameNickName信息:

friends = itchat.get_friends(update=True)

加上update参数之后可以动态刷新朋友列表,这样也能获取到新加的朋友的信息。

获取到所有好友的信息之后就能获取对应的信息了,代码如下:

def flush_friends():
    config = {}
    friends = itchat.get_friends(update=True)
    for friend in friends:
        config[friend['NickName']] = friend['UserName']
    print('Load friends done.')
    return config

所有好友的昵称的编码都在config里面了,需要给谁发信息直接从这个对象里面找即可。

ItChat发送消息

我们可以通过一个例子来学习通过ItChat发送消息。

玩过QQ的同学都知道,QQ有一个自动回复的功能,如果状态是离开状态,好友发来消息会自动回复您好,我现在有事不在,一会再和您联系。。我们就在微信中实现自动回复:

@itchat.msg_register([TEXT, MAP, CARD, NOTE, SHARING])
def text_reply(msg):
    auto_reply = '您好,我现在有事不在,一会再和您联系。'
    itchat.send_msg(auto_reply, msg['User']['UserName'])

效果如下:

【Python写微信防撤回脚本】04完结 发送被撤回消息

再来试一试高级玩法:

@itchat.msg_register([TEXT, MAP, CARD, NOTE, SHARING])
def text_reply(msg):
    auto_reply = '您好,我现在有事不在,一会再和您联系。'
    # itchat.send_msg(auto_reply, msg['User']['UserName'])
    config = flush_friends()
    itchat.send_msg(auto_reply, config['小帮帮'])

为了便于演示,还是写在text_reply方法中。不同的是,给“文件传输助手”发送消息来触发事件,而我们却自动回复给机器人“小帮帮”。效果如下:

【Python写微信防撤回脚本】04完结 发送被撤回消息

【Python写微信防撤回脚本】04完结 发送被撤回消息

发送被撤回消息

有了前面的基础,这一步就非常简单了。唯一跟前面不同的是,微信里“文件传输助手”默认是作为一个好友的,这位好友的代码是filehelper,不要改变大小写。

前面已经拿到了整理好的被撤回消息return_msg ,现在可以发送给filehelper了:

itchat.send_msg(return_msg, 'filehelper')

就一句代码,是不是非常easy。下面是效果:

【Python写微信防撤回脚本】04完结 发送被撤回消息

【Python写微信防撤回脚本】04完结 发送被撤回消息

【Python写微信防撤回脚本】04完结 发送被撤回消息

系列结语

Python有很多好用好玩的库,可以慢慢发掘。本期我们利用ItChat库编写了一个微信防撤回脚本。其实ItChat功能远远不止这些,它还可以处理微信群消息以及各种其他类型的消息,我们讲到的只是九牛一毛,更多的还要大家自己去探索。

这个系列就到此为止了,如果有想要了解交流的可以在公众号主页联系我,这个系列的代码在这里:

https://github.com/TitusWongCN/AntiInfoWithdrawal

大家有什么想了解的,或者有什么想做的也可以在文章后面留言,后面说不定就会做了哦~

后记

不管写什么,希望能跟更多人沟通,有问题或者需求随时欢迎交流。

我所有的项目源码都会放在下面的github仓库里面,有需要可以参考,有问题欢迎指正,谢谢!

https://github.com/TitusWongCN/

【Python写微信防撤回脚本】往期推荐:

第一期:【Python写微信防撤回脚本】01 熟悉ItChat库

第二期:【Python写微信防撤回脚本】02 接收记录聊天信息

第三期:【Python写微信防撤回脚本】03 获取撤回信息并整理

下面是我的公众号,有兴趣可以扫一下:

【Python写微信防撤回脚本】04完结 发送被撤回消息

【Python写微信防撤回脚本】04完结 发送被撤回消息

点赞
收藏
评论区
推荐文章
blmius blmius
3年前
MySQL:[Err] 1292 - Incorrect datetime value: ‘0000-00-00 00:00:00‘ for column ‘CREATE_TIME‘ at row 1
文章目录问题用navicat导入数据时,报错:原因这是因为当前的MySQL不支持datetime为0的情况。解决修改sql\mode:sql\mode:SQLMode定义了MySQL应支持的SQL语法、数据校验等,这样可以更容易地在不同的环境中使用MySQL。全局s
皕杰报表之UUID
​在我们用皕杰报表工具设计填报报表时,如何在新增行里自动增加id呢?能新增整数排序id吗?目前可以在新增行里自动增加id,但只能用uuid函数增加UUID编码,不能新增整数排序id。uuid函数说明:获取一个UUID,可以在填报表中用来创建数据ID语法:uuid()或uuid(sep)参数说明:sep布尔值,生成的uuid中是否包含分隔符'',缺省为
Easter79 Easter79
3年前
thinkcmf+jsapi 实现微信支付
首先从小程序端接收订单号、金额等参数,然后后台进行统一下单,把微信支付的订单号返回,在把订单号发送给前台,前台拉起支付,返回参数后更改支付状态。。。回调publicfunctionnotify(){$wechatDb::name('wechat')where('status',1)find();
Wesley13 Wesley13
3年前
SQL语句中发送微信消息
利用EasySQLMAIL的外部接口表功能来发送。可以支持Oracle、SQLServer、MySQL、PostgreSQL、Informix数据库。步骤如下:(1)在数据源的“外部接口功能”中启用“允许从该数据源上的接口表中发送企业微信或钉钉消息”选项,并选择可以用来发消息的企业微信应用(注意记录下应用ID,后面的S
Wesley13 Wesley13
3年前
Java日期时间API系列31
  时间戳是指格林威治时间1970年01月01日00时00分00秒起至现在的总毫秒数,是所有时间的基础,其他时间可以通过时间戳转换得到。Java中本来已经有相关获取时间戳的方法,Java8后增加新的类Instant等专用于处理时间戳问题。 1获取时间戳的方法和性能对比1.1获取时间戳方法Java8以前
Stella981 Stella981
3年前
Python微信机器人
Python微信机器人本文目录一简介二登录微信三微信好友男女比例四微信好友地域分布五微信聊天机器人一简介wxpy基于itchat,使用了Web微信的通讯协议,,通过大量接口优化提升了模块的易用性,并进行丰富的功能扩展。实现了微信登录、收发消息、搜索好友、数
流浪剑客 流浪剑客
2年前
微信多开、防撤回工具:微信微调助手WeChatTweak for mac v1.3.1最新版
WeChatTweakformac是一款仅限mac平台的微信客户端插件,这款插件拥有防撤回和微信多开的功能。
流浪剑客 流浪剑客
1年前
微信微调助手WeChatTweak:多开和防撤回工具
是一款仅限mac平台的微信客户端插件,这款插件拥有防撤回和微信多开的功能。集成版无需执行终端命令,直接可以右键单击dock栏图标以登录另一个微信帐户。
流浪剑客 流浪剑客
1年前
微信伴侣WechatTweak for mac v3.8.5中文集成版 支持M1
微信小助手故障之后如何实现微信多开和微信防撤回免认证功能呢?这里小编为大家推荐另外一款非常不错微信多开助手微信伴侣WechatTweak,微信伴侣WechatTweak功能就比较简单直接,主要包括防撤回、多开、免二次认证登录和消息处理增强。下载:
流浪剑客 流浪剑客
1年前
微信伴侣WechatTweak for mac(微信防撤回、多开助手)v3.8.5中文集成版
微信小助手故障之后如何实现微信多开和微信防撤回免认证功能呢?这里小编为大家推荐另外一款非常不错微信多开助手微信伴侣WechatTweak,微信伴侣WechatTweak功能就比较简单直接,主要包括防撤回、多开、免二次认证登录和消息处理增强。下载:
美凌格栋栋酱 美凌格栋栋酱
5个月前
Oracle 分组与拼接字符串同时使用
SELECTT.,ROWNUMIDFROM(SELECTT.EMPLID,T.NAME,T.BU,T.REALDEPART,T.FORMATDATE,SUM(T.S0)S0,MAX(UPDATETIME)CREATETIME,LISTAGG(TOCHAR(