大家好,我是辰哥~
点击下方名片关注和星标『Python研究者』!
👆点击关注|设为星标|干货速递👆
来源: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() # 运行代码
效果展示
PS:如果觉得我的分享不错,欢迎大家随手点赞、在看。
END
路过的小伙伴右下角点赞和再看,鼓励一下
觉得不错的话,可以分享给其他小伙伴
往期推荐 点击查看
![e8874ec264dc9a86194886443883f364.png](https://i-blog.csdnimg.cn/blog_migrate/b0385c70eaa6f8f324d06cc77796185d.png)
用Python写了一个上课点名系统(附源码)(自制考勤系统)
![6238cd2e75fdb34876db0c8568ec9f47.png](https://i-blog.csdnimg.cn/blog_migrate/39db67ce287526d8677267b3f8025691.png)
![82291afe37b376031c6888704f4ec083.png](https://i-blog.csdnimg.cn/blog_migrate/99e07af9112e9c05f513de12d15ca496.png)
![f093973d33b1e088d1ac493543681b5b.png](https://i-blog.csdnimg.cn/blog_migrate/ce262514c751c738fa97d0a2bc8a22d2.png)