Skill: wechat-moments-auto
微信朋友圈自动发送技能,支持从 Notion 数据库读取内容并自动发送到微信朋友圈。
功能特性
- 博主识别版:根据内容名称自动匹配博主,使用对应博主图片
- 随机图片版:从指定目录随机选择图片发送
- 随机延迟:支持 5-15 分钟随机延迟,避免定时特征
- 状态流转:自动更新 Notion 数据库状态
- 内容处理:自动去除
#符号,避免朋友圈显示异常
安装要求
系统要求
- Windows 10/11(64位)
- Python 3.8+
- 微信 PC 版(已登录)
Python 依赖
pip install pyautogui pyperclip requests
配置文件
-
Notion API Token
创建
.env文件(默认路径:d:/AIWork/.env):NOTION_API_KEY=your_notion_api_key_here或设置环境变量:
export NOTION_API_KEY=your_notion_api_key_here -
Notion 数据库配置
需要在 Notion 中创建集成(Integration)并添加到目标数据库。
目录结构
wechat-moments-auto/
├── SKILL.md # 本说明文档
├── scripts/ # 核心脚本
│ ├── send_from_notion.py # 博主识别版脚本
│ ├── send_random_images.py # 随机图片版脚本
│ └── send_by_image.py # 发送核心模块
├── images/ # 博主图片目录
│ ├── 路飞.png
│ ├── 大元.png
│ └── 全哥.png
├── random-images/ # 随机图片任务
│ ├── send_random_images.py # 随机图片脚本
│ └── images/ # 随机图片目录
└── ui_images/ # UI 截图目录
├── moments_icon.png # 朋友圈图标
├── camera_btn.png # 相机按钮
└── publish_btn.png # 发表按钮
使用方法
1. 博主识别版
从 Notion 读取内容,根据名称自动匹配博主图片。
Notion 数据库要求:
- 数据库需包含以下字段:
名称(Title):内容标题,用于识别博主AI朋友圈金句(Rich Text):朋友圈内容平台/状态(Status):状态字段,值为"未开始"/"完成"
博主识别规则:
- 标题包含"不卖珠宝的路飞"、"自己学易的路飞"、"自己造船的路飞" → 路飞
- 标题包含"遇见大元"、"大元" → 大元
- 标题包含"全哥" → 全哥
执行命令:
python scripts/send_from_notion.py
可选参数:
python scripts/send_from_notion.py --dry-run # 模拟运行
python scripts/send_from_notion.py --no-update # 发送后不更新状态
python scripts/send_from_notion.py --min-delay 5 --max-delay 15 # 自定义延迟范围
2. 随机图片版
从 Notion 读取内容,随机选择图片发送。
Notion 数据库要求:
- 数据库需包含以下字段:
AI朋友圈文案(Title):朋友圈内容发布状态(Status):状态字段,值为"未发布"/"已发布"
执行命令:
python random-images/send_random_images.py
可选参数:
python random-images/send_random_images.py --dry-run # 模拟运行
定时任务配置
创建定时任务
博主识别版(每天中午12点):
# 使用 cron 表达式:0 12 * * *
# 随机延迟 5-15 分钟
随机图片版(每天上午9点):
# 使用 cron 表达式:0 9 * * *
# 随机延迟 5-15 分钟
UI 截图准备
首次使用前,需要截取微信界面元素图片:
- 打开微信 PC 版
- 运行截图脚本:
python scripts/capture_ui.py - 按提示截取以下元素:
- 朋友圈图标(moments_icon.png)
- 相机按钮(camera_btn.png)
- 发表按钮(publish_btn.png)
自定义配置
修改博主识别规则
编辑 scripts/send_from_notion.py 中的 BLOGGER_KEYWORDS 字典:
BLOGGER_KEYWORDS = {
"博主名": ["关键词1", "关键词2"],
# 添加更多博主...
}
修改图片目录
编辑脚本中的 IMAGES_DIR 变量:
IMAGES_DIR = Path("your/custom/path/images")
修改 Notion 数据库 ID
编辑脚本中的 DATABASE_ID 变量:
DATABASE_ID = "your_database_id_here"
修改状态字段名称
编辑脚本中的状态字段名称:
# 博主识别版
"平台/状态" # 状态字段名
"未开始" # 待发送状态
"完成" # 已发送状态
# 随机图片版
"发布状态" # 状态字段名
"未发布" # 待发送状态
"已发布" # 已发送状态
注意事项
- 微信窗口:发送前确保微信已登录且窗口可见
- 屏幕分辨率:UI 截图需与当前分辨率匹配
- 网络连接:需要稳定的网络连接访问 Notion API
- API 限制:Notion API 有请求频率限制,避免频繁调用
- 隐私保护:请勿在代码中硬编码 API Token,使用环境变量或配置文件
故障排查
问题:找不到 Notion API Token
解决方案:
- 检查
.env文件路径是否正确 - 检查环境变量是否设置
- 检查文件内容格式:
NOTION_API_KEY=xxx(无空格)
问题:UI 元素识别失败
解决方案:
- 重新截取 UI 元素图片
- 确保微信窗口未被遮挡
- 检查屏幕缩放比例是否一致
问题:发送失败
解决方案:
- 检查微信是否已登录
- 检查图片路径是否存在
- 查看控制台错误信息
更新日志
v1.0.0 (2026-05-17)
- 初始版本
- 支持博主识别版和随机图片版
- 支持随机延迟发送
- 支持自动更新 Notion 状态
许可证
MIT License
联系方式
如有问题或建议,请提交 Issue 或 Pull Request。
Scan to join WeChat group