文章目录
- 前言
- 一、创建机器人
- 二、完成代码
前言
自从微信网页版登录禁止后,原来的自动登录回复就失效了。接下来使用一个库PyWeChatSpy,需要pip下载
一、创建机器人
进入图灵机器人官网http://www.tuling123.com/,
戳进帮助中心。
注册用户
创建机器人
然后在机器人管理界面,创建图灵机器人,最多可以创建5个,由此得出对应的5个apikey。(实际上一个就够了)
apikey是针对接口访问的授权方式。
二、完成代码
创建一个储存图片的文件,来回复拍一拍消息
和代码放在同一个文件夹
完成代码
from PyWeChatSpy import WeChatSpy
import random
import re
import json
import requests
import time
userid = 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() # 运行代码