Skip to content

应用消息流卡片

接口名称

应用消息流卡片(租户令牌) -(IFeishuTenantV2AppCardMessageStream)

功能描述

应用消息流卡片是飞书为应用提供的消息触达能力,让应用可以直接在消息流发送消息,重要消息能更快触达用户。该接口提供应用消息流卡片的创建、更新、删除以及消息列表置顶、快捷操作按钮管理等完整功能,适用于租户应用场景。

参考文档

https://open.feishu.cn/document/im-v2/overview

函数列表

函数名称功能描述认证方式HTTP 方法
CreateCardMessageStreamAsync创建应用消息流卡片租户令牌POST
UpdateCardMessageStreamAsync更新应用消息流卡片租户令牌PUT
DeleteCardMessageStreamAsync删除应用消息流卡片租户令牌DELETE
BotTimeSentiveAsync将机器人对话在消息列表中置顶展示租户令牌PATCH
UpdateCardMessageStreamButtonAsync为消息流卡片添加、更新、删除快捷操作按钮租户令牌PUT
FeedCardsByFeedCardIdAsync对指定消息流卡片设置即时提醒租户令牌PATCH

函数详细内容

创建应用消息流卡片

  • 函数签名
    csharp
    Task<FeishuApiResult<CreateAppCardMessageStreamResult>?> CreateCardMessageStreamAsync(
       [Body] CreateAppCardMessageStreamRequest appCardMessageStreamRequest,
       [Query("user_id_type")] string user_id_type = Consts.User_Id_Type,
       CancellationToken cancellationToken = default);
  • 认证:租户令牌
  • 参数
    • appCardMessageStreamRequest ✅ 必填:创建应用消息流卡片请求体
      • 类型:CreateAppCardMessageStreamRequest
      • 含义:包含卡片内容和接收用户信息的请求对象
      • 示例值:包含 card_content、user_id_list 等字段的完整配置
    • user_id_type ⚪ 可选:用户 ID 类型
      • 类型:string
      • 含义:指定 user_id 的类型,需要与查询参数中的 user_id 类型保持一致
      • 示例值:"open_id"
    • cancellationToken ⚪ 可选:取消操作令牌对象
  • 响应
    json
    {
      "code": 0,
      "msg": "success",
      "data": {
        "feed_card_id": "o_12345678901234567890",
        "invalid_user_id_list": []
      }
    }
  • 说明:创建成功后会返回消息流卡片 ID,可用于后续的更新、删除等操作
  • 代码示例
    typescript
    const createCardRequest = {
      user_id_list: ["open_id_1", "open_id_2"],
      card_content: {
        "config": {
          "wide_screen_mode": true
        },
        "header": {
          "title": {
            "content": "重要通知",
            "tag": "plain_text"
          },
          "template": "blue"
        },
        "elements": [
          {
            "tag": "div",
            "text": {
              "content": "您有一条新的系统消息需要查看",
              "tag": "plain_text"
            }
          }
        ]
      }
    };
    
    const response = await feishuClient.CreateCardMessageStreamAsync(
      createCardRequest, 
      "open_id"
    );
    console.log(`消息流卡片创建成功,ID: ${response.data.feed_card_id}`);

更新应用消息流卡片

  • 函数签名
    csharp
    Task<FeishuApiResult<UpdateAppCardMessageStreamResult>?> UpdateCardMessageStreamAsync(
          [Body] UpdateAppCardMessageStreamRequest appCardMessageStreamRequest,
          [Query("user_id_type")] string user_id_type = Consts.User_Id_Type,
          CancellationToken cancellationToken = default);
  • 认证:租户令牌
  • 参数
    • appCardMessageStreamRequest ✅ 必填:更新应用消息流卡片请求体
      • 类型:UpdateAppCardMessageStreamRequest
      • 含义:包含要更新的卡片内容和用户列表
      • 示例值:包含 feed_card_id、card_content 等字段的对象
    • user_id_type ⚪ 可选:用户 ID 类型
      • 类型:string
      • 含义:指定 user_id 的类型,需要与查询参数中的 user_id 类型保持一致
      • 示例值:"open_id"
    • cancellationToken ⚪ 可选:取消操作令牌对象
  • 响应
    json
    {
      "code": 0,
      "msg": "success",
      "data": {
        "feed_card_id": "o_12345678901234567890",
        "invalid_user_id_list": []
      }
    }
  • 说明:支持批量更新多个用户的消息流卡片内容
  • 代码示例
    typescript
    const updateCardRequest = {
      feed_card_id: "o_12345678901234567890",
      card_content: {
        "config": {
          "wide_screen_mode": true
        },
        "header": {
          "title": {
            "content": "已更新的重要通知",
            "tag": "plain_text"
          },
          "template": "green"
        },
        "elements": [
          {
            "tag": "div",
            "text": {
              "content": "通知内容已更新,请查看最新信息",
              "tag": "plain_text"
            }
          }
        ]
      }
    };
    
    const response = await feishuClient.UpdateCardMessageStreamAsync(
      updateCardRequest, 
      "open_id"
    );

删除应用消息流卡片

  • 函数签名
    csharp
    Task<FeishuApiResult<DeleteAppCardMessageStreamResult>?> DeleteCardMessageStreamAsync(
         [Body] DeleteAppCardMessageStreamRequest appCardMessageStreamRequest,
         [Query("user_id_type")] string user_id_type = Consts.User_Id_Type,
         CancellationToken cancellationToken = default);
  • 认证:租户令牌
  • 参数
    • appCardMessageStreamRequest ✅ 必填:删除应用消息流卡片请求体
      • 类型:DeleteAppCardMessageStreamRequest
      • 含义:包含要删除的消息流卡片 ID 和用户列表
      • 示例值:包含 feed_card_id、user_id_list 的对象
    • user_id_type ⚪ 可选:用户 ID 类型
      • 类型:string
      • 含义:指定 user_id 的类型,需要与查询参数中的 user_id 类型保持一致
      • 示例值:"open_id"
    • cancellationToken ⚪ 可选:取消操作令牌对象
  • 响应
    json
    {
      "code": 0,
      "msg": "success",
      "data": {
        "invalid_user_id_list": []
      }
    }
  • 说明:删除操作不可逆,请谨慎操作
  • 代码示例
    typescript
    const deleteCardRequest = {
      feed_card_id: "o_12345678901234567890",
      user_id_list: ["open_id_1", "open_id_2"]
    };
    
    const response = await feishuClient.DeleteCardMessageStreamAsync(
      deleteCardRequest, 
      "open_id"
    );

设置机器人单聊即时提醒

  • 函数签名
    csharp
    Task<FeishuApiResult<BotTimeSentiveResult>?> BotTimeSentiveAsync(
             [Body] BotTimeSentiveRequest timeSentiveRequest,
             [Query("user_id_type")] string user_id_type = Consts.User_Id_Type,
             CancellationToken cancellationToken = default);
  • 认证:租户令牌
  • 参数
    • timeSentiveRequest ✅ 必填:机器人单聊即时提醒请求体
      • 类型:BotTimeSentiveRequest
      • 含义:包含置提醒配置的用户和提醒时间信息
      • 示例值:包含 user_id_list、expire_time 等字段的配置对象
    • user_id_type ⚪ 可选:用户 ID 类型
      • 类型:string
      • 含义:指定 user_id 的类型,需要与查询参数中的 user_id 类型保持一致
      • 示例值:"open_id"
    • cancellationToken ⚪ 可选:取消操作令牌对象
  • 响应
    json
    {
      "code": 0,
      "msg": "success",
      "data": {
        "invalid_user_id_list": []
      }
    }
  • 说明:可将机器人对话在消息列表中置顶展示,重要消息能更快触达用户
  • 代码示例
    typescript
    const timeSentiveRequest = {
      user_id_list: ["open_id_1", "open_id_2"],
      expire_time: 1640995200,
      content: {
        "card": {
          "config": {
            "wide_screen_mode": true
          },
          "elements": [
            {
              "tag": "div",
              "text": {
                "content": "🔔 重要提醒:请及时处理待办事项",
                "tag": "plain_text"
              }
            }
          ]
        }
      }
    };
    
    const response = await feishuClient.BotTimeSentiveAsync(
      timeSentiveRequest, 
      "open_id"
    );

更新消息流卡片按钮

  • 函数签名
    csharp
    Task<FeishuApiResult<BotTimeSentiveResult>?> UpdateCardMessageStreamButtonAsync(
             [Body] UpdateCardMessageStreamButtonRequest updateCardMessageStreamButtonRequest,
             [Query("user_id_type")] string user_id_type = Consts.User_Id_Type,
             CancellationToken cancellationToken = default);
  • 认证:租户令牌
  • 参数
    • updateCardMessageStreamButtonRequest ✅ 必填:更新消息流卡片按钮请求体
      • 类型:UpdateCardMessageStreamButtonRequest
      • 含义:包含快捷操作按钮的配置信息
      • 示例值:包含 feed_card_id、button_configs 等字段的配置对象
    • user_id_type ⚪ 可选:用户 ID 类型
      • 类型:string
      • 含义:指定 user_id 的类型,需要与查询参数中的 user_id 类型保持一致
      • 示例值:"open_id"
    • cancellationToken ⚪ 可选:取消操作令牌对象
  • 响应
    json
    {
      "code": 0,
      "msg": "success",
      "data": {
        "invalid_user_id_list": []
      }
    }
  • 说明:为群组消息、机器人消息的消息流卡片添加、更新、删除快捷操作按钮
  • 代码示例
    typescript
    const updateButtonRequest = {
      feed_card_id: "o_12345678901234567890",
      button_configs: [
        {
          button_id: "btn_approve",
          button_content: "批准",
          button_type: "primary",
          url: "https://example.com/approve"
        },
        {
          button_id: "btn_reject",
          button_content: "拒绝",
          button_type: "default",
          url: "https://example.com/reject"
        }
      ]
    };
    
    const response = await feishuClient.UpdateCardMessageStreamButtonAsync(
      updateButtonRequest, 
      "open_id"
    );

设置即时提醒

  • 函数签名
    csharp
    Task<FeishuApiResult<BotTimeSentiveResult>?> FeedCardsByFeedCardIdAsync(
           [Path] string feed_card_id,
           [Body] FeedCardsByFeedCardIdRequest feedCardsByFeedCardIdRequest,
           [Query("user_id_type")] string user_id_type = Consts.User_Id_Type,
           CancellationToken cancellationToken = default);
  • 认证:租户令牌
  • 参数
    • feed_card_id ✅ 必填:消息流卡片 ID
      • 类型:string
      • 含义:要设置即时提醒的消息流卡片唯一标识
      • 示例值:"o_12345678901234567890"
    • feedCardsByFeedCardIdRequest ✅ 必填:即时提醒请求体
      • 类型:FeedCardsByFeedCardIdRequest
      • 含义:包含提醒设置的用户列表和提醒时间配置
      • 示例值:包含 user_id_list、expire_time 等字段的配置对象
    • user_id_type ⚪ 可选:用户 ID 类型
      • 类型:string
      • 含义:指定 user_id 的类型,需要与查询参数中的 user_id 类型保持一致
      • 示例值:"open_id"
    • cancellationToken ⚪ 可选:取消操作令牌对象
  • 响应
    json
    {
      "code": 0,
      "msg": "success",
      "data": {
        "invalid_user_id_list": []
      }
    }
  • 说明:即时提醒能力是飞书在消息列表中提供的强提醒能力,可将对话在消息列表中置顶展示
  • 代码示例
    typescript
    const feedCardsRequest = {
      user_id_list: ["open_id_1"],
      expire_time: 1640995200
    };
    
    const response = await feishuClient.FeedCardsByFeedCardIdAsync(
      "o_12345678901234567890", 
      feedCardsRequest, 
      "open_id"
    );