上一期我们整理好了撤回消息文本,现在可以把它们转发给“文件传输助手”了。

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'])

效果如下:

再来试一试高级玩法:

@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方法中。不同的是,给“文件传输助手”发送消息来触发事件,而我们却自动回复给机器人“小帮帮”。效果如下:

发送被撤回消息

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

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

itchat.send_msg(return_msg, 'filehelper')

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

系列结语

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

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

https://github.com/TitusWongCN/AntiInfoWithdrawal

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

后记

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

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

https://github.com/TitusWongCN/

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

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

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

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

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


TitusWong
38 声望20 粉丝

Python