本文记录了如何使用 baoyu-post-to-wechat Skill 将文章自动发布到微信公众号的全过程,包括安装配置、踩坑记录和解决方案。


一、安装 Skill

1.1 下载并安装

# 全局安装
npx -y @lobehub/market-cli skills install jimliu-baoyu-skills-baoyu-post-to-wechat --global
​

安装路径:~/.agents/skills/jimliu-baoyu-skills-baoyu-post-to-wechat

1.2 查看安装内容

ls ~/.agents/skills/jimliu-baoyu-skills-baoyu-post-to-wechat/
​

主要文件:

  • SKILL.md - 使用说明

  • scripts/wechat-api.ts - API 发布脚本

  • scripts/wechat-article.ts - 浏览器发布脚本

  • scripts/wechat-browser.ts - 图文发布脚本


二、首次配置

2.1 创建偏好设置

首次使用需要创建 EXTEND.md 配置文件:

配置路径(二选一):

  • 项目级:.baoyu-skills/baoyu-post-to-wechat/EXTEND.md

  • 用户级:~/.baoyu-skills/baoyu-post-to-wechat/EXTEND.md

配置内容:

default_theme: default
default_publish_method: api
default_author:
need_open_comment: 1
only_fans_can_comment: 0
chrome_profile_path:
​

参数

说明

default_theme

默认主题:default/grace/simple

default_publish_method

发布方式:api/browser

default_author

默认作者名

need_open_comment

是否开启评论:1/0

only_fans_can_comment

是否仅粉丝可评论:1/0

2.2 配置微信 API 凭证

创建 .env 文件保存 API 凭证:

配置路径(二选一):

  • 项目级:.baoyu-skills/.env

  • 用户级:~/.baoyu-skills/.env

配置内容:

WECHAT_APP_ID=wx你的AppID
WECHAT_APP_SECRET=你的AppSecret
​

获取凭证步骤:

  1. 登录 微信公众号后台

  2. 进入:设置与开发 → 基本配置

  3. 复制 AppID (应用ID)AppSecret (应用密钥)


三、发布流程

3.1 发布 HTML 文件

npx -y bun ~/.agents/skills/jimliu-baoyu-skills-baoyu-post-to-wechat/scripts/wechat-api.ts \
  /path/to/article.html \
  --title "文章标题" \
  --summary "文章摘要" \
  --cover /path/to/cover.png
​

3.2 发布 Markdown 文件

需要先安装 baoyu-markdown-to-html Skill 进行转换,然后发布生成的 HTML。


四、遇到的问题及解决方案

问题一:AppID 无效

错误信息:

Error: Access token error 40013: invalid appid

原因: 提供的是公众号原始 ID(gh_ 开头),而非 AppID

解决方案:

字段

格式

示例

AppID

wx 开头

wx1234567890abcdef

AppSecret

32位字符

a1b2c3d4e5f6g7h8...

原始 ID

gh_ 开头

❌ 不是凭证

正确获取方式:

  1. 进入 开发 → 基本配置

  2. 复制 AppIDAppSecret


问题二:IP 白名单限制

错误信息:

Error: Access token error 40164: invalid ip xxx.xxx.xxx.xxx, not in whitelist
​

原因: 微信公众号 API 需要将调用服务器 IP 加入白名单

解决方案:

  1. 登录 微信公众号后台

  2. 进入:设置与开发 → 基本配置

  3. 找到 IP白名单 设置

  4. 添加报错信息中的 IP 地址


问题三:图片路径编码错误

错误信息:

error: Image not found: /Users/magic/Downloads/%E7%94%9F%E6%88%90%E7%89%B9%E5%AE%9A%E5%9B%BE%E7%89%87.png
​

原因: HTML 中的中文图片路径被 URL 编码,脚本解码时出错

解决方案:

  1. 方案一:使用 --cover 参数单独指定封面

npx -y bun ~/.agents/skills/.../wechat-api.ts article.html \
  --cover "/path/to/image.png"
​
  1. 方案二:将图片路径改为英文或使用网络图片

  2. 方案三:在微信后台手动上传正文中缺失的图片


问题四:缺少封面图

错误信息:

Error: No cover image. Provide via --cover, frontmatter.coverImage, or include an image in content.

原因: news 类型文章必须有封面图

解决方案:

  1. 命令行指定:--cover /path/to/cover.png

  2. Markdown frontmatter 添加:

    ---
    coverImage: /path/to/cover.png
    ---
    ​
  3. 放置默认封面:在文章目录下创建 imgs/cover.png


五、发布成功后的操作

发布成功后会返回:

{
  "success": true,
  "media_id": "S9IIizZStQpJy...",
  "title": "文章标题",
  "articleType": "news"
}
​

下一步:

  1. 登录 微信公众号后台

  2. 进入:内容管理 → 草稿箱

  3. 检查文章内容和图片

  4. 点击 发布群发


六、完整命令参考

# 发布 HTML 文件(完整参数)
npx -y bun ~/.agents/skills/jimliu-baoyu-skills-baoyu-post-to-wechat/scripts/wechat-api.ts \
  /path/to/article.html \
  --title "标题" \
  --summary "摘要" \
  --author "作者" \
  --cover /path/to/cover.png

# 使用浏览器方式发布(需要先登录)
npx -y bun ~/.agents/skills/jimliu-baoyu-skills-baoyu-post-to-wechat/scripts/wechat-article.ts \
  --html /path/to/article.html

# 发布图文(多图)
npx -y bun ~/.agents/skills/jimliu-baoyu-skills-baoyu-post-to-wechat/scripts/wechat-browser.ts \
  --title "标题" \
  --content "内容" \
  --image img1.png img2.png
​

注意事项:

  1. AppID 是 wx 开头,不是 gh_ 开头

  2. 必须添加服务器 IP 到白名单

  3. 中文路径的图片可能有编码问题,建议用英文路径或网络图片

  4. 发布到草稿箱后,需要在微信后台手动发布/群发