用 Python 实现微信自动回复
时间:2022-07-23
本文章向大家介绍用 Python 实现微信自动回复,主要内容包括其使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。
在之前的文章 Python 遇到微信 中,我们使用 WechatPCAPI 做了获取微信好友信息以及查看撤回消息,本文我们再使用 WechatPCAPI 来实现微信自动回复的功能。
实现自动回复的功能,我们需要用到图灵机器人,网址为:http://www.turingapi.com
,我们在浏览器中输入上述网址打开,之后点击注册/登录
按钮,如下图所示:
打开后如下图所示:
我们接着点击立即注册
,就跳转到了注册页,如下图所示:
我们先填写必填信息,填写完之后点击注册
按钮即可,注册成功之后便跳到了机器人管理页面,如下所示:
我们点击创建机器人
按钮跳转到如下页面:
我们填写完相应信息之后点创建
按钮,之后会跳转到机器人设置页面,如下图所示:
我们需要记录下 apikey
。
有了 apikey
,我们就可以实现自动回复功能了,实现代码如下所示:
import time, logging, random, requests
from queue import Queue
from WechatPCAPI import WechatPCAPI
logging.basicConfig(level=logging.INFO)
queue_recved_event = Queue()
def on_message(msg):
queue_recved_event.put(msg)
# 机器人返回消息
def reply_msg(receive_msg):
apikey = '自己的apikey'
apiurl = 'http://www.tuling123.com/openapi/api?key=%s&info=%s' % (apikey, receive_msg)
result = requests.get(apiurl)
result.encoding = 'utf-8'
data = result.json()
return data['text']
def login():
pre_msg = ''
# 初始化微信实例
wx_inst = WechatPCAPI(on_message=on_message, log=logging)
# 启动微信
wx_inst.start_wechat(block=True)
# 等待登陆成功,此时需要人为扫码登录微信
while not wx_inst.get_myself():
time.sleep(5)
print('登陆成功')
while True:
msg = queue_recved_event.get()
if 'msg::single' in msg.get('type'):
data = msg.get('data')
if data.get('is_recv', False):
msgfrominfo = data.get('msgfrominfo')
if msgfrominfo is not None:
wx_id = msgfrominfo.get('wx_id')
if wx_id != 'weixin':
receive_msg =str(data.get('msgcontent'))
reply = reply_msg(receive_msg)
wx_inst.send_text(to_user=wx_id, msg=reply)
看一下实现效果:
- CSS实现按钮的两张图片的同步出现
- 完整部署CentOS7.2+OpenStack+kvm 云平台环境(6)--在线调整虚拟机的大小
- 关于vb中的容器
- 关于vb中的容器
- Mysql数据库之Binlog日志使用总结
- 揭秘新人机大战柯洁对手天壤 AI排名已力压Deepzen
- 一路走到java工程师,java都快出java9了,到底该如何学java?
- 网站发布合并bll问题的解决
- 痛并快乐着:浅谈大数据时代的分布式存储架构
- linux运维中的命令梳理(四)
- linux运维中的命令梳理(三)
- 轻松水印-批量提取exif信息加水印的工具
- Enterprise Library 4.1学习笔记7----缓存应用程序块之SqlDependency
- linux运维中的命令梳理(一)
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- 详解Numpy中的数组拼接、合并操作
- 批量更改图像尺寸到统一大小
- 张东升,我知道是你!如何使用GAN做一个秃头生产器
- Roslyn 在 NuGet 包中放注释 xml 文件的方法
- OpenCV3 图像的加载、修改、显示与保存
- 打卡群刷题总结0727——搜索旋转排序数组 II
- dotnet 的 TaskCompletionSource 的 TrySetResult 是线程安全
- OpenCV 摄像头与视频读取并显示
- OpenCV 边缘检测
- Spring Boot 集成 WebSocket 实现服务端推送消息到客户端
- OpenCV 绘制图形
- OpenCV 图片缩放
- AI树莓派——构建树莓派大脑(NCNN环境搭建)
- PC人脸识别登录,出乎意料的简单
- TensorLayer学习之简介与安装