大家好,我是辰哥~
来源: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() # 运行代码
效果展示
联系客服