AgentSkillsCN

Wechat Publisher

微信发布器

SKILL.md

微信公众号发布器

将 Markdown 文章发布到微信公众号草稿箱,自动处理图片上传和格式转换。

功能说明

  • 读取 Markdown 文件并提取标题
  • 自动上传文章中的图片到微信素材库
  • 转换为微信公众号支持的 HTML 格式(带样式)
  • 发布到草稿箱,返回草稿 media_id
  • 自动使用文章第一张图片作为封面(可指定其他图片)

使用方法

基本用法

发布文章到草稿箱:

bash
node .claude/skills/wechat-publisher/scripts/publish-draft.js <markdown文件路径>

带封面图片发布:

bash
node .claude/skills/wechat-publisher/scripts/publish-draft.js <markdown文件路径> <封面图片路径>

使用示例

bash
# 发布文章
node .claude/skills/wechat-publisher/scripts/publish-draft.js pages/blog/my-article.md

# 带封面图片发布
node .claude/skills/wechat-publisher/scripts/publish-draft.js pages/blog/my-article.md ./cover.png

文章格式要求

标题提取

标题按以下优先级提取:

  1. Markdown 一级标题 # 标题
  2. Frontmatter 中的 title 字段
  3. 默认为"未命名文章"

图片处理

  • 本地图片: 自动上传到微信素材库
  • 远程图片: 先下载到本地,再上传到微信
  • 支持格式: jpg, jpeg, png, gif

样式主题

  • 主题色: 蓝色 (#2979ff)
  • 标题: 蓝色加粗
  • 代码块: 深色背景 + macOS 风格圆点
  • 引用块: 浅蓝色背景 + 蓝色边框

配置说明

配置文件位置: .claude/skills/wechat-publisher/config.json

json
{
  "appId": "你的AppID",
  "appSecret": "你的AppSecret"
}

获取 AppID 和 AppSecret

  1. 登录 微信公众平台
  2. 进入 开发 -> 基本配置
  3. 获取 AppID 和 AppSecret

IP 白名单

需要将服务器 IP 添加到微信公众号的 IP 白名单:

  1. 进入 开发 -> 基本配置
  2. 找到"IP白名单"
  3. 添加当前服务器的公网 IP

查看当前 IP:

bash
curl ifconfig.me

输出说明

发布成功后返回:

  • media_id: 草稿的唯一标识,可用于后续编辑或发布

故障排查

常见错误

  1. errcode: 40001 - access_token 无效

    • 检查 AppID 和 AppSecret 是否正确
  2. errcode: 40164 - IP 不在白名单

    • 将当前 IP 添加到微信公众号 IP 白名单
  3. errcode: 45009 - 接口调用超过限制

    • 等待一段时间后重试
  4. errcode: 48001 - 没有该接口权限

    • 确认公众号类型(需要认证的服务号或订阅号)

注意事项

  1. 公众号类型: 需要认证的订阅号或服务号才能使用草稿接口
  2. 图片大小: 单张图片不超过 10MB
  3. 文章长度: 正文最多 2 万字
  4. 草稿保存: 草稿会保存 30 天,请及时发布