飞书会话标签页
接口名称
飞书会话标签页(租户令牌) -(IFeishuTenantV1ChatTabs)
功能描述
会话标签页是指飞书客户端某一会话顶部的标签页,通过 OpenAPI 支持添加、删除、更新以及获取会话标签页等操作。当前接口使用租户令牌访问,适应于租户应用场景。
参考文档
接口详细文档请参见:https://open.feishu.cn/document/group/chat-tab/chat-tab-overview
函数列表
| 函数名称 | 功能描述 | 认证方式 | HTTP 方法 |
|---|---|---|---|
| CreateChatTabsByIdAsync | 在指定会话内添加自定义会话标签页,仅支持添加文档类型(doc)或 URL (url)类型的标签页 | 租户令牌 | POST |
| UpdateChatTabsByIdAsync | 更新指定的会话标签页信息,包括名称、类型以及内容等。仅支持更新文档类型(doc)或 URL (url)类型的标签页 | 租户令牌 | POST |
| DeleteChatTabsByIdAsync | 删除指定会话内的一个或多个会话标签页 | 租户令牌 | DELETE |
| ChatTabsSortByIdAsync | 调整指定会话内的多个会话标签页排列顺序 | 租户令牌 | POST |
| GetChatTabsListByIdAsync | 获取指定会话内的会话标签页信息,包括 ID、名称、类型以及内容等 | 租户令牌 | POST |
函数详细内容
创建会话标签页
函数签名:
csharp
Task<FeishuApiResult<ChatTabsCreateResult>?> CreateChatTabsByIdAsync(
[Path] string chat_id,
[Body] CreateChatTabsRequest createChatTabsRequest,
[Query("user_id_type")] string user_id_type = Consts.User_Id_Type,
[Query("set_bot_manager")] bool? set_bot_manager = false,
[Query("uuid")] string? uuid = null,
CancellationToken cancellationToken = default)认证:租户令牌
参数:
- chat_id ✅ 必填 - 群 ID(string)
示例值:"oc_a0553eda9014c201e6969b478895c230" - createChatTabsRequest ✅ 必填 - 添加会话标签页请求体(CreateChatTabsRequest)
- user_id_type ⚪ 可选 - 用户 ID 类型(string)
默认值:Consts.User_Id_Type - set_bot_manager ⚪ 可选 - 是否设置创建群的机器人为管理员(bool?)
默认值:false,示例值:false - uuid ⚪ 可选 - 开发者生成的唯一字符串序列,用于请求去重(string)
响应:
json
{
"code": 0,
"msg": "success",
"data": {
"chat_tabs": [
{
"tab_id": "7101214603622940671",
"tab_name": "文档",
"tab_type": "doc",
"tab_content": {
"doc": "https://example.feishu.cn/wiki/wikcnPIcqWjJQwkwDzrB9t40123xz"
}
}
]
}
}说明:一个会话内最多只允许添加 20 个自定义会话标签页,仅支持添加 doc、url 类型的标签页。
代码示例:
typescript
// 创建会话标签页示例(租户令牌)
const createChatTabs = async (chatId: string) => {
const requestBody = {
chat_tabs: [{
tab_name: "企业文档",
tab_type: "doc",
tab_content: {
doc: "https://example.feishu.cn/wiki/wikcnPIcqWjJQwkwDzrB9t40123xz"
}
}]
};
try {
const result = await feishuClient.feishuTenantV1ChatTabs.createChatTabsById(
chatId,
requestBody
);
console.log('创建会话标签页成功:', result.data);
} catch (error) {
console.error('创建失败:', error);
}
};
// 调用示例
createChatTabs("oc_a0553eda9014c201e6969b478895c230");更新会话标签页
函数签名:
csharp
Task<FeishuApiResult<ChatTabsUpdateResult>?> UpdateChatTabsByIdAsync(
[Path] string chat_id,
[Body] UpdateChatTabsRequest updateChatTabsRequest,
CancellationToken cancellationToken = default)认证:租户令牌
参数:
- chat_id ✅ 必填 - 群 ID(string)
示例值:"oc_a0553eda9014c201e6969b478895c230" - updateChatTabsRequest ✅ 必填 - 更新会话标签页请求体(UpdateChatTabsRequest)
响应:
json
{
"code": 0,
"msg": "success",
"data": {
"chat_tabs": [
{
"tab_id": "7101214603622940671",
"tab_name": "更新后的企业文档",
"tab_type": "doc",
"tab_content": {
"doc": "https://example.feishu.cn/wiki/wikcnPIcqWjJQwkwDzrB9t40123xz"
}
}
]
}
}说明:仅支持更新文档类型(doc)或 URL (url)类型的标签页。
代码示例:
typescript
// 更新会话标签页示例(租户令牌)
const updateChatTabs = async (chatId: string, tabId: string) => {
const requestBody = {
chat_tabs: [{
tab_id: tabId,
tab_name: "更新后的企业文档",
tab_type: "doc",
tab_content: {
doc: "https://example.feishu.cn/wiki/wikcnPIcqWjJQwkwDzrB9t40123xz"
}
}]
};
try {
const result = await feishuClient.feishuTenantV1ChatTabs.updateChatTabsById(
chatId,
requestBody
);
console.log('更新会话标签页成功:', result.data);
} catch (error) {
console.error('更新失败:', error);
}
};
// 调用示例
updateChatTabs("oc_a0553eda9014c201e6969b478895c230", "7101214603622940671");删除会话标签页
函数签名:
csharp
Task<FeishuApiResult<DeleteTabsResult>?> DeleteChatTabsByIdAsync(
[Path] string chat_id,
[Body] ChatTabsIdsRequest deleteChatTabsRequest,
CancellationToken cancellationToken = default)认证:租户令牌
参数:
- chat_id ✅ 必填 - 群 ID(string)
示例值:"oc_a0553eda9014c201e6969b478895c230" - deleteChatTabsRequest ✅ 必填 - 删除会话标签页请求体(ChatTabsIdsRequest)
包含 tab_ids 字段,示例值:["7101214603622940671", "7101214603622940672"]
响应:
json
{
"code": 0,
"msg": "success",
"data": {
"deleted_tab_ids": ["7101214603622940671"]
}
}说明:支持同时删除多个会话标签页,租户应用可以管理企业内所有会话的标签页。
代码示例:
typescript
// 删除会话标签页示例(租户令牌)
const deleteChatTabs = async (chatId: string, tabIds: string[]) => {
const requestBody = {
tab_ids: tabIds
};
try {
const result = await feishuClient.feishuTenantV1ChatTabs.deleteChatTabsById(
chatId,
requestBody
);
console.log('删除会话标签页成功:', result.data);
} catch (error) {
console.error('删除失败:', error);
}
};
// 调用示例
deleteChatTabs("oc_a0553eda9014c201e6969b478895c230", ["7101214603622940671"]);调整会话标签页排序
函数签名:
csharp
Task<FeishuApiResult<ChatTabsSortResult>?> ChatTabsSortByIdAsync(
[Path] string chat_id,
[Body] ChatTabsIdsRequest chatTabsSortRequest,
CancellationToken cancellationToken = default)认证:租户令牌
参数:
- chat_id ✅ 必填 - 群 ID(string)
示例值:"oc_a0553eda9014c201e6969b478895c230" - chatTabsSortRequest ✅ 必填 - 排序会话标签页请求体(ChatTabsIdsRequest)
包含 tab_ids 字段,按排序顺序列出标签页 ID
响应:
json
{
"code": 0,
"msg": "success",
"data": {
"chat_tabs": [
{
"tab_id": "7101214603622940672",
"tab_name": "企业文档",
"tab_type": "doc"
},
{
"tab_id": "7101214603622940671",
"tab_name": "企业链接",
"tab_type": "url"
}
]
}
}说明:tab_ids 数组中的顺序即为标签页的排序顺序。
代码示例:
typescript
// 调整会话标签页排序示例(租户令牌)
const sortChatTabs = async (chatId: string, sortedTabIds: string[]) => {
const requestBody = {
tab_ids: sortedTabIds
};
try {
const result = await feishuClient.feishuTenantV1ChatTabs.chatTabsSortById(
chatId,
requestBody
);
console.log('排序成功:', result.data);
} catch (error) {
console.error('排序失败:', error);
}
};
// 调用示例:将企业文档标签页移到最前面
sortChatTabs("oc_a0553eda9014c201e6969b478895c230", ["7101214603622940672", "7101214603622940671"]);获取会话标签页列表
函数签名:
csharp
Task<FeishuApiResult<GetChatTabsResult>?> GetChatTabsListByIdAsync(
[Path] string chat_id,
CancellationToken cancellationToken = default)认证:租户令牌
参数:
- chat_id ✅ 必填 - 群 ID(string)
示例值:"oc_a0553eda9014c201e6969b478895c230"
响应:
json
{
"code": 0,
"msg": "success",
"data": {
"chat_tabs": [
{
"tab_id": "7101214603622940671",
"tab_name": "企业文档",
"tab_type": "doc",
"tab_content": {
"doc": "https://example.feishu.cn/wiki/wikcnPIcqWjJQwkwDzrB9t40123xz"
}
},
{
"tab_id": "7101214603622940672",
"tab_name": "企业链接",
"tab_type": "url",
"tab_content": {
"url": "https://company.feishu.cn"
}
}
]
}
}说明:返回指定会话内所有会话标签页的详细信息,租户应用可以查看企业内所有会话的标签页。
代码示例:
typescript
// 获取会话标签页列表示例(租户令牌)
const getChatTabsList = async (chatId: string) => {
try {
const result = await feishuClient.feishuTenantV1ChatTabs.getChatTabsListById(chatId);
console.log('会话标签页列表:', result.data.chat_tabs);
// 遍历标签页
result.data.chat_tabs.forEach(tab => {
console.log(`企业标签页: ${tab.tab_name} (${tab.tab_type})`);
});
} catch (error) {
console.error('获取列表失败:', error);
}
};
// 调用示例
getChatTabsList("oc_a0553eda9014c201e6969b478895c230");