# 飞书能力调研 > 这是**平台能力与实测证据参考**,不是第二份待办台账。当前行为见 [项目首页](<../README.md>) 与 [架构](<./architecture.md>),开放事项以 [项目待办]() 为准。 > 文档整理:2026-10-13;探针结论保留各自发生日期与验证范围,未在本轮重新请求飞书 API。媒体可见性与数据流见 [隐私说明](<./privacy.md>)。 > 服务端接受结构、真发送属性校验、人眼确认渲染是三种证据,不能互相替代;未使用的组件不是已经验收的能力。 > 文中 `probe-*.py` / `.ts` 是历史取证脚本名,**不随源码仓库或 npm 分发,也不是阅读前置**;保留的是用例与结果,不让维护者去寻找本机文件。 --- ## 一、消息类型 飞书 `im.v1.message.create` 支持的 `msg_type`: | 类型 | msg_type | 说明 | dsh-feishu 现状 | 潜在场景 | |---|---|---|---|---| | 纯文本 | `text` | 无格式文本 | ✅ 斜杠命令回复、busy 提示 | — | | 富文本 | `post` | 加粗/链接/@/图片混排 | SDK 支持,未使用 | 格式化回复(替代纯 markdown) | | 图片 | `image` | 上传图片消息 | ✅ 接收用户图片(按字节判型)+ `feishu_send_file` 主动发图(≤10MB 内联预览) | 输出图片/截图/图表 | | 文件 | `file` | 文件附件 | ✅ 接收用户文件 + `feishu_send_file` 主动发(≤30MB) | 导出代码/文档/PDF | | 音频 | `audio` | 语音消息 | ✅ `feishu_send_file` 把 Ogg/Opus 发成语音气泡(≤30MB) | — | | 视频 | `video`(`msg_type: 'media'`) | 视频消息(可播放气泡) | ✅ `feishu_send_file` 把 MP4/MOV(可播 codec)发成视频气泡 + ffmpeg 抽帧封面 | — | | 表情贴纸 | `sticker` | 贴纸表情 | 未使用 | 趣味回复 | | **卡片** | `interactive` | 交互式卡片(按钮/选择器/表单) | ✅ 主要使用 | 核心 UI | | 分享群聊 | `share_chat` | 分享群聊卡片 | 未使用 | 快速分享群给用户 | | 分享用户 | `share_user` | 分享联系人卡片 | 未使用 | — | **SDK 调用方式**(`channel.send`): ```js channel.send(chatId, { text: 'hello' }) // 纯文本 channel.send(chatId, { card: { schema: '2.0', ... } }) // 卡片 channel.send(chatId, { markdown: '**bold**' }) // 富文本(SDK 自动转 post) channel.send(chatId, { image: { key: 'xxx' } }) // 图片 channel.send(chatId, { file: { key: 'xxx' } }) // 文件 channel.send(chatId, { shareChat: { chatId } }) // 分享群聊 ``` --- ## 二、Card JSON 2.0 组件 飞书卡片 JSON 2.0(`schema: '2.0'`)支持的组件分为三类: > **一张卡的容量**(2026-09-24 真机实测,`cardkit.v1.card.create` + 负对照):**200 个元素或组件**,且`video` 元素带的 `cover`、`fallback` **各占一个名额** —— 带封面的视频 66 个接受、67 个被 `300305 element exceeds the limit` 拒绝;不带封面的视频 198 个、内联 `