前言&&效果展示
相信大家都有忙碌的时候,不可能一直守在微信上及时回复消息。但微信又不能像QQ一样设置自动回复。无妨,今天,我们就来用Python实现微信的自动回复功能吧,并且把接收到的消息统一发送到文件助手里面,方便统一查看。
效果如下:
点击加载图片
点击加载图片
02
环境准备
Python版本:3.6.0
系统平台:Windows10X64
IDE:pycharm
相关模块:
time模块;
itchat模块;
以及一些Python自带的模块。
03
实现原理
其实原理很简单,主要是利用itchat登录微信后,注册消息方法。itchat将根据接收到的消息类型寻找对应的已经注册的方法。如果一个消息类型没有对应的注册方法,该消息将会被舍弃。在这里我们主要注册的是文字类型的消息方法。然后判断消息来源,如果不是自己发出的消息,则将消息转发到文件助手,然后自动回复对方。代码如下:
1#自动回复2#封装好的装饰器,当接收到的消息是Text,即文字消息3#注册消息响应事件,消息类型为'Text',即文本消息4@itchat.msg_register('Text')5deftext_reply(msg):6#当消息不是由自己发出的时候7ifnotmsg['FromUserName']==myUserName:8#发送一条提示给文件助手9itchat.send_msg(u'[%s]收到好友@%s的信息:%s\n'%10(time.strftime('%Y-%m-%d%H:%M:%S',time.localtime(msg['CreateTime'])),11msg['User']['NickName'],12msg['Text']),'filehelper')13#回复给好友14return'[自动回复]您好,我现在有事不在,一会再和您联系。\n已经收到您的的信息:%s\n'%(msg['Text'])
转到文件助手的时候,注意把时间什么的添加上去。看上去效果更好。
04
后台登录
然后就可以把我们的微信挂在后台自动回复了。注意运行的时候获取一下自己的微信名,以便用来判断消息是不是自己发出的。
1if__name__=='__main__':2itchat.auto_login34#获取自己的UserName5myUserName=itchat.get_friends(update=True)[0]['UserName']6itchat.run
后台登录如下:
点击加载图片
好啦,是不是很简单呢?
05
完整代码
注:代码文件获取请移步留言区。
1importitchat2importtime34#自动回复5#封装好的装饰器,当接收到的消息是Text,即文字消息6#注册消息响应事件,消息类型为'Text',即文本消息7@itchat.msg_register('Text')8deftext_reply(msg):9#当消息不是由自己发出的时候10ifnotmsg['FromUserName']==myUserName:11#发送一条提示给文件助手12itchat.send_msg(u'[%s]收到好友@%s的信息:%s\n'%13(time.strftime('%Y-%m-%d%H:%M:%S',time.localtime(msg['CreateTime'])),14msg['User']['NickName'],15msg['Text']),'filehelper')16#回复给好友17return'[自动回复]您好,我现在有事不在,一会再和您联系。\n已经收到您的的信息:%s\n'%(msg['Text'])1819if__name__=='__main__':20itchat.auto_login2122#获取自己的UserName23myUserName=itchat.get_friends(update=True)[0]['UserName']24itchat.run
联系客服