利用Python制作微信机器人(一)
利用,Python,制作,微信,机器人
2025-04-11 08:58:00 时间
大家好,又见面了,我是你们的朋友全栈君。
双十一时候,阿里云服务器打折。于是直接买了三年的阿里云服务器。自己也明白有一个云服务器说白了就是有一个公网IP+7*24h不关机的电脑。但买完服务器后,就不知道用这服务器来做点什么炫酷的事情了。突然想到,最近一直在学python,我可以用python做一些自动化的事情。后来在网上看有人用python做了个微信自动化聊天的工具。但是这个工具是通过调用网页版微信api来进行通信的,而现在微信网页版已经不能使用了,所以这些api也就失效了。后来发现企业版微信是个神器,可以用企业微信来做一个自动回复的机器人。经过两天时间的摸索,终于做出了雏形。话不多说,先放成果。
1.简述
这个自动回复机器人,主要是用python的flask框架写了个微服务。给企业微信自定义应用发消息,会自动将消息转发到自己配置的后端,根据企业微信提供的解码算法,可以拿到所发的消息,再根据所发的消息进行相关回复,并将回复进行加密返回。
2.申请企业微信
https://work.weixin.qq.com/
3.创建应用
然后 应用管理 – 应用 – 自建
比如新建了个应用
4.编写脚本
记住自己的AgentId 和Secret ,在上方我的企业栏里
下面有个企业id
也记住这个id,然后按照下方的代码填入相应的id即可
def send2wechat(message):
AgentId = 'xxxxx'
Secret = 'xxxxx'
CompanyId = 'xxxxx'
# 通行密钥
ACCESS_TOKEN = None
# 如果本地保存的有通行密钥且时间不超过两小时,就用本地的通行密钥
if os.path.exists('ACCESS_TOKEN.txt'):
txt_last_edit_time = os.stat('ACCESS_TOKEN.txt').st_mtime
now_time = time.time()
if now_time - txt_last_edit_time < 7200: # 官方说通行密钥2小时刷新
with open('ACCESS_TOKEN.txt', 'r') as f:
ACCESS_TOKEN = f.read()
# print(ACCESS_TOKEN)
# 如果不存在本地通行密钥,通过企业ID和应用Secret获取
if not ACCESS_TOKEN:
r = requests.post(
f'https://qyapi.weixin.qq.com/cgi-bin/gettoken?corpid={CompanyId}&corpsecret={Secret}').json()
ACCESS_TOKEN = r["access_token"]
# print(ACCESS_TOKEN)
# 保存通行密钥到本地ACCESS_TOKEN.txt
with open('ACCESS_TOKEN.txt', 'w', encoding='utf-8') as f:
f.write(ACCESS_TOKEN)
# 要发送的信息格式
data = {
"touser": "@all",
"msgtype": "text",
"agentid": f"{AgentId}",
"text": {
"content": f"{message}"}
}
# 字典转成json,不然会报错
data = json.dumps(data)
# 发送消息
r = requests.post(
f'https://qyapi.weixin.qq.com/cgi-bin/message/send?access_token={ACCESS_TOKEN}', data=data)
# print(r.json())
此段代码参考: https://www.jianshu.com/p/99f706f1e943
这样运行这个脚本就可以给我们自己的微信发消息了
下一节来教学如何给这个应用发消息,并且后端可以接收到消息。
发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/149777.html原文链接:https://javaforall.cn
相关文章
- 用Python做个色情图片识别
- Python中的基本list操作[通俗易懂]
- Python学生信息管理系统(界面版)
- [Python] 使用print作进度条(解决end=''时print不显示的问题)
- python strip()函数
- Python项目50-Celery框架
- Python基础13-模块的使用
- Python 查找算法_众里寻他千百度,蓦然回首那人却在灯火阑珊处(线性、二分,分块、插值查找算法)
- python中/和//的区别
- Python办公自动化 | word 文本转 excel
- Python+Flask实现的学生培养计划管理系统
- Python 语法基础
- 慎用!Python 实现微信消息轰炸
- Python基础14-内置模块
- 使用python的pyecharts库绘制数据可视化大屏
- 5款最强且免费的Python IDE
- Python 常用模块
- python三种基本数据类型有哪些_python中有哪些基本数据类型
- 干货 | OpenCV获取不规则区域的最大内切圆(附Python / C++ 源码)
- Python-基础02-程序与用户交互