zoukankan      html  css  js  c++  java
  • 微信机器人,实现自动回复

    今天突然看到了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()  # 运行代码
    
    
  • 相关阅读:
    剑指Offer47 不用加减乘除做加法
    剑指Offer46 求1+2+...+n
    剑指Offer45 约瑟夫环
    剑指Offer44 扑克牌的顺子
    剑指Offer43 n个骰子点数概率
    面试题分享
    初识python版本
    redis安装部署
    配置本地yum源
    闭包、装饰器
  • 原文地址:https://www.cnblogs.com/realwuxiong/p/14131430.html
Copyright © 2011-2022 走看看