产品经理的 AI 内容流水线实战(三):写完自动发,掘金/知乎/CSDN 定时发布 + 邮件通知踩坑

📅 2026/8/14 13:04:23
产品经理的 AI 内容流水线实战(三):写完自动发,掘金/知乎/CSDN 定时发布 + 邮件通知踩坑
上一篇解决了「写」说一句思路AI 产出一篇合规的待发布稿。 这篇解决「发」稿子躺在 Obsidian 里不会自己长腿跑到平台上。我的目标是——到点自动发发完邮件告诉我结果我全程不打开任何后台。一、三个平台三种脾气我以为「发文章」就是调个接口的事结果一脚踩进坑掘金、知乎、CSDN处理方式完全不一样。编辑器内核不同有的是 CKEditor有的是 Draft.js注入正文的姿势得分开写知乎最折腾两步发布流先「发布」再「更新」或两次「发布」还有签名校验一套代码根本打不通登录态各异每个平台的 cookie / 凭证都得单独维护逼出来的解法是给每个平台写一个独立的发布模块再抽一层统一入口按平台路由。这不是示意图是我publish.py里的真实结构# vault-scripts/publish.py from lib.platforms import juejin, zhihu, csdn # 三个平台各自一个模块 # 统一入口读 frontmatter按目标平台分发到对应模块 # 掘金 → juejin.py 知乎 → zhihu.py CSDN → csdn.py每个平台的差异CKEditor 注入、两步发布流、签名都封在各自的模块里对外只暴露一个统一调用。这三平台的深度踩坑CKEditor 注入、Draft.js fiber chain、签名校验我之前各写过单篇这里不重复重点是它们最后都被收进了一个统一入口。二、定时器让发布不用我盯着统一入口有了下一步是别让我手动触发。加定时器每天定点扫「待发布」队列自动发。这是真实的调度脚本用法# vault-scripts/scheduled_publish.py —— 每日定时发布调度器 python scheduled_publish.py # 按今日方案自动发布最多 2 篇 python scheduled_publish.py --pick 3 # 预览今天该发哪 3 篇不实际发布 python scheduled_publish.py --rescue # 救援模式补发昨天没发出去的再用系统计划任务每天定时唤起它Windows 用 schtasksLinux/Mac 用 cron# Windows每天 18:00 跑一遍 schtasks /create /tn ScheduledPublish /sc daily /st 1800 \ /tr python E:\Obsidian\vault-scripts\scheduled_publish.py /f配合 frontmatter 里的status: 待发布和created时间系统知道哪篇该发、按什么顺序发——这就是上一篇说「创建时间驱动排序」的真正用处发布顺序不用我排时间线天然就是队列。三、邮件通知把结果推给我而不是我去查自动跑起来的最后一个问题我怎么知道发没发成功总不能不定时开三个后台去刷。解法是发完把结果通过邮件推给我SMTP 配置在config/settings.json里[PubHub] 今日发布结果 ✅ 掘金 成功 ✅ CSDN 成功 ❌ 知乎 失败登录态过期到这一步「写完 → 自动发 → 邮件告诉我」的链路闭环了。我以为可以躺平了。四、躺不平邮件只告诉我「失败了」没告诉我「怎么办」跑了一段时间现实的毛边露出来了。看上面那封邮件就知道问题在哪——知乎失败了理由是登录态过期。邮件能让我知道失败但没法让我快速处理我得手动找到那篇、手动重发、还不知道这个平台最近到底稳不稳。更麻烦的是三个平台成功率不一致今天这个挂、明天那个挂纯靠一封封邮件我拼不出「哪个平台最不靠谱、该重点关注谁」的全局。这个「看得见结果、看不见全局、也没法一键补发」的痛点直接催生了下一篇的主角——一个本地客户端。上面这套发布脚本统一入口 平台模块 定时调度 邮件通知是我一点点踩坑填出来的。想要完整脚本参考的私聊我。下一篇讲为什么我不用网页、偏要做一个本地客户端把三个平台的状态、成功率、手动补发全都管起来。如果这篇对你有用欢迎关注看「AI 内容流水线实战」系列更新你做定时自动发布时哪个平台最让你头疼评论聊聊觉得有用就收藏备用。