Skip to content

飞书卡片管理

接口名称

*飞书卡片管理(租户令牌) -(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
    );