Webhook密钥必须从环境变量读取,严禁硬编码;@所有人需用["@all"]格式;requests.post须设timeout=(3,7)并检查errcode;定时任务需加日志和告警闭环。

Webhook密钥必须从环境变量读取,不能硬编码
直接把 https://qyapi.weixin.qq.com/cgi-bin/webhook/send?key=xxx 写死在代码里,等于把群发权限公开。一旦误提交到 Git,测试群可能被刷屏,甚至被用于钓鱼。
- 本地开发用
python-dotenv:先装pip install python-dotenv,再在脚本开头加from dotenv import load_dotenv; load_dotenv() - 生产环境(如 Linux 服务器)用系统级变量:
export WECHAT_WEBHOOK="https://..." - 务必把
.env文件加进.gitignore,否则前面所有操作都白做
发送 @所有人时 mentioned_list 必须是列表且大小写敏感
写成 "mentioned_list": "@all" 或 "@ALL" 都无效——接口会静默忽略,既不报错也不提醒。
- 正确写法只有两种:
"mentioned_list": ["@all"](@所有人),或"mentioned_list": ["w123456789"](@具体成员) - 成员账号名不是昵称,得去企业微信后台「通讯录」查「账号」字段,例如
w123456789 - @所有人只对群内有「发送消息权限」的成员生效,禁言群或权限受限群可能收不到提醒
requests.post 必须设 timeout 并检查 errcode
不设超时,网络抖动或企业微信限流时脚本会卡住;不检查 errcode,失败了你也以为成功了。
SkillSub Pro - Python 题解与代码注释双功能技能功能概述SkillSub Pro - Python 题解与代码注释双功能技能是一项面向实际任务的技能,主要用于SkillSub Pro 是一个 Python 题解生成与代码注释的 双功能合体技能 ,专为学生、算法学习者和开发者设计;✅ 一个技能,两种用途 :;核心要点📝 题解模式 :输入题目/题号,自动生成完整 Python 题解(含详细注释、解题思路、复杂度分析);💬 注释模式 :输入 Python 代码,自动添加详细中。它将相关步骤、
- 推荐超时参数:
timeout=(3, 7)(3秒连不上,7秒没响应就放弃) - 必须捕获
requests.exceptions.RequestException,不能只靠response.status_code == 200 - 返回值里
"errcode": 0才算真正成功;errcode=40014是 key 错误,errcode=45009是每分钟超 20 条限制 - 可加一次重试(非循环重发),避免单次网络抖动导致整条任务失败
定时任务别只靠 crontab,得加日志和状态反馈
crontab 调 Python 脚本本身没问题,但没人告诉你它失败了——脚本卡住、key 过期、网络不通,全无痕迹。
立即学习“Python免费学习笔记(深入)”;
- 在脚本里加
logging,把关键步骤(如请求前、响应后、errcode 值)记到文件 - 推送失败时,让脚本自己再发一条告警消息到另一个运维群,形成闭环
- 如果用云函数(如腾讯云 SCF),注意冷启动延迟和执行时间限制,别在函数里做耗时数据采集


















