从飞书文档到发布公众号,只需要几秒!我做了一个 CLI 工具帮你和你的 Agent 丝滑发布文章

0 阅读4分钟

先看效果。 我在 Slack 里跟 Agent 说"发布这篇",丢一个飞书链接过去:

几秒钟后,打开微信公众号后台:

文章已经躺在草稿箱里了。图片完整、格式正确、封面图也有了。 整个过程我只做了一件事:发了一条消息。 这背后是一个我刚写的命令行工具——feishu-wechat-cli。一条命令,飞书文档直接进微信公众号草稿箱。


它解决了什么问题

在飞书写完一篇文章,想发到公众号,你大概都经历过这套流程:

  1. 从飞书导出(或者手动复制粘贴)
  2. 图片全部断裂——飞书的图片链接微信不认,一张张下载下来
  3. 打开公众号后台,新建草稿,把文字粘进去
  4. 再一张张重新上传图片,插到对应位置
  5. 做封面图
  6. 预览、调格式、再预览 一篇 2000 字带 5 张图的文章,光搬运就要 20 分钟。 写文章本身已经够累了。搬运不应该再消耗我任何精力。

一条命令背后做了什么

feishu-wechat publish --feishu "https://my.feishu.cn/wiki/xxxxxxxx"

这条命令自动完成五件事:

  1. 从飞书抓取文档内容——支持 wiki 和 docx 两种格式,转成标准 Markdown
  2. 下载文章里的所有图片——飞书的图片是内部鉴权链接,外部无法直接访问,工具会全部下载到本地
  3. 把图片上传到微信素材库——微信公众号只认自己素材库里的图,工具逐张上传,拿到微信的 media_id
  4. 替换正文里的图片链接——把飞书图片 URL 全部换成微信素材库的链接
  5. 创建公众号草稿——调用微信公众号 API,把处理好的文章送进草稿箱 20 分钟的手动搬运,变成了一条命令、几秒钟。

三种用法

最常用:飞书文档直接发

feishu-wechat publish \
  --feishu "https://my.feishu.cn/wiki/xxxxxxxx" \
  --article-author "你的名字"

飞书文档 + 自动封面

加上 --auto-cover,工具会调用 AI 生图接口,根据文章标题自动生成一张封面图,一并上传:

feishu-wechat publish \
  --feishu "https://my.feishu.cn/wiki/xxxxxxxx" \
  --auto-cover

本地 Markdown 文件

如果你不用飞书,直接丢本地 Markdown 也行:

feishu-wechat publish -f ./article.md

怎么装

三步搞定。

第一步:装飞书官方 CLI

工具依赖飞书官方开源的 larksuite/cli 来抓取文档和下载图片[1]。

npm install -g @larksuite/cli

装完之后跑一次初始化,绑定你的飞书账号:

lark-cli config init --new
*这步不做的话,后面抓文档和下载图片都不会工作。*

第二步:装 feishu-wechat-cli

npm install -g @shing19/feishu-wechat-cli

验证一下:

feishu-wechat --help

第三步:配环境变量

在工作目录下新建一个 .env 文件:

WECHAT_APP_ID=你的公众号AppID
WECHAT_APP_SECRET=你的公众号AppSecret

AppID 和 AppSecret 在微信公众号后台 → 设置与开发 → 基本配置 里找。 如果你还想用自动封面功能,多加两行:

IMAGE_API_KEY=你的图片模型Key
IMAGE_BASE_URL=你的图片模型BaseURL
*还有一步容易忘:把当前机器的出口 IP 加到微信公众号后台的 IP 白名单里。不加的话,微信 API 会直接拒绝请求。*

为什么做成 CLI

因为 CLI 是 Agent 的原生接口。 网页工具需要模拟点击、填表单、等加载,Agent 用起来又慢又脆弱。CLI 天然就是为程序调用设计的——输入参数,返回结果,没有 UI 的摩擦。 你可以把它接进 CI/CD,飞书文档一更新就自动同步。可以写个脚本批量发布 10 篇。可以像我一样,让 Agent 在对话里直接调用。 网页工具做一个点一个,CLI 做一个跑一百个。


已知局限

几个你可能会遇到的情况:

  • 自动封面依赖外部生图 API,高峰时段可能遇到限流,等一下重试就行
  • 微信 IP 白名单是必须配的,不配就会被拒绝,这是微信的规矩
  • 工具只读当前目录的 .env,换目录记得带上或者重新建一个

仓库开源在 GitHub,欢迎试用、提 issue[2]。 如果你也在飞书写内容、往公众号发——试一下,省下来的时间够你多写一篇文章。


[1] larksuite/cli:github.com/larksuite/c…

[2] feishu-wechat-cli:github.com/shing19/fei…