内容1

21 阅读7分钟

半自动公众号更新-从热点到发布的一条龙实践

做公众号最耗时的往往是两件事:找选题写稿

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

本地需要有一个脚本完成三件事:

  1. 拉取:对 Gitee 仓库执行 git pull(可选,避免忘记拉)。
  2. 选文:从文章目录(如 pfinal_date_info/outputs/文章/)里取最新的一篇 .md(按文件名或修改时间均可)。
  3. 推送:把这篇 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:用 launchdcrontab,指定每天固定时间(如 8:00)执行:
    • cd 项目根目录 && python run_daily.py
  • 日志重定向到 logs/run_daily.log,便于排查。

这样你只需要:每天花几分钟在本地改一下 MD 排版(可选),以及到点去公众号后台点发布,其余都由定时任务和脚本完成。


四、注意事项与避坑

事项说明
凭证安全AppID、AppSecret 只放在本机或环境变量,不要写进公开文章、博客或开源仓库。
草稿箱权限确认你的公众号已开通「草稿箱」相关接口权限,否则接口会报错。
封面图公众号图文消息必须带封面图;可用素材接口上传本地图片得到 media_id,再提交草稿。
重复推送用「已推送记录」按文件名或唯一 ID 去重,避免同一篇文章被多次推送到草稿箱。
发布节奏建议固定每日一发或每周几发,让读者有预期;半自动流程正好支撑这种节奏。

五、小结

这套流程的核心是:AI 和定时任务负责「热点 + 成文 + 进仓库 + 进草稿箱」,人负责「排版把关 + 最后点发布」
既减轻了日更压力,又保留了内容与发布节奏的掌控力。如果你也在用扣子、Gitee 和公众号,不妨按上述步骤搭一条自己的流水线,再根据实际情况微调各环节即可。

彩蛋:

最后 这套半自动的还是有点麻烦 要写脚本 后来脑洞大开 整了一套 skillopencode 中运行 只需要 告诉 AppID、AppSecret、选题、封面 剩下的就是在 公众号草稿箱中等待了.


本文为实践总结,不涉及具体账号与密钥;实现细节请以微信公众平台、扣子、Gitee 的官方文档为准。