微信公众号配图自动化:从 Playwright 挣扎到 API 闭环
之前已经跑通了自动撰写发布公众号文章的流程,但缺高质量配图。ChatGPT Plus 的 DALL·E 要付费,Midjourney 也要付费——免费方案能满足需求吗?
答案是:能。而且不止能——整套流程跑通后,从写文到配图到生成草稿,只需要一行命令。
为什么选 Pollinations.ai
调研了几个免费 AI 生图方案:
| 方案 | 费用 | 质量 | API 易用性 |
|---|---|---|---|
| Pollinations.ai | 免费 | ★★★★(Flux 模型) | ★★★★★(GET 请求即可) |
| Hugging Face 免费推理 | 免费 | ★★★(模型参差不齐) | ★★(需 API Key + 排队) |
| Stable Diffusion 自部署 | 电费 | ★★★★ | ★(需 GPU 硬件) |
| 调用公共 AI 服务 | 按量付费 | ★★★★★ | ★★★ |
Pollinations.ai 的杀手锏:不需要 API Key,不需要注册,直接 GET https://image.pollinations.ai/prompt/{描述} 就能拿到图。底层跑的是 Flux 模型,质量够用。
弯路:Playwright 浏览器自动化
最开始的想法很直接——用 Playwright 模拟人工操作公众号后台:扫码登录 → 进编辑器 → 粘贴内容 → 上传图片 → 发布。
实际遇到的问题:微信公众号后台(mp.weixin.qq.com)是一个重度 Vue SPA。Playwright 的 Chromium 启动后,页面一直白屏或半渲染状态,编辑器区域的 DOM 节点根本无法交互。
试过的各种方案:
- 复用本地 Chrome Profile 保持登录态
- CDP(Chrome DevTools Protocol)连接已有浏览器
- 复制 Cookie 注入新浏览器实例
都不行。公众号后台对非真实浏览器环境做了检测,SPA 渲染层就是打不开。这个方向走了两轮尝试后放弃。
正解:微信官方 API
换思路。公众号平台开放了 REST API(api.weixin.qq.com),只要申请到 AppID 和 AppSecret,就能操作大部分后台功能。
整条链路如下:
文章内容 + 图片主题
↓
Pollinations.ai 免费生图(3 张配图)
↓ 下载到本地
上传到微信 CDN(cgi-bin/media/uploadimg)
↓ 拿到微信 CDN URL
上传封面到素材库(cgi-bin/material/add_material)
↓ 拿到 media_id
组装 HTML 正文(含微信 CDN 图片链接)
↓
创建草稿(cgi-bin/draft/add)
↓ 手动发布
公众号发布 关键点
正文中的图片和封面的图片是两套不同的上传 API,这是一个容易踩的坑:
cgi-bin/media/uploadimg— 上传后返回微信 CDN URL,用于正文<img>标签cgi-bin/material/add_material— 上传后返回media_id,用于封面引用
一开始我两张用了同一个 API 上传,结果正文里的图片全部显示不出来——微信编辑器不会加载外链图片。
限制:未认证订阅号无法 API 发布
费了很大劲发现:未认证的订阅号(大多数个人号)调用 cgi-bin/freepublish/submit 时会返回错误码 48001 api unauthorized。尝试旧版群发接口也一样。
也就是说自动化只能到「创建草稿」这一步。发布需要人工去后台草稿箱点一下按钮。
这对个人号来说完全可以接受——草稿箱里文章已经图文并茂,检查一遍再发布反而更放心。
最终产出
一个 Node.js 脚本(publish-via-api.mjs),一条命令即可完成:
node publish-via-api.mjs --topic "你的文章主题" 运行结果:
- 自动生成 3 张配图(Pollinations.ai)
- 上传到微信 CDN 并嵌入正文
- 设置封面
- 创建草稿
然后去公众号后台「草稿箱」→ 找到文章 → 点击发布。
从「找图半小时」到「配图十秒钟」,这个闭环彻底解决了公众号配图的痛点。
文中提到的脚本在 ~/Documents/wechat-publisher/ 目录下,Pollinations.ai 免费生图无需 API Key。