近看到好多群里都有一個@機器人的功能,挺有趣的,想自己也玩下,就通過百度一點點實現,在這總結一下整個從無到有的過程。
首先,要知道itchat,它是Python寫的,所以想要實現這個機器人的功能,需要使用Python(就是Python,ε=(´ο`*)))唉),我是一點Python都不會,但是沒關系,整個編碼也就只需要幾行,網上也有很多實現,可以參考。
1、安裝Python環境
我的電腦是從來都沒有搭建過Python相關的東西,所以想要運行,就需要先安裝Python環境。
從官網https://www.python.org/downloads/ 上下載最新的Python安裝包,然后安裝,一定要知道被安裝到哪個目錄了
2、添加環境變量
先找到剛剛安裝的Python,Python.exe在哪個目錄下
如果找不到,可以試試找到下面這個,然后右鍵屬性,看看它的目錄(d:\Users\hello\AppData\Local\Programs\Python\Python37-32\python.exe)
選中path然后編輯,注意環境變量的每個值之間使用分號隔開的,所以最后一個值如果沒有分號,要手動加一個,然后把剛剛找到的目錄加到最后面(注意要去掉Python.exe),所以追加的值就是d:\Users\hello\AppData\Local\Programs\Python\Python37-32
保存完之后,打開命令行,輸入Python,顯示下面的信息,說明Python,已經安裝成功了
3、安裝pip
pip 是一個現代的,通用的 Python 包管理工具。提供了對 Python 包的查找、下載、安裝、卸載的功能。
下載路徑:https://pypi.python.org/pypi/pip#downloads
下載后,解壓,然后找到這個目錄,在這個目錄下,打開命令行窗口,執行
python setup.py install
同樣的方式,將D:\Users\hello\AppData\Local\Programs\Python\Python37-32\Scripts添加到Path 中,然后在命令行執行
pip list
此時Python的環境就全部安裝完成了。
4、安裝itchat
在命令行執行
pip install itchat
5、編寫python文件
我使用的IDE是vscode,因為沒有開發過Python,所以需要在擴展中搜索Python,並且安裝
安裝完成后,新建一個test1.py
直接拷貝下面的代碼,到test1.py 中,然后調試運行,會彈出一張二維碼,用手機微信掃描后,登錄(此時你的賬號,登錄的就是電腦網頁版的微信,所以電腦上這個時候不要登錄微信,如果電腦上已經登錄了微信,那么這個時候電腦上的微信會提示你,你的賬號已在其他地方登錄)
import itchat @itchat.msg_register(itchat.content.TEXT) def text_reply(msg): return msg.text itchat.auto_login() itchat.run()
在手機端的微信,這個時候你的好友給你發的任何信息,都會自動返回相同的信息給你的好友。現在就實現了自動回復的功能。
6、調用微軟小冰接口,實現聊天回復
在命令行執行,安裝 requests 和 urllib
pip install requests
pip install urllib3 //3是urllib的版本號
拷貝下面的代碼,運行
# 加載包 import itchat import requests import urllib.parse @itchat.msg_register(itchat.content.TEXT) def text_reply(msg): robotChat(msg) def robotChat(msg): print('robot chat') print(msg['Text']) sendMsg = msg['Text'].strip() try: r = requests.get('https://www4.bing.com/socialagent/chat?q=' + sendMsg+'&anid=123456')#小冰接口 try: r1= r.json() info = urllib.parse.unquote(r1['InstantMessage']['ReplyText']) print(info) itchat.send(info, toUserName = msg['FromUserName'])#發送回復消息 except Exception as e2: print(e2) except Exception as e: print(e) itchat.auto_login() itchat.run()
7、群聊,@回復
# 加載包 import itchat import requests import urllib.parse @itchat.msg_register(itchat.content.TEXT, isGroupChat = True) def group_reply(msg): if msg['isAt']: robotChat(msg) def robotChat(msg): print('robot chat') print(msg['Text']) sendMsg = msg['Text'].strip() if sendMsg.find('@'+msg['User']['Self']['DisplayName'])==0: sendMsg = msg['Text'][len(msg['User']['Self']['DisplayName']) + 2:] elif msg['Text'].find('@'+msg['User']['Self']['DisplayName']) > -1: sendMsg = msg['Text'].replace('@'+msg['User']['Self']['DisplayName'], '') print(sendMsg) try: r = requests.get('https://www4.bing.com/socialagent/chat?q=' + sendMsg+'&anid=123456') try: r1= r.json() info = urllib.parse.unquote(r1['InstantMessage']['ReplyText']) print(info) itchat.send(info, toUserName = msg['FromUserName']) except Exception as e2: print(e2) except Exception as e: print(e)
以上就是itchat最簡單的文本回復功能