---
name: wechat-mp-suite
description: 微信公众号运营工具集(wechat-mp):Markdown/HTML 发文到草稿箱、样式美化与封面生成;支持草稿管理、用户管理(黑名单等)、评论管理、数据统计与多公众号同步。
metadata: { "openclaw": { "emoji": "📣", "requires": { "bins": ["python3"], "env": ["WECHAT_MP_APP_ID", "WECHAT_MP_APP_SECRET"] } } }
---
## 微信公众号运营工具集
本技能是一个 **微信公众号(Wechat MP)运营工具集**,用于管理微信公众账号,包含发文、草稿管理、用户管理、评论管理、数据统计等多个脚本,支持**多公众号同步**。
本技能由**极速数据**提供:[`https://www.jisuapi.com`](https://www.jisuapi.com)
信息反馈:请发邮件至 `liupandeng@jisuapi.com`
官方文档:[`https://developers.weixin.qq.com/doc/subscription/api/`](https://developers.weixin.qq.com/doc/subscription/api/)
### 现阶段能力(按模块)
- **发文到草稿(publish.py)**
- Markdown → HTML(本地转换)
- HTML 美化(`css` / `css_path` / `style_url` 抓取 ``,不会自动拉取外链 CSS(轻量实现,避免过度复杂)。
### 4) 封面图:用户指定优先(可回退 `og:image`)
- **优先使用用户提供**:`cover_path` / `cover_base64` / `cover_url` 三选一。
- 若三者都不传,且你提供的 `html_url / html_path` 含 ``,默认会自动把 `og:image` 作为封面(可通过 `auto_cover_from_og_image=0` 关闭)。
- 不再自动生成本地封面图。
- 指定本地封面:
```bash
python3 skills/wechat-mp/publish.py draft '{
"title": "标题",
"md_path": "article.md",
"cover_path": "assets/cover.png"
}'
```
- 直接传 base64:
```bash
python3 skills/wechat-mp/publish.py draft '{
"title": "标题",
"md_path": "article.md",
"cover_base64": "",
"cover_out": "out/cover.png"
}'
```
- 指定封面 URL(会下载后上传永久素材):
```bash
python3 skills/wechat-mp/publish.py draft '{
"title": "标题",
"md_path": "article.md",
"cover_url": "https://example.com/cover.jpg",
"cover_out": "out/cover_from_url.jpg"
}'
```
## 请求参数(draft)
| 字段名 | 类型 | 必填 | 说明 |
|---|---|---|---|
| title | string | 是 | 文章标题 |
| digest | string | 否 | 摘要 |
| author | string | 否 | 作者,不传用 `WECHAT_MP_DEFAULT_AUTHOR` |
| content_source_url | string | 否 | 原文链接 |
| md_path / md_content | string | 二选一 | Markdown 文件路径/内容 |
| html_path / html_content | string | 二选一 | 直接提供 HTML(优先于 Markdown) |
| content_selector | string | 否 | 从输入 HTML 中按 CSS selector 精确抽取正文 innerHTML(例如 `div.post_body`)。需要 `pip install beautifulsoup4` |
| auto_content_selector | int | 否 | 默认 1:未传 `content_selector` 时自动按站点尝试(网易 `div.post_body`、新浪 `div.article`、今日头条 `article`) |
| css | string | 否 | 额外 CSS(合并到 `