使用itchat實現一個微信機器人聊天回復功能


近看到好多群里都有一個@機器人的功能,挺有趣的,想自己也玩下,就通過百度一點點實現,在這總結一下整個從無到有的過程。

首先,要知道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最簡單的文本回復功能


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM