返回 Skill 列表
extension
分类: 其它需要 API Key

自动发朋友圈

连上自己的notion数据库,可以定时发朋友圈,也可以用多为表格。登录24以后再发,逐天递增条数。

person作者: user_1627842fhubcommunity

Skill: wechat-moments-auto

微信朋友圈自动发送技能,支持从 Notion 数据库读取内容并自动发送到微信朋友圈。

功能特性

  • 博主识别版:根据内容名称自动匹配博主,使用对应博主图片
  • 随机图片版:从指定目录随机选择图片发送
  • 随机延迟:支持 5-15 分钟随机延迟,避免定时特征
  • 状态流转:自动更新 Notion 数据库状态
  • 内容处理:自动去除 # 符号,避免朋友圈显示异常

安装要求

系统要求

  • Windows 10/11(64位)
  • Python 3.8+
  • 微信 PC 版(已登录)

Python 依赖

pip install pyautogui pyperclip requests

配置文件

  1. Notion API Token

    创建 .env 文件(默认路径:d:/AIWork/.env):

    NOTION_API_KEY=your_notion_api_key_here
    

    或设置环境变量:

    export NOTION_API_KEY=your_notion_api_key_here
    
  2. 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 截图准备

首次使用前,需要截取微信界面元素图片:

  1. 打开微信 PC 版
  2. 运行截图脚本:
    python scripts/capture_ui.py
    
  3. 按提示截取以下元素:
    • 朋友圈图标(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"

修改状态字段名称

编辑脚本中的状态字段名称:

# 博主识别版
"平台/状态"  # 状态字段名
"未开始"    # 待发送状态
"完成"      # 已发送状态

# 随机图片版
"发布状态"  # 状态字段名
"未发布"    # 待发送状态
"已发布"    # 已发送状态

注意事项

  1. 微信窗口:发送前确保微信已登录且窗口可见
  2. 屏幕分辨率:UI 截图需与当前分辨率匹配
  3. 网络连接:需要稳定的网络连接访问 Notion API
  4. API 限制:Notion API 有请求频率限制,避免频繁调用
  5. 隐私保护:请勿在代码中硬编码 API Token,使用环境变量或配置文件

故障排查

问题:找不到 Notion API Token

解决方案:

  • 检查 .env 文件路径是否正确
  • 检查环境变量是否设置
  • 检查文件内容格式:NOTION_API_KEY=xxx(无空格)

问题:UI 元素识别失败

解决方案:

  • 重新截取 UI 元素图片
  • 确保微信窗口未被遮挡
  • 检查屏幕缩放比例是否一致

问题:发送失败

解决方案:

  • 检查微信是否已登录
  • 检查图片路径是否存在
  • 查看控制台错误信息

更新日志

v1.0.0 (2026-05-17)

  • 初始版本
  • 支持博主识别版和随机图片版
  • 支持随机延迟发送
  • 支持自动更新 Notion 状态

许可证

MIT License

联系方式

如有问题或建议,请提交 Issue 或 Pull Request。