Python写微信防撤回脚本!在我面前就不要撤回了吧!没用~

ItChat 获取好友信息

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

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

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

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

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 功能远远不止这些,它还可以处理微信群消息以及各种其他类型的消息,我们讲到的只是九牛一毛,更多的还要大家自己去探索。

源码地址加群:850591259

发布了5 篇原创文章 · 获赞 0 · 访问量 4227

猜你喜欢

转载自blog.csdn.net/weixin_43881394/article/details/105244040
今日推荐