飞书卡片管理
接口名称
*飞书卡片管理(租户令牌) -(IFeishuTenantV1Card)
功能描述
飞书卡片是应用的一种能力,包括构建卡片内容所需的组件和发送卡片所需的能力,并提供了可视化搭建工具。该接口提供卡片的创建、更新、局部更新等全生命周期管理功能,适用于租户应用场景。
参考文档
https://open.feishu.cn/document/cardkit-v1/feishu-card-resource-overview
函数列表
| 函数名称 | 功能描述 | 认证方式 | HTTP 方法 |
|---|---|---|---|
| CreateCardAsync | 基于卡片 JSON 代码或卡片搭建工具搭建的卡片,创建卡片实体 | 租户令牌 | POST |
| UpdateCardSettingsByIdAsync | 更新指定卡片实体的配置,支持卡片配置和跳转链接字段 | 租户令牌 | PATCH |
| PartialUpdateCardByIdAsync | 更新卡片实体局部内容,包括配置和组件,支持同时对多个组件进行增删改操作 | 租户令牌 | POST |
| UpdateCardByIdAsync | 传入新的卡片 JSON 代码,覆盖更新指定的卡片实体的所有内容 | 租户令牌 | PATCH |
函数详细内容
创建卡片实体
- 函数签名:csharp
Task<FeishuApiResult<CreateCardResult>?> CreateCardAsync( [Body] CreateCardRequest createCardRequest, CancellationToken cancellationToken = default); - 认证:租户令牌
- 参数:
createCardRequest✅ 必填:创建卡片实体请求体- 类型:CreateCardRequest
- 含义:包含卡片 JSON 代码和配置信息的请求对象
- 示例值:包含 card_content 等字段的完整卡片配置
cancellationToken⚪ 可选:取消操作令牌对象
- 响应:json
{ "code": 0, "msg": "success", "data": { "card_id": "7355372766134157313" } } - 说明:创建成功后会返回卡片实体 ID,可用于后续的发送、更新等操作
- 代码示例:typescript
// 创建卡片实体 const createCardRequest = { card_content: { "config": { "wide_screen_mode": true }, "elements": [ { "tag": "div", "text": { "content": "**欢迎使用飞书卡片**", "tag": "lark_md" } } ] } }; const response = await feishuClient.CreateCardAsync(createCardRequest); console.log(`卡片创建成功,ID: ${response.data.card_id}`);
更新卡片实体配置
- 函数签名:csharp
Task<FeishuNullDataApiResult?> UpdateCardSettingsByIdAsync( [Path] string card_id, [Body] UpdateCardSettingsRequest updateCardRequest, CancellationToken cancellationToken = default); - 认证:租户令牌
- 参数:
card_id✅ 必填:卡片实体 ID- 类型:string
- 含义:要更新的卡片实体唯一标识
- 示例值:"7355372766134157313"
updateCardRequest✅ 必填:更新卡片实体配置请求体- 类型:UpdateCardSettingsRequest
- 含义:包含卡片配置和跳转链接的更新信息
- 示例值:包含 config 和 card_link 字段的配置对象
cancellationToken⚪ 可选:取消操作令牌对象
- 响应:json
{ "code": 0, "msg": "success", "data": null } - 说明:仅更新卡片的配置信息,不影响卡片的具体内容
- 代码示例:typescript
const updateSettingsRequest = { config: { wide_screen_mode: false }, card_link: { url: "https://example.com", android_url: "https://example.com/android", ios_url: "https://example.com/ios" } }; await feishuClient.UpdateCardSettingsByIdAsync( "7355372766134157313", updateSettingsRequest );
局部更新卡片实体
- 函数签名:csharp
Task<FeishuNullDataApiResult?> PartialUpdateCardByIdAsync( [Path] string card_id, [Body] PartialUpdateCardRequest partialUpdateCardRequest, CancellationToken cancellationToken = default); - 认证:租户令牌
- 参数:
card_id✅ 必填:卡片实体 ID- 类型:string
- 含义:要局部更新的卡片实体唯一标识
- 示例值:"7355372766134157313"
partialUpdateCardRequest✅ 必填:局部更新卡片实体配置请求体- 类型:PartialUpdateCardRequest
- 含义:包含对卡片组件进行增删改操作的批量更新信息
- 示例值:包含操作列表和更新内容的对象
cancellationToken⚪ 可选:取消操作令牌对象
- 响应:json
{ "code": 0, "msg": "success", "data": null } - 说明:支持同时对多个组件进行增删改等不同操作,效率更高
- 代码示例:typescript
const partialUpdateRequest = { operations: [ { operation_type: "ADD", element: { tag: "div", text: { content: "新增的文本内容", tag": "plain_text" } }, element_id: "new_element_1" }, { operation_type: "UPDATE", element_id: "existing_element_1", element: { tag: "div", text: { content: "更新后的内容", tag: "plain_text" } } } ] }; await feishuClient.PartialUpdateCardByIdAsync( "7355372766134157313", partialUpdateRequest );
全量更新卡片实体
- 函数签名:csharp
Task<FeishuNullDataApiResult?> UpdateCardByIdAsync( [Path] string card_id, [Body] UpdateCardRequest updateCardRequest, CancellationToken cancellationToken = default); - 认证:租户令牌
- 参数:
card_id✅ 必填:卡片实体 ID- 类型:string
- 含义:要全量更新的卡片实体唯一标识
- 示例值:"7355372766134157313"
updateCardRequest✅ 必填:全量更新卡片实体请求体- 类型:UpdateCardRequest
- 含义:包含完整卡片内容的新 JSON 代码
- 示例值:包含完整卡片结构的对象
cancellationToken⚪ 可选:取消操作令牌对象
- 响应:json
{ "code": 0, "msg": "success", "data": null } - 说明:会完全覆盖原有的卡片内容,请确保提供完整的卡片结构
- 代码示例:typescript
const updateCardRequest = { card_content: { "config": { "wide_screen_mode": true }, "elements": [ { "tag": "div", "text": { "content": "**更新后的卡片内容**", "tag": "lark_md" }, "element_id": "header_1" }, { "tag": "action", "actions": [ { "tag": "button", "text": { "content": "点击按钮", "tag": "plain_text" }, "type": "primary", "url": "https://example.com" } ], "element_id": "actions_1" } ] } }; await feishuClient.UpdateCardByIdAsync( "7355372766134157313", updateCardRequest );