来源:blog.csdn.net/weixin_51277037
前言
一、创建机器人自从微信网页版登录禁止后,原来的自动登录回复就失效了。接下来使用一个库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() # 运行代码
效果展示