01 前言&&效果展示

相信大家都有忙碌的时候,不可能一直守在微信上及时回复消息。但微信又不能像QQ一样设置自动回复。无妨,今天,我们就来用Python实现微信的自动回复功能吧,并且把接收到的消息统一发送到文件助手里面,方便统一查看。

效果如下:

02 环境准备

Python版本:3.6.0
系统平台:Windows 10 X64
IDE:pycharm

相关模块:
time模块;
itchat模块;
以及一些Python自带的模块。

03 实现原理

其实原理很简单,主要是利用itchat登录微信后,注册消息方法。itchat将根据接收到的消息类型寻找对应的已经注册的方法。如果一个消息类型没有对应的注册方法,该消息将会被舍弃。在这里我们主要注册的是文字类型的消息方法。然后判断消息来源,如果不是自己发出的消息,则将消息转发到文件助手,然后自动回复对方。代码如下:

 1# 自动回复
2# 封装好的装饰器,当接收到的消息是Text,即文字消息
3# 注册消息响应事件,消息类型为\'Text\',即文本消息
4@itchat.msg_register(\'Text\')
5def text_reply(msg):
6    # 当消息不是由自己发出的时候
7    if not msg[\'FromUserName\'] == myUserName:
8        # 发送一条提示给文件助手
9        itchat.send_msg(u"[%s]收到好友@%s 的信息:%s\n" %
10                        (time.strftime("%Y-%m-%d %H:%M:%S", time.localtime(msg[\'CreateTime\'])),
11                         msg[\'User\'][\'NickName\'],
12                         msg[\'Text\']), \'filehelper\')
13        # 回复给好友
14        return \'[自动回复]您好,我现在有事不在,一会再和您联系。\n已经收到您的的信息:%s\n\' % (msg[\'Text\'])

转到文件助手的时候,注意把时间什么的添加上去。看上去效果更好。

04 后台登录

然后就可以把我们的微信挂在后台自动回复了。注意运行的时候获取一下自己的微信名,以便用来判断消息是不是自己发出的。

1if __name__ == \'__main__\':
2    itchat.auto_login()
3
4    # 获取自己的UserName
5    myUserName = itchat.get_friends(update=True)[0]["UserName"]
6    itchat.run()


好啦,是不是很简单呢?

 

05 完整代码

欲获取代码,请关注我们的微信公众号【程序猿声】,在后台回复:pycode01。即可获取。

微信公众号微信公众号

版权声明:本文为dengfaheng原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://www.cnblogs.com/dengfaheng/p/10029448.html