核心用法
baoyu-post-to-wechat 是一套面向开发者的微信公众号自动化发布解决方案,提供三种发布模式:
- API 模式:直接调用微信官方接口,速度最快,需配置 AppID/AppSecret 且本地 IP 在白名单中
- Remote API 模式:通过 SSH SOCKS5 动态端口转发,将 API 请求隧道至云端服务器,解决 IP 白名单限制
- Browser 模式:基于 Chrome CDP 模拟人工操作,无需 API 凭证但依赖本地浏览器登录态
支持 Markdown、HTML、纯文本三种输入,自动处理图片上传、主题渲染(default/grace/simple/modern 等)、引用链接转底部脚注。多账号配置通过 EXTEND.md 实现,支持 per-account 的 Chrome 隔离与凭据管理。
显著优点
1. 远程发布能力独特:通过 --remote 标志实现「本地渲染 + 云端出网」,AppSecret 不出本地,兼顾安全与合规
2. 零预转换设计:禁止提前 Markdown→HTML,确保 API 与 Browser 两种渲染路径的图片处理策略互不冲突
3. 工程化配置体系:XDG 规范路径 + 项目级覆盖 + 用户全局配置三级优先级,配合 first-time-setup 引导降低上手成本
4. 多账号原生支持:accounts: 块结构清晰,支持别名选择、默认账号、CLI 快速切换
5. 防御性元数据补全:标题/摘要/作者多 fallback 链,支持从 H1/H2、首段内容自动生成
潜在缺点与局限
- 依赖 Bun 运行时:虽提供 npx fallback,但生产环境仍需 Node 生态外的额外安装
- Browser 模式脆弱性:依赖 Chrome 版本、系统 Accessibility 权限、剪贴板 paste 模拟,Linux Wayland 需额外
ydotool - SSH 密钥硬性要求:Remote API 不支持密码认证,部分企业环境需额外密钥分发流程
- 微信生态限制:封面图强制要求(news 类型)、IP 白名单仅支持 1-2 个固定 IP、图文消息最多 9 张图等外部约束无法绕过
- 无原生 Windows 支持:剪贴板操作依赖 Swift/AppKit 或 xdotool,Windows 环境未明确支持
适合人群
- 技术内容创作者(开发者博客、技术公众号运营者)
- 需要 CI/CD 集成公众号发布的 DevOps 工程师
- 多账号矩阵运营团队
- 本地动态 IP 但拥有固定 IP 云服务器的用户
常规风险
| 风险类型 | 说明 | 缓解措施 |
|---------|------|---------|
| 凭证泄露 | AppSecret 若写入环境变量或脚本历史 | 使用 `.baoyu-skills/.env` 并排除在版本控制外 |
| 远程服务器入侵 | SSH 跳板被攻破导致 API 凭证滥用 | 限定 `remote_publish_host` 仅出网权限,禁用远程文件写入 |
| Browser 模式账号安全 | Chrome 共享 Profile 可能导致登录态混淆 | 强制 `chrome_profile_path` 按账号隔离 |
| IP 白名单误配置 | 远端服务器 IP 变更导致 40164 错误 | 在 EXTEND.md 中预留注释提醒定期校验 |
| Markdown 渲染不一致 | 自定义 HTML 与主题 CSS 冲突 | 优先使用标准 Markdown,复杂排版转 HTML 输入 |
版本 1.117.5 显示活跃维护,文档结构完整(references/ 目录细分 image-text/article/multi-account/api-setup),适合纳入团队标准化工具链。