我把这件事做完的时候,已经是深夜了。
屏幕上滚过几行日志,最后停在那一行:[完成] 发布流程结束。
我没有很激动,就是盯着它看了大概十秒钟。
然后去倒了杯水。
这件事是怎么开始的
起因很简单:手动发公众号太麻烦了。
每次都要:登录后台 → 新建图文 → 粘贴内容 → 排版 → 上传封面 → 预览 → 发布。
流程不复杂,但繁琐。最关键的是,每次你想发文章的时候,都要把这套动作走一遍。
我有一个习惯:凡是重复超过三次的事,就想把它自动化。
所以我决定干掉这个流程。
我以为会很简单
微信不是有官方 API 吗?直接调接口发布不就完了?
查了一下,接口确实有。叫 freepublish/submit。
然后我调了一下,回来了这个:
errcode: 48001,api unauthorized
个人未认证订阅号,没有权限。
好,换个思路。
绕开限制的方式,往往比正路更有意思
既然 API 直接发布走不通,那就拆成两步:
-
-
用官方 API 把文章存进草稿箱(这个有权限) -
-
用 Playwright 连接已经登录的 Chrome,自动找到草稿、点击"发表"按钮 -
听起来有点绕,但逻辑很清晰。
API 管内容,浏览器自动化管操作。两段接起来,就是一条完整的流水线。
然后坑接着来
第一个坑:IP 白名单。
微信的接口要求调用方 IP 必须在白名单里。我的 IP 是动态的,今天是这个,明天是那个。
每次一报错,就要去后台查 IP、加白名单、再跑一遍。
这个坑踩了不止一次。
第二个坑:按钮文字是"发表",不是"发布"。
我写脚本的时候,想当然地认为按钮叫"发布"。结果脚本一直找不到按钮。
调了半天,截图一看——
按钮上清清楚楚写着:发表。
两个字,一字之差,卡了我至少两个小时。
第三个坑:Chrome 的启动方式。
Playwright 要通过 CDP 接管浏览器,Chrome 必须用调试模式启动,端口 9222。
普通双击打开的 Chrome,脚本根本连不上。
每次新开任务,先确认 Chrome 状态,成了我的固定动作。
跑通的那一刻
最后全部搞定,整个流程是这样的:
-
-
写文章内容(Python 脚本,HTML 格式) -
-
API 上传封面图 + 创建草稿 -
-
Playwright CDP 连接 Chrome,找到草稿卡片 -
-
Hover 上去,找到"发表"按钮,点击 -
-
截图确认,流程结束 -
整个过程不到 15 秒,不需要人工干预。
文章自动出现在已发布列表里。
做完这件事,我想到了傅盛说的一句话
他说:"AI 不会替代你,但会用 AI 的人会替代你。"
以前我觉得这句话有点虚。
现在我觉得,它说的是一件很具体的事:
你愿不愿意花时间,把你工作流里那些重复的事情,一件一件地让 AI 接管。
不是一次性全搞定,而是每次遇到重复,就想一想:这件事能不能自动化?
积累下来,你和"不这么做的人"之间的差距,会越来越大。
你现在最想自动化的那件事是什么?欢迎留言,说不定下一篇就写它。
— 本文由 AI 辅助撰写并自动发布,全流程耗时约 15 秒 —

