微信機器人,實現自動回復


今天突然看到了PyWeChatSpy ,眾所周知,微信網頁版不能登錄,之前的微信機器人都不能用了,用以下代碼,可以實現自動回復。詳情可以去github搜,注意微信的版本,目前好像只支持2.8.0.133

我在別人的基礎上修改了一下代碼,具體如下:

from PyWeChatSpy import WeChatSpy
import random
import re
import json
import requests
import time

# 只支持2.8.0.133

userid = str(1)
# 1 可以替換成任何長度小於32的字符串哦
apikey = str('e75a3b457d4b48eabea084b0b1006a2a')
# 這里的apikey,記得替換成你自己的apikey(圖靈機器人)

# 指定某些給我發了--start的用戶才自動回復。輸入--stop停止自動回復
friends = []


def my_parser(data):
    if data["type"] == 5:  # 判斷是微信消息數據
        for msg in data["data"]:
            if (msg["self"] == 0):
                # 遍歷微信消息
                print(msg["content"])
                if msg["msg_type"] == 10000:  # 判斷是微信拍一拍系統提示
                    m = re.search('.*?拍了拍我。', msg["content"])
                    if m:  # 判斷為拍一拍
                        image_path = f"./images/{random.randint(1, 4)}.jpg"  # 隨機選一張回復用的圖片
                        itchat.send_file(msg["wxid1"], image_path)
                        itchat.send_text(msg["wxid1"], "我可能在學習吧(自動回復)")


                elif msg["msg_type"] == 1:  # 判斷為文本消息
                    if (re.search('.*?@chatroom', msg["wxid1"]) == None):  # 判斷不是群消息
                        if (msg["content"] == '--start'):  #輸入--start 開始機器人
                            friends.append(msg['wxid1'])
                            itchat.send_text(msg["wxid1"], "機器人打開。", )
                            continue
                        if (msg["content"] == '--stop'):  #輸入--stop 關閉機器人
                            friends.remove(msg['wxid1'])
                            itchat.send_text(msg["wxid1"], "機器人關閉。", )
                            continue
                        print(msg)
                        m = re.search('在嗎', msg["content"])
                        if msg["wxid1"] in friends:  # 如果在friends數組中就自動回復,不在就不回復
                            if m:
                                itchat.send_text(msg["wxid1"], "我是機器人,有事請留言。", )
                            # print(msg["msg_type"])
                            # print(msg["self"])
                            # print(msg["wxid1"])
                            # print(data["pid"])

                            else:
                                api = r'http://openapi.tuling123.com/openapi/api/v2'
                                # 創建post提交的數據
                                data = {
                                    "perception": {
                                        "inputText": {
                                            "text": msg["content"]
                                        }
                                    },
                                    "userInfo": {
                                        "apiKey": apikey,
                                        "userId": userid,
                                    }
                                }
                                # 轉化為json格式
                                jsondata = json.dumps(data)
                                # 發起post請求
                                response = requests.post(api, data=jsondata)
                                # 將返回的json數據解碼
                                robot_res = json.loads(response.content)
                                # 提取對話數據
                                print(robot_res["results"][0]['values']['text'])
                                # content = msg["content"]
                                # 輸入對話內容
                                # robot(content)
                                itchat.send_text(msg["wxid1"], '[' + robot_res["results"][0]['values']['text'] + '(自動回復)]')


itchat = WeChatSpy(parser=my_parser)  # 實例化WeChatSpy類

if __name__ == '__main__':
    itchat.run()  # 運行代碼


免責聲明!

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



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