作为自媒体,我一直在寻找能提升内容发布效率的工具。
最近在实践 OpenClaw 的过程中,发现它不仅能自动生成内容,还能直接推送到公众号——省去了我大量重复的复制粘贴、上传封面的机械操作。
今天就把这套完整流程分享出来。
这篇教程解决的核心问题是:用 OpenClaw 写好文章后,最后一步的手动发布。
你将能让 OpenClaw 直接把排好版的文章推进公众号草稿箱,只需进后台点一下发布按钮即可。
准备工作
- 电脑系统:Windows / Mac / Linux 均可
- OpenClaw 已完成本地安装并正常运行
- Node.js v18 或更高版本(终端输入
node --version确认) - 微信公众号账号(方式 A 需已认证;方式 B 对认证状态无要求)
核心内容
两种发布方案对比
在正式操作前,先理解两种发布方式的差异,便于选择最适配你的场景:
| 维度 | 方式 A(官方 API) | 方式 B(Cookies 模拟) |
| 稳定性 | 官方接口,长期稳定 | 依赖登录态,需定期更新 |
| 维护成本 | 配置一次,无需维护 | 7-30 天需重新获取一次 |
| 账号要求 | 需已认证公众号 | 未认证也支持 |
| 封面图处理 | 自动匹配 Unsplash,自动上传微信 CDN | 需手动处理 |
| 批量发布 | 支持(主文章+最多 7 篇子文章) | 不支持 |
方式 A:官方 API 发布(推荐)
这是目前最完整的方案,基于官方 skills 仓库的 wechat-multi-publisher。
第一步:获取 AppID 和 AppSecret
- 登录 微信公众平台
- 进入 设置与开发 → 基本配置
- 找到 AppID 和 AppSecret(点击"重置"可重新生成)
- 重要:微信 API 接口需要将服务器 IP 加入白名单。进入 基本配置 → IP 白名单 → 添加,输入你的公网 IP(可在 ip.sb 查询)
第二步:安装 wechat-multi-publisher skill
在终端执行:
npx playbooks add skill openclaw/skills --skill wechat-multi-publisher
安装完成后,还需安装 skill 的依赖:
npm install @wenyan-md/core
第三步:配置凭证
选择以下任一方式配置(推荐方式二,重启后数据不丢失):
方式一:环境变量(临时有效)
export WECHAT_APP_ID=你的AppID
export WECHAT_APP_SECRET=你的AppSecret
export WECHAT_AUTHOR=你的名字(可选)
方式二:凭证文件(推荐,永久有效)
创建文件 ~/.config/wechat-mp/credentials.json(Mac/Linux)或 C:\Users\你的用户名\.config\wechat-mp\credentials.json(Windows),内容如下:
{
"appId": "你的AppID",
"appSecret": "你的AppSecret"
}
第四步:发布文章
用 Markdown 格式编写文章,保存为 .md 文件,然后执行相应命令:
# 推送单篇文章到草稿箱
node scripts/publish.mjs article.md
# 推送前先本地预览(不上传)
node scripts/publish.mjs article.md --dry-run
# 推送并立即发布(跳过草稿直接发布 - 不建议)
node scripts/publish.mjs article.md --publish
# 一次推送多篇(主文章 + 最多 7 篇子文章,合为一条群发)
node scripts/publish.mjs main.md sub1.md sub2.md sub3.md
Markdown 格式规范
该 skill 支持特定语法以优化公众号排版效果:
| Markdown 写法 | 公众号渲染效果 |
&&&(单独一行) |
渐变分割线 |
&&& 小节标题 |
强调色 H2 标题 |
| 以「真正的…」或「底层逻辑是…」开头的段落 | 自动金色高亮 |
| > 引用块 | 结论式样式 |
方式 B:Cookies 模拟登录(未认证账号可用)
如果你的公众号未认证、无法获取 AppSecret,可用这个方案。原理是提取浏览器登录态,让脚本代替手动操作。
需要注意:Cookies 通常 7-30 天过期一次,这是该方案的主要维护成本。
第一步:获取 Cookies
- 用浏览器登录 微信公众平台
- 按 F12 打开开发者工具,切换到 Network(网络)标签
- 刷新页面,点击任意一个请求
- 在右侧 Request Headers 找到 Cookie: 一行,复制完整字符串(通常很长,务必全部复制)
第二步:保存 Cookies 文件
创建文件路径:
- Mac/Linux:
~/.openclaw/secrets/wechat-cookies.json - Windows:
C:\Users\你的用户名\.openclaw\secrets\wechat-cookies.json
文件内容格式:
{
"cookie": "rewardsn=; wxtokenkey=777; wxuin=你的ID; ..."
}
第三步:创建发布脚本
在工作目录下创建 publish_draft_cookies.mjs:
import fs from 'fs';
import path from 'path';
import os from 'os';
// 读取 cookies
const cookiesPath = path.join(
os.homedir(),
'.openclaw',
'secrets',
'wechat-cookies.json'
);
const { cookie } = JSON.parse(
fs.readFileSync(cookiesPath, 'utf-8')
);
// 读取 HTML 文件
const htmlPath = process.argv[2];
const title = process.argv[3] || '未命名文章';
const digest = process.argv[4] || '';
if (!htmlPath) {
console.error('用法: node publish_draft_cookies.mjs <HTML文件> <标题> [摘要]');
process.exit(1);
}
const content = fs.readFileSync(htmlPath, 'utf-8');
// 调用微信接口
const response = await fetch(
'https://mp.weixin.qq.com/cgi-bin/operate_appmsg',
{
method: 'POST',
headers: {
'Cookie': cookie,
'Content-Type': 'application/x-www-form-urlencoded'
},
body: new URLSearchParams({
token: '',
lang: 'zh_CN',
f: 'json',
ajax: '1',
random: Math.random(),
AppMsgId: '',
type: '10',
title,
author: '',
digest,
content,
sourceurl: '',
show_cover_pic: '0'
})
}
);
const result = await response.json();
if (result.base_resp.ret === 0) {
console.log('✓ 发布成功,文章已进草稿箱');
} else {
console.error('✗ 发布失败:', result.base_resp.err_msg);
if (result.base_resp.ret === -6) {
console.error('💡 Cookies 已过期,请重新获取');
}
}
第四步:执行发布
node publish_draft_cookies.mjs outputs/article.html "文章标题" "这是摘要"
执行成功后,登录公众号后台 → 草稿箱,能看到文章已经在里面了,预览确认后点发布即可。
进阶用法:配置 Agent 自动触发发布
如果想让 OpenClaw 写完文章后自动推送,需要在 AGENTS.md 里添加发布规则:
## 发布流程
文章写完并排版后:
1. 将 HTML 文件保存到 outputs/ 目录
2. 调用 wechat-mp-publisher skill 将文章推送到草稿箱
3. 推送完成后通知用户:"文章已进草稿箱,请登录后台确认后发布"
4. 不要自动点击发布,等用户确认
重要提示:最后一步「不要自动发布,等用户确认」很关键。草稿箱是安全缓冲区,发布后无法撤回。保留人工确认这一步,风险最低。
常见问题排查
问:方式 A 调用 API 报错"invalid ip"
答:你的公网 IP 不在微信白名单里。登录公众平台 → 基本配置 → IP 白名单 → 添加你当前的公网 IP(可在 ip.sb 查询)。家庭宽带 IP 每天可能变化,建议用固定 IP 的云服务器或 VPS 运行。
问:方式 B 发布失败,报错 -6
答:Cookies 已过期。重新登录 mp.weixin.qq.com,按照教程步骤重新获取 Cookie 字符串,更新 wechat-cookies.json 文件即可。
问:文章进草稿箱了,但图片显示不出来
答:微信不支持外链图片,必须上传到微信 CDN。方式 A 的 wechat-multi-publisher skill 会自动处理本地图片上传;方式 B 需手动上传图片后替换链接。建议写作阶段就把图片保存到本地,避免用外链。
问:能不能直接发布,跳过草稿箱?
答:可以。方式 A 加 --publish 参数会在创建草稿后立即触发发布。但不建议——发布后无法撤回,留着草稿箱人工确认这一步更安全。
问:想每周自动推送,怎么做?
答:用 OpenClaw 的 Cron 功能配合方式 A 发布脚本:
openclaw cron add --every 7d --at 09:00 --agent wechat \
"写一篇本周 AI 行业总结,排版后推送到公众号草稿箱"
结尾总结
从我的实践来看,OpenClaw 的这个发布能力填补了内容创作流程中的最后一公里。选择哪种方式取决于你的账号状态和运维能力:
- 如果已有认证公众号:直接用方式 A(官方 API),配置一次后无需维护,稳定性最优。
- 如果账号未认证:用方式 B(Cookies),但要做好每月重新获取一次 Cookie 的心理准备。
核心的工作流优化是:从「写文→排版→登录后台→复制粘贴→上传图片→发布」的 6 步操作,简化到「写文→执行命令→确认发布」的 3 步操作。
这对于需要高频发布的产品经理或运营来说,省下的重复时间相当可观。
推荐按照教程逐步操作,遇到问题时对照常见问题排查部分。
有任何使用反馈,欢迎继续交流。