来源:blog.csdn.net/weixin_51277037



前言

自从微信网页版登录禁止后,原来的自动登录回复就失效了。接下来使用一个库PyWeChatSpy,需要pip下载

一、创建机器人

进入图灵机器人官网http://www.tuling123.com/,

戳进帮助中心。

Python制作微信自动回复机器人_PythonPython制作微信自动回复机器人_Python

注册用户

创建机器人

然后在机器人管理界面,创建图灵机器人,最多可以创建5个,由此得出对应的5个apikey。(实际上一个就够了)

apikey是针对接口访问的授权方式。

二、完成代码

创建一个储存图片的文件,来回复拍一拍消息
和代码放在同一个文件夹

完成代码

from PyWeChatSpy import WeChatSpyimport randomimport reimport jsonimport  requestsimport timeuserid = str(1)# 1 可以替换成任何长度小于32的字符串哦apikey = str('')# 这里的A,记得替换成你自己的apikey~

# def robot(content):#调用机器人#     # 图灵api#     api = r'http://openapi.tuling123.com/openapi/api/v2'#     # 创建post提交的数据#     data = {#         "perception": {#         "inputText": {#         "text": 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'])
def my_parser(data):    if data["type"] == 5: # 判断是微信消息数据        for msg in data["data"]:            if (msg["self"] == 0):            # 遍历微信消息                if msg["msg_type"] == 10000:  # 判断是微信拍一拍系统提示                                  m = re.search('.*?拍了拍我。', msg["content"])                    if m:  # 判断为拍一拍                        image_path = f"E:/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):#判断不是群消息                        m = re.search('在吗', msg["content"])                        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()  # 运行代码

效果展示

Python制作微信自动回复机器人_Python_03