半自动公众号更新-从热点到发布的一条龙实践
做公众号最耗时的往往是两件事:找选题和写稿。
AI 能帮我们生成初稿,但若没有一套稳定流程,要么忘了更新,要么文章散落在各处难以管理。
分享一套我实际在用的半自动化流水线:从热点抓取、AI 成文、版本管理,到本地排版、推送到公众号草稿箱,最后保留一道人工发布,既省时间又可控。
一、整体流程一览
┌─────────────────┐ ┌──────────────┐ ┌─────────────────┐
│ 扣子空间 │ │ Gitee │ │ 本地 (你的电脑) │
│ 定时任务 │ ──► │ 仓库 │ ──► │ pull + 排版 │
│ 热点 → 成文 │ │ 存 MD │ │ run_daily.py │
└─────────────────┘ └──────────────┘ └────────┬────────┘
│
▼
┌─────────────────┐ ┌──────────────┐ ┌─────────────────┐
│ 读者看到文章 │ ◄── │ 公众号后台 │ ◄── │ 公众号草稿箱 │
│ 每天固定时间 │ │ 手动点发布 │ │ (API 自动推送) │
└─────────────────┘ └──────────────┘ └─────────────────┘
- 全自动:扣子每天跑 → 文章自动进 Gitee;本地定时/手动跑脚本 → 文章自动进草稿箱。
- 半自动:在本地使用python 脚本对 MD 做一次排版美化;每天在公众号后台从草稿箱点一次「发布」。
这样既不用每天从零写稿,又保留了「发布前看一眼」的闸门,适合个人号或小团队。
二、各环节怎么做
1. 扣子空间:热点 + 成文,并推到 Gitee
目标:每天自动抓热点、生成一篇 Markdown 文章,并提交到你的 Gitee 仓库。
- 在 扣子(Coze) 里建一个工作流/机器人:
- 输入:定时触发(如每天早晨某时刻)。
- 步骤:调用热点接口或爬取你需要的平台 → 选一个主题 → 用大模型按你的风格生成一篇 Markdown 文章。
- 输出:把生成的 MD 内容通过 Gitee Open API 或「代码仓库」节点,提交到你指定的仓库(例如
你的用户名/pfinal_date_info)的某个目录,比如outputs/文章/,文件名建议带日期,如2026-01-30_职场心理主题.md。
这样,每天都会有一篇新文章以「日期_标题.md」的形式出现在 Gitee 仓库里,便于版本管理和后续脚本读取。
注意:扣子侧的具体节点名称和 Gitee 的 token 配置,按扣子与 Gitee 的官方文档来即可;这里只强调「定时 → 热点 → 成文 → 推送到 Gitee 仓库」这条链路。
2. Gitee 仓库:文章的「唯一真相源」
- 仓库里建议至少有一个文章目录(如
outputs/文章/),专门放扣子生成的.md文件。 - 这样做的意义:
- 版本可追溯:哪天的文章、改了什么,都能在 Git 历史里查到。
- 脚本好识别:本地脚本只需「取该目录下最新的一篇 .md」即可,逻辑简单。
3. 本地:pull + 排版 + 推草稿
3.1 拉取最新文章
在本地克隆或已经克隆了上述 Gitee 仓库后,每次要更新公众号前先拉最新:
cd /path/to/你的项目根目录
git pull
也可以把 git pull 写进下面的「每日脚本」里,跑脚本时自动拉取,这样不会忘。
3.2 对 Markdown 做一次排版美化
扣子生成的 MD 可能不够贴合你的公众号风格(标题层级、加粗、列表、空行等)。
建议在本地用你习惯的编辑器打开该目录下最新的那篇 .md,做一次统一的美化,例如:
- 统一标题层级(一级标题做标题,二级做小标题);
- 段落间空行、列表格式;
- 需要的话再微调措辞或敏感表述。
改完可以 commit 回 Gitee(可选),也可以只在本地保留,只要推送草稿的脚本读的是你本地的这份文件即可。
3.3 一键推到公众号草稿箱:run_daily.py
本地需要有一个脚本完成三件事:
- 拉取:对 Gitee 仓库执行
git pull(可选,避免忘记拉)。 - 选文:从文章目录(如
pfinal_date_info/outputs/文章/)里取最新的一篇 .md(按文件名或修改时间均可)。 - 推送:把这篇 MD 转成公众号所需的 HTML,上传封面图,调用微信草稿箱接口把文章送进草稿箱,并记录「这篇已推送过」,避免重复推送。
脚本的大致逻辑可以是:
- 若配置了「文章目录」,则扫描该目录下所有
.md,取最新的一篇作为本次要推送的文章; - 若存在「已推送记录」(如
temp/pushed_articles.json里记录的文件名),则跳过已推送的,只推新文章; - 调用微信公众号的
draft/add等接口,把标题、作者、正文 HTML、封面图 media_id 提交上去。
这样你每次只要在本地执行一次(例如 python run_daily.py),或通过 Mac 的 launchd / crontab 每天固定时间跑一次,新文章就会自动出现在公众号的草稿箱里。
环境与依赖:Python 3,requests,公众号的 AppID/AppSecret 配置在脚本或环境变量中(切勿写进公开文章或仓库);封面图可本地指定一张图,脚本里用微信素材接口上传后得到 thumb_media_id 再提交草稿。
4. 公众号后台:每天手动发布
- 登录微信公众平台 → 草稿箱 → 看到刚推送进去的草稿。
- 检查标题、封面、正文无误后,点击「发布」。
- 建议固定每天同一时间发布,便于读者形成习惯。
为什么保留手动发布?
发布是对外的承诺,一旦发出去就难以撤回。
留一道人工确认,可以避免 AI 偶尔的敏感表述、错别字或不合规内容直接见众,对账号安全也更稳妥。
三、可选:本地定时任务(每天自动拉取 + 推草稿)
若你希望「每天早晨自动拉最新文章并推到草稿箱」,可以在本机用定时任务跑 run_daily.py:
- Mac:用 launchd 或 crontab,指定每天固定时间(如 8:00)执行:
cd 项目根目录 && python run_daily.py
- 日志重定向到
logs/run_daily.log,便于排查。
这样你只需要:每天花几分钟在本地改一下 MD 排版(可选),以及到点去公众号后台点发布,其余都由定时任务和脚本完成。
四、注意事项与避坑
| 事项 | 说明 |
|---|---|
| 凭证安全 | AppID、AppSecret 只放在本机或环境变量,不要写进公开文章、博客或开源仓库。 |
| 草稿箱权限 | 确认你的公众号已开通「草稿箱」相关接口权限,否则接口会报错。 |
| 封面图 | 公众号图文消息必须带封面图;可用素材接口上传本地图片得到 media_id,再提交草稿。 |
| 重复推送 | 用「已推送记录」按文件名或唯一 ID 去重,避免同一篇文章被多次推送到草稿箱。 |
| 发布节奏 | 建议固定每日一发或每周几发,让读者有预期;半自动流程正好支撑这种节奏。 |
五、小结
这套流程的核心是:AI 和定时任务负责「热点 + 成文 + 进仓库 + 进草稿箱」,人负责「排版把关 + 最后点发布」。
既减轻了日更压力,又保留了内容与发布节奏的掌控力。如果你也在用扣子、Gitee 和公众号,不妨按上述步骤搭一条自己的流水线,再根据实际情况微调各环节即可。
彩蛋:
最后 这套半自动的还是有点麻烦 要写脚本 后来脑洞大开 整了一套 skill 在 opencode 中运行 只需要 告诉
AppID、AppSecret、选题、封面 剩下的就是在 公众号草稿箱中等待了.
—
本文为实践总结,不涉及具体账号与密钥;实现细节请以微信公众平台、扣子、Gitee 的官方文档为准。