SuperAPI AI 工具集

wechat-mp-smart-publish

营销与增长

查看项目

更新于 10-15 11:16

技能介绍

用途

WeChat MP Smart Publish 用于将 Markdown 文章一键发布到微信公众号草稿箱,适合以下场景:已经写好公众号文章(Markdown 格式)需要上传草稿箱;批量发布内容到微信公众号;作为自动化内容分发 pipeline 的一环;其他 agent(如内容类 agent)需要发布公众号内容时调用。

不适用的情况:需要直接正式发布(当前仅支持存草稿,由人工最终发布);视频内容(仅支持图文消息);需要编辑已发布文章。

前置条件

  • Playwright:需安装 Python playwright 库,可用 pip show playwright 检查。
  • OpenClaw Browser:浏览器服务需运行中,可用 openclaw browser status 或检查 127.0.0.1:18800。
  • 微信 Cookie:Playwright state 文件需有效,位置为 ~/.playwright-data/wechat/state-default.json;Cookie 未过期,且包含 qname 和 uin 字段。

输入与输出

输入参数:

  • article_path:Markdown 文件路径
  • cover_path:封面图路径(jpg/png,推荐 2.35:1 比例,≥900x383)
  • decision:当前仅支持 draft

Markdown 格式要求:# 标题(文章标题,≤64 字),正文支持 加粗、斜体、行内代码 等常见语法,## 子标题 表示子标题。

输出:status(ok 或 error)、draft_saved(true/false)、draft_url(草稿箱 URL)、screenshot_path(截图路径)、title(实际使用的标题)、content_length(正文字数)。

使用方式

方式一:直接运行脚本

python3 ~/clawd/skills/wechat-mp-smart-publish/scripts/publish.py \
  --article /path/to/article.md \
  --cover /path/to/cover.jpg \
  --decision draft

方式二:作为模块调用

import asyncio
from scripts.publish import publish_to_wechat

result = asyncio.run(publish_to_wechat(
    article_path="/path/to/article.md",
    cover_path="/path/to/cover.jpg",
    decision="draft",
))
print(result)

方式三:Agent 调用(推荐)

其他 agent 通过 sessions_send 请小 code 执行,例如:

请发布文章到微信公众号草稿箱:
- 文章: ~/clawd/docs/daily-content/2026-04-14/gzh/amd-gaia-article.md
- 封面: ~/clawd/docs/daily-content/2026-04-14/gzh/cover.jpg

核心流程

解析 Markdown → Markdown→HTML 转换 → 启动浏览器 → 加载 Cookie → 打开公众号首页 → 点击“新的创作” → 上传封面图 → 填充标题 → 切换到图文消息 → 粘贴正文 HTML → 截图 → 存草稿。

排版规范

  • 正文字号:15px
  • 正文字色:#3f3f3f
  • 行高:1.75 倍
  • 段落间距:1em
  • 标题字号:H2 为 18px bold,H3 为 16px bold
  • 代码块:背景 #f6f8fa,左边框 3px solid #fe6

关键 Selector(2026-04-14 验证)

  • 首页入口:“新的创作”(button/tab text);新建图文
  • 封面图上传:input[type="file"];图片上传 input
  • 标题输入:input[name="title"];文章标题
  • 图文切换:“图文”(tab text);切换到富文本编辑器
  • 富文本编辑器:#ueditor_0 iframe 或 .edit_area;UEditor iframe
  • 预览按钮:“预览”(button text);预览草稿
  • 存草稿按钮:“保存”(button text);存为草稿

边界处理

  1. 标题 64 字限制:标题超出 64 字时自动截断。
  2. Markdown→HTML 转换:使用基础转换规则——# H1 → <h1>,**bold** → <strong>bold</strong>,*italic* → <em>italic</em>,`code` → <code>code</code>,空行 → <br>,--- → <hr>。
  3. UEditor 特殊填充:UEditor 是富文本 iframe,不能直接操作内容,需通过切换到编辑模式,例如:
await page.evaluate('''() => {
    const editor = document.querySelector('#ueditor_0');
    if (editor && editor.contentWindow) {
        editor.contentWindow.postMessage({type: 'setContent', content: html}, '*');
    }
}''')
  1. 封面图比例:微信封面图推荐比例 2.35:1,最小尺寸 900x383。
  2. Cookie 管理:Cookie 文件位置为 ~/.playwright-data/wechat/state-default.json;有效期约 7-30 天,需要定期通过浏览器登录续期;加载方式为 await context.add_cookies(cookies_from_state);页面出现“新的创作”按钮即为已登录。

常见问题

  • 页面找不到“新的创作”按钮?Cookie 过期,需重新扫码登录:openclaw browser open --url https://mp.weixin.qq.com。
  • 富文本编辑器无法填充内容?UEditor 需要切换到编辑模式,先点击编辑器区域激活,再执行 JS 注入。
  • 浏览器连接失败?检查 OpenClaw browser 是否运行:curl -s http://127.0.0.1:18800/json/version。
  • Cookie 过期怎么办?需通过浏览器登录微信公众号平台并保存 Playwright state:先执行 openclaw browser open --url https://mp.weixin.qq.com,手动扫码登录后 Cookie 会自动保存。

依赖

  • playwright>=1.40.0
  • Pillow>=10.0.0(图片验证)
  • markdown>=3.4.0(可选,markdown→html)

触发词

“发布到公众号”、“发布微信公众号”、“发微信”、“公众号草稿”、“wechat publish”、“wechat mp”、“公众号发布”、“mp.weixin publish”。

更新日志

v1.0.0(2026-04-14):初始版本,包含基础 Markdown→HTML 转换、UEditor 富文本填充、封面图上传、草稿箱保存。