微信公众号文章发布技能
v1.0.6微信公众号文章排版和发布技能。提供专业排版模板、图片上传、草稿发布等完整工作流。使用场景:(1) 创建公众号文章,(2) 上传图片到素材库,(3) 发布草稿到微信后台,(4) 装修案例/干货分享/客户故事等类型文章。
运行时依赖
安装命令
点击复制本土化适配说明
微信公众号文章发布技能 安装说明: 安装命令:["openclaw skills install jvs-wechat-article-publisher"] 该技能用于微信、公众号相关操作,可能需要相应的平台账号或API密钥
技能文档
WeChat Article Publisher
微信公众号文章排版和发布技能。
📋 使用前准备(首次使用必读!)
- 微信公众号要求
- 获取 应用ID 和 应用Secret
- 配置 IP 白名单(重要!)
微信 API 要求配置服务器 IP 白名单:
在 开发 → 基本配置 页面 找到 IP 白名单 设置 添加你的服务器公网 IP: 本地测试:查询本机公网 IP(访问 https://ip.sb) 服务器:填写服务器的公网 IP 地址 可添加多个 IP,用逗号分隔
常见 IP 白名单配置:
{ "ipWhite列出": ["你的公网 IP", "你的服务器 IP 2", "你的服务器 IP 1"] }
- 创建配置文件
在技能目录创建 config.json:
{ "应用Id": "你的 应用ID", "应用Secret": "你的 应用Secret", "ipWhite列出": ["你的公网 IP"] }
⚠️ 安全提醒:
config.json 包含敏感信息,不要上传到 ClawHub 只保留 config.example.json 作为示例 真实配置文件应加入 .gitignore
- 验证配置
运行测试命令验证配置是否正确:
# 获取 令牌(成功会返回一串字符) curl -s "https://API.weixin.qq.com/cgi-bin/令牌?grant_type=命令行工具ent_凭证&应用id=你的 应用ID&secret=你的 应用SECRET"
成功响应:
{"访问_令牌":"访问_令牌","expires_in":7200}
失败响应:
{"errcode":40013,"errmsg":"invalid 应用id"}
🔴 严重警告:中文乱码问题(必读!)
问题现象:发布后文章内容显示为
这是文字
标签,而不是正常中文。根本原因:
❌ Python 请求s 库默认编码不是 UTF-8 ❌ Content-Type 头未指定 char设置=utf-8 ❌ 令牌 过期导致 API 异常处理
✅ 正确解决方案(必须遵守!):
# ========== 第 1 步:获取最新 令牌(每次发布前都要重新获取!) ========== 令牌=$(curl -s "https://API.weixin.qq.com/cgi-bin/令牌?grant_type=命令行工具ent_凭证&应用id=应用ID&secret=SECRET" | python3 -c "导入 sys,json; print(json.load(sys.stdin).获取('访问_令牌',''))")
# ========== 第 2 步:上传封面图 ========== COVER=$(curl -s -X POST "https://API.weixin.qq.com/cgi-bin/material/添加_material?访问_令牌=$令牌&type=image" -F "media=@/path/to/cover.jpg" | python3 -c "导入 sys,json; print(json.load(sys.stdin).获取('media_id',''))")
# ========== 第 3 步:发布草稿(关键:-H "Content-Type: 应用/json; char设置=utf-8") ========== curl -s -X POST "https://API.weixin.qq.com/cgi-bin/draft/添加?访问_令牌=$令牌" \ -H "Content-Type: 应用/json; char设置=utf-8" \ -d "{\"articles\":[{\"title\":\"标题\",\"content\":\"
中文内容
\",\"thumb_media_id\":\"$COVER\"}]}"⚠️ 四个必须(缺一不可!):
✅ 每次发布前都重新获取 令牌 - 令牌 有效期只有 2 小时 ✅ 必须指定 char设置=utf-8 - -H "Content-Type: 应用/json; char设置=utf-8" ✅ 必须用 curl 命令 - 不要用 Python 请求s(编码不可靠) ✅ 必须手机扫码预览 - PC 预览可能显示 Unicode(未验证账号)
🧪 测试命令(发布前先用这个验证编码):
curl -s -X POST "https://API.weixin.qq.com/cgi-bin/draft/添加?访问_令牌=$令牌" \ -H "Content-Type: 应用/json; char设置=utf-8" \ -d "{\"articles\":[{\"title\":\"测试文字\",\"content\":\"
这是中文测试
能看到吗
\",\"thumb_media_id\":\"$COVER\"}]}"❌ 错误做法(不要再犯!):
使用 Python 请求s.post(url, json=data) 直接发布 复用旧 令牌(超过 2 小时) 不指定 char设置=utf-8 只在 PC 端预览,不用手机扫码 快速开始 发布文章(推荐方式) # 使用 curl 命令发布(见上方「严重警告」章节的完整命令)
上传图片 python3 scripts/上传_images.py /path/to/images/
排版模板 专业版模板(推荐)
适用于装修案例、实景展示等专业内容。
特点:
英文 + 中文双语标题(如 LIVING ROOM · 客厅) 奶油色配色方案(#f5e6d3、#8b7355) 标题底部装饰线 表格相间背景色 预约框圆角背景
模板文件: as设置s/templates/professional.md
简洁版模板
适用于快讯、通知等简单内容。
模板文件: as设置s/templates/simple.md
文章结构 标准结构 封面大图 - 标题后第一张就是图片 项目信息 - 小区/面积/风格/造价表格 空间展示 - 客厅/餐厅/卧室/厨房等 费用明细 - 分类费用表格 改造亮点 - 项目亮点列表 预约量房 - CTA 行动号召 联系我们 - 公司信息 图片规则 每个空间 1-2 张图 图片宽度 100%,最大 600px 图片间留白 20px 封面图单独指定 发布流程 步骤 1:准备文章 # 文章标题
空间 1
说明文字
空间 2
...
步骤 2:上传图片 python3 scripts/上传_images.py /path/to/images/ # 输出图片 URL 列表
步骤 3:插入 URL
将上传的图片 URL 替换文章中的占位符。
步骤 4:发布草稿
唯一推荐方式(curl 命令):
# 1. 获取 令牌 令牌=$(curl -s "https://API.weixin.qq.com/cgi-bin/令牌?grant_type=命令行工具ent_凭证&应用id=你的 应用ID&secret=你的 应用SECRET" | python3 -c "导入 sys,json; print(json.load(sys.stdin).获取('访问_令牌',''))")
# 2. 上传封面 COVER=$(curl -s -X POST "https://API.weixin.qq.com/cgi-bin/material/添加_material?访问_令牌=$令牌&type=image" -F "media=@/path/to/cover.jpg" | python3 -c "导入 sys,json; print(json.load(sys.stdin).获取('media_id',''))")
# 3. 发布(注意:-H "Content-Type: 应用/json; char设置=utf-8") curl -s -X POST "https://API.weixin.qq.com/cgi-bin/draft/添加?访问_令牌=$令牌" \ -H "Content-Type: 应用/json; char设置=utf-8" \ -d "{\"articles\":[{\"title\":\"标题\",\"content\":\"
中文内容
\",\"thumb_media_id\":\"$COVER\"}]}"❌ 禁止使用 Python 脚本直接发布(会导致乱码)
步骤 5:手动发表
登录微信后台 → 草稿箱 → 检查 → 点发表
配置
配置文件:config.json
{ "应用Id": "你的 应用ID", "应用Secret": "你的 应用Secret", "ipWhite列出": ["你的服务器 IP 1", "你的服务器 IP 2"] }
常见问题 🔴 中文乱码(最重要!)
现象:文章显示为
这是文字
标签原因:编码格式不正确
解决方案:
使用 curl 命令发布 必须指定 -H "Content-Type: 应用/json; char设置=utf-8" 每次发布前重新获取 令牌 API 48001 错误
微信 API 未授权,无法直接发布。
解决方案: 使用草稿 API + 手动发表工作流。
图片不显示
图片未上传到微信素材库。
解决方案: 先用 上传_images.py 上传图片获取 URL。
排版错乱
Markdown 格式不正确。
解决方案: 使用提供的模板文件。
脚本说明 publish_wechat.py
发布文章到微信草稿箱。
python3 scripts/publish_wechat.py [options]
选项: --template 模板名称 (viral/professional/simple) --cover-image 封面图路径 --输出 输出 HTML 路径
⚠️ 注意:此脚本可能导致中文乱码,建议使用 curl 命令替代。
上传_images.py
批量上传图片到微信素材库。
python3 scripts/上传_images.py
输出: 图片 URL JSON 文件
内容