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。即可獲取。
