SuperAPI AI 工具集

feishu-cli-msg

办公与效率

查看项目

更新于 10-15 15:35

技能介绍

用途

feishu-cli-msg 是 feishu-cli 中负责飞书消息发送的技能,通过命令行发送飞书消息、回复、转发、合并转发、加急、消息书签以及下载消息资源。发送类命令默认使用 App Token(Bot 身份),无需登录。

该技能与 feishu-cli-chat 按动作类型划分职责:发送类子命令(send / reply / forward / merge-forward / urgent / flag / resource-download)属于本技能;读取类(history / list / get / mget / thread-messages / search-chats / read-users / pins)与互动类(reaction / pin / unpin / delete)属于 feishu-cli-chat 技能。

主要能力

支持 10 种消息类型:text(纯文本,限定 150 KB)、post(富文本,限定 150 KB)、image、file、audio、media、sticker(仅转发)、interactive(卡片,限定 30 KB)、share_chat(群名片)、share_user(个人名片)。

提供五种互斥的内容输入方式:--text(快捷文本)、--file/-f(本地文件自动上传,限 30MB)、--image(本地图片自动上传,限 10MB)、--content/-c(内联 JSON)、--content-file(JSON 文件,适合卡片、富文本等复杂消息)。

接收者类型通过 --receive-id-type 指定,可选 email、open_id、user_id、union_id、chat_id。

消息类型选择上,技能说明默认优先使用 interactive 卡片消息(样式美观、支持颜色/多列/按钮等);发送已上传的图片/文件/音视频用 image/file/audio/media;分享名片用 share_chat/share_user;仅当用户明确要求纯文本或富文本时才用 text/post。

使用方式

基础格式为 feishu-cli msg send --receive-id-type <type> --receive-id <id> [--msg-type <msg_type>] [--text "..." | --file <path> | --image <path> | --content '<json>' | --content-file <file.json>]。

text 类型支持内联 @ 语法:<at user_id="ou_xxx">Tom</at>、<at user_id="all"></at>;@ 只能用 open_id,邮箱字符串不会触发真正的提及。在 --text 模式下,msg send / msg reply 会自动修正常见的 @ 标签书写错误;--content / --content-file 模式不做隐式 normalize。

post 类型推荐用 md 标签承载 Markdown,一个 md 标签独占一个段落,content 结构为 {"zh_cn":{"title":"","content":[[...]]}}。

--upload-images 标志仅在 --msg-type post 或 interactive 时生效,会扫描内容中的 Markdown 图片语法 ![alt](path),自动上传本地图片并替换为 image_key 后发送,无需预先调用 media upload。

interactive 卡片支持三种发送方式:完整 Card JSON、template_id、card_id。本技能只负责发送,不负责设计卡片 JSON,结构化或美观卡片需先用 feishu-cli-card 生成 v2 JSON(schema=2.0)。

发送到已有话题用 --thread-id(与 --receive-id-type / --receive-id 互斥);回复时用 --reply-in-thread 可开启话题。

下载消息资源用 feishu-cli msg resource-download <message_id> <file_key> --type image|file -o <path>,支持 --user-access-token 和 --timeout(默认 5m)。file_key 可从 msg get 的消息 content 中提取。

消息书签(v1.23+ 新增,需 User Token)通过 feishu-cli msg flag create/list/cancel 操作,list 需要 im:feed.flag:read,create/cancel 需要 im:feed.flag:write。

权限与限制

权限要求包括 im:message 与 im:message:send_as_bot。text 单条最大 150 KB,卡片/富文本最大 30 KB。system 系统分割线 CLI --msg-type 白名单暂不支持,需用 feishu-cli api POST /open-apis/im/v1/messages 直接透传;sticker 仅支持转发收到的表情包;卡片按钮的交互回调需应用服务端支持,CLI 发送的按钮仅 url 跳转有效;请求过快返回 429,需等待后重试;只能删除机器人发送的消息。

错误处理涵盖 post 类型 JSON 格式错误、invalid receive_id、bot has no permission、限流、用户不存在、卡片过大、Bot 不在目标群内等情况。

安装方式:如尚未安装,请前往 riba2534/feishu-cli 获取。