| name | wechat-platform |
| description | 微信公众平台 API 工具。支持多账号管理、Access Token 实时获取、封面图上传(永久素材)、正文图片上传、草稿创建、HTML 合规检查等核心接口。适合频繁切换公众号账号的场景。当需要操作微信公众号(上传图片、创建草稿、检查 HTML 格式、管理公众号凭证)时使用。触发关键词包括:微信公众号、公众平台、上传封面、上传图片到公众号、创建草稿、发布到微信、配置公众号凭证、检查HTML。 |
WeChat Platform Skills
封装微信公众平台核心 API,提供多账号管理、实时 Token 获取和 HTML 合规检查。
脚本位置:scripts/wechat_platform.py(相对于本文件所在目录)。
凭证管理流程
重要变更:本工具支持多账号配置,每次操作都需要明确指定使用哪个账号的凭证。
配置文件位置
~/.wechat_platform/config.json(权限 600),支持存储多个账号,示例格式:
{
"accounts": {
"main": {"appid": "wx123", "appsecret": "abc456"},
"backup": {"appid": "wx789", "appsecret": "def789"}
}
}
两种提供凭证的方式(按优先级)
- 命令行参数:
--appid <ID> --appsecret <SECRET>(适合临时使用)
- 配置文件:
--account <名称> 从配置文件读取(推荐)
管理账号配置
python3 scripts/wechat_platform.py config --add main --appid <ID> --appsecret <SECRET>
python3 scripts/wechat_platform.py config --list
python3 scripts/wechat_platform.py config --get main
python3 scripts/wechat_platform.py config --remove backup
python3 scripts/wechat_platform.py config --clear
安全提醒:永远不要在对话中向用户展示完整的 AppSecret。
命令参考
所有命令均支持 --json 参数,输出结构化 JSON 便于解析。
1. 配置管理
python3 scripts/wechat_platform.py config --add <名称> --appid <ID> --appsecret <SECRET>
python3 scripts/wechat_platform.py config --list [--json]
python3 scripts/wechat_platform.py config --get <名称> [--json]
python3 scripts/wechat_platform.py config --remove <名称>
python3 scripts/wechat_platform.py config --clear
2. 获取 Access Token
注意:Token 不再缓存,每次都实时获取,避免账号切换时的混淆。
python3 scripts/wechat_platform.py token --account main [--json]
python3 scripts/wechat_platform.py token --appid <ID> --appsecret <SECRET> [--json]
3. 上传封面图(永久素材)
python3 scripts/wechat_platform.py upload-cover <图片路径> --account main [--json]
python3 scripts/wechat_platform.py upload-cover <图片路径> --appid <ID> --appsecret <SECRET> [--json]
返回 media_id(用于创建草稿时的 thumb_media_id)。
封面图建议优先选横版、主体明确、少文字的图片;尽量不要直接用 K 线图、表格截图、PPT 页面或字很多的海报图。
4. 上传正文图片
python3 scripts/wechat_platform.py upload-image <图片路径> --account main [--json]
python3 scripts/wechat_platform.py upload-image <图片路径> --appid <ID> --appsecret <SECRET> [--json]
返回图片 URL(用于 HTML 正文中的 <img src>)。
5. 创建草稿
python3 scripts/wechat_platform.py create-draft \
--title "文章标题" \
--content <HTML文件路径> \
--cover-media-id <封面media_id> \
--account main \
[--author "作者"] \
[--digest "摘要"] \
[--source-url "原文链接"] \
[--open-comment] \
[--fans-only] \
[--json]
python3 scripts/wechat_platform.py create-draft \
--title "文章标题" \
--content <HTML文件路径> \
--cover-media-id <封面media_id> \
--appid <ID> \
--appsecret <SECRET> \
[其他参数...] \
[--json]
6. 检查 HTML 合规性
python3 scripts/wechat_platform.py check-html <HTML文件路径> [--json]
发布前检查 HTML 是否符合微信规范。覆盖 20 条规则,包括:
- 内容大小限制(字符数/字节数)
- 禁止标签(script/style/iframe/form)
- 图片来源(外部 URL / Base64)
- 被过滤的 CSS(position/backdrop-filter/border-image 等)
- id 属性、事件属性
- SVG image 缺少 width/height
- 缺少内联样式提示
- 表头深色背景建议直接写在
<th> 上,不要只写在 <tr> 上
输出三个级别:error(必须修复)、warning(建议修复)、info(优化提示)。
典型工作流
SCRIPT="path/to/scripts/wechat_platform.py"
python3 $SCRIPT config --list --json
python3 $SCRIPT upload-cover cover.png --json
python3 $SCRIPT upload-image photo.jpg --json
python3 $SCRIPT check-html article.html --json
python3 $SCRIPT create-draft \
--title "标题" --content article.html \
--cover-media-id XXXX --json
错误处理
- Token 过期(errcode 40001/40014/42001)时脚本会自动刷新并重试一次。
- 凭证无效时脚本会返回明确错误并建议重新配置。
- 所有错误在
--json 模式下输出 {"success":false,"error":"..."} 结构。
参考文档