租户任务清单接口 - (IFeishuTenantV2TaskList)
功能描述
飞书清单可以用于组织和管理属于同一个项目的多个任务。该接口提供租户级别的任务清单管理功能,包括创建、查询、更新、删除清单以及成员管理操作。
参考文档
接口详细文档请参见:https://open.feishu.cn/document/task-v2/tasklist/overview
函数列表
| 函数名称 | 功能描述 | 认证方式 | HTTP 方法 |
|---|---|---|---|
| CreateTaskListAsync | 创建任务清单 | 租户令牌 | POST |
| GetTaskListByIdAsync | 获取任务清单详情 | 租户令牌 | GET |
| UpdateTaskListByIdAsync | 更新任务清单 | 租户令牌 | PATCH |
| DeleteTaskListByIdAsync | 删除任务清单 | 租户令牌 | DELETE |
| AddTaskListMemberByIdAsync | 添加清单成员 | 租户令牌 | POST |
| RemoveTaskListMemberByIdAsync | 移除清单成员 | 租户令牌 | POST |
| GetTaskListPageListByIdAsync | 分页获取任务列表 | 租户令牌 | GET |
函数详细内容
创建任务清单
函数签名:
csharp
Task<FeishuApiResult<TaskListOperationResult>?> CreateTaskListAsync(
[Body] CreateTaskListRequest createTaskListRequest,
[Query("user_id_type")] string user_id_type = Consts.User_Id_Type,
CancellationToken cancellationToken = default);认证:租户令牌
参数:
- ✅ createTaskListRequest (CreateTaskListRequest) - 创建任务列表请求体
- ✅ name (string) - 清单名称,必填。最多100个字符。示例值:"年会工作任务清单"
- ⚪ members (TaskMember[]) - 清单的成员列表
- ⚪ user_id_type (string) - 用户 ID 类型,需要与查询参数中的 user_id_type 类型保持一致。默认值:"open_id"
响应:
json
{
"code": 0,
"msg": "success",
"data": {
"tasklist": {
"guid": "cc371766-6584-cf50-a222-c22cd9055004",
"name": "年会工作任务清单",
"creator": {
"id": "ou_2cefb2f014f8d0c6c2d2eb7bafb0e54f",
"type": "user",
"role": "assignee"
},
"owner": {
"id": "ou_2cefb2f014f8d0c6c2d2eb7bafb0e54f",
"type": "user",
"role": "assignee"
},
"members": [],
"url": "https://applink.feishu.cn/client/todo/task_list?guid=b45b360f-1961-4058-b338-7f50c96e1b52",
"created_at": "1675742789470",
"updated_at": "1675742789470"
}
}
}说明:创建时必须填写清单的名字,同时可以设置通过members字段设置清单的协作成员。
代码示例:
typescript
// 创建一个新的任务清单
const createTaskList = async () => {
const request = {
name: "项目开发任务清单",
members: [
{
id: "ou_2cefb2f014f8d0c6c2d2eb7bafb0e54f",
type: "user",
role: "assignee"
}
]
};
const response = await feishuClient.createTaskList(request);
console.log("创建成功:", response.data.tasklist);
};获取任务清单详情
函数签名:
csharp
Task<FeishuApiResult<TaskListOperationResult>?> GetTaskListByIdAsync(
[Path] string tasklist_guid,
[Query("user_id_type")] string user_id_type = Consts.User_Id_Type,
CancellationToken cancellationToken = default);认证:租户令牌
参数:
- ✅ tasklist_guid (string) - 任务清单全局唯一GUID。示例值:"d300a75f-c56a-4be9-80d1-e47653028ceb"
- ⚪ user_id_type (string) - 用户 ID 类型,需要与查询参数中的 user_id_type 类型保持一致。默认值:"open_id"
响应:
json
{
"code": 0,
"msg": "success",
"data": {
"tasklist": {
"guid": "d300a75f-c56a-4be9-80d1-e47653028ceb",
"name": "年会总结工作任务清单",
"creator": {
"id": "ou_2cefb2f014f8d0c6c2d2eb7bafb0e54f",
"name": "张明德(明德)",
"type": "user",
"role": "assignee"
},
"owner": {
"id": "ou_2cefb2f014f8d0c6c2d2eb7bafb0e54f",
"name": "张明德(明德)",
"type": "user",
"role": "assignee"
},
"members": [
{
"id": "ou_5bc2d0b248e93059316a4d5f2b9e5f57",
"name": "李华",
"type": "user",
"role": "assignee"
}
],
"url": "https://applink.feishu.cn/client/todo/task_list?guid=d300a75f-c56a-4be9-80d1-e47653028ceb",
"created_at": "1675742789470",
"updated_at": "1675742789470"
}
}
}说明:获取一个清单的详细信息,包括清单名,所有者,清单成员等。
代码示例:
typescript
// 获取任务清单详情
const getTaskList = async (taskListGuid: string) => {
const response = await feishuClient.getTaskListById(taskListGuid);
console.log("清单详情:", response.data.tasklist);
return response.data.tasklist;
};更新任务清单
函数签名:
csharp
Task<FeishuApiResult<TaskListOperationResult>?> UpdateTaskListByIdAsync(
[Path] string tasklist_guid,
[Body] UpdateTaskListRequest updateTaskListRequest,
[Query("user_id_type")] string user_id_type = Consts.User_Id_Type,
CancellationToken cancellationToken = default);认证:租户令牌
参数:
- ✅ tasklist_guid (string) - 任务清单全局唯一GUID。示例值:"d300a75f-c56a-4be9-80d1-e47653028ceb"
- ✅ updateTaskListRequest (UpdateTaskListRequest) - 更新任务列表请求体
- ✅ tasklist (TaskListData) - 要更新清单的数据
- ✅ name (string) - 清单名称,最多100个字符。示例值:"年会工作任务清单"
- ⚪ members (TaskMember[]) - 清单的成员列表
- ✅ update_fields (string[]) - 要更新的字段名,可选值:["name", "owner"]
- ⚪ origin_owner_to_role (string) - 原所有者角色,可选值:["editor", "viewer", "none"]。默认值:"none"
- ✅ tasklist (TaskListData) - 要更新清单的数据
- ⚪ user_id_type (string) - 用户 ID 类型,需要与查询参数中的 user_id_type 类型保持一致。默认值:"open_id"
响应:
json
{
"code": 0,
"msg": "success",
"data": {
"tasklist": {
"guid": "d300a75f-c56a-4be9-80d1-e47653028ceb",
"name": "更新后的任务清单名称",
"owner": {
"id": "ou_5bc2d0b248e93059316a4d5f2b9e5f57",
"type": "user",
"role": "assignee"
},
"created_at": "1675742789470",
"updated_at": "1675742789470"
}
}
}说明:更新清单时,将update_fields字段中填写所有要修改的清单字段名,同时在tasklist字段中填写要修改的字段的新值即可。
代码示例:
typescript
// 更新任务清单名称
const updateTaskList = async (taskListGuid: string) => {
const request = {
tasklist: {
name: "更新后的项目开发任务清单"
},
update_fields: ["name"]
};
const response = await feishuClient.updateTaskListById(taskListGuid, request);
console.log("更新成功:", response.data.tasklist);
};删除任务清单
函数签名:
csharp
Task<FeishuNullDataApiResult?> DeleteTaskListByIdAsync(
[Path] string tasklist_guid,
CancellationToken cancellationToken = default);认证:租户令牌
参数:
- ✅ tasklist_guid (string) - 任务清单全局唯一GUID。示例值:"d300a75f-c56a-4be9-80d1-e47653028ceb"
响应:
json
{
"code": 0,
"msg": "success"
}说明:删除清单后,不可对该清单做任何操作,也无法再访问到清单。清单被删除后不可恢复。
代码示例:
typescript
// 删除任务清单
const deleteTaskList = async (taskListGuid: string) => {
const response = await feishuClient.deleteTaskListById(taskListGuid);
if (response.code === 0) {
console.log("删除成功");
}
};添加清单成员
函数签名:
csharp
Task<FeishuApiResult<TaskListOperationResult>?> AddTaskListMemberByIdAsync(
[Path] string tasklist_guid,
[Body] AddTaskListMemberRequest addTaskListMemberRequest,
[Query("user_id_type")] string user_id_type = Consts.User_Id_Type,
CancellationToken cancellationToken = default);认证:租户令牌
参数:
- ✅ tasklist_guid (string) - 任务清单全局唯一GUID。示例值:"d300a75f-c56a-4be9-80d1-e47653028ceb"
- ✅ addTaskListMemberRequest (AddTaskListMemberRequest) - 添加清单成员请求体
- ✅ members (TaskMember[]) - 要添加的成员列表
- ⚪ user_id_type (string) - 用户 ID 类型,需要与查询参数中的 user_id_type 类型保持一致。默认值:"open_id"
响应:
json
{
"code": 0,
"msg": "success",
"data": {
"tasklist": {
"guid": "d300a75f-c56a-4be9-80d1-e47653028ceb",
"name": "年会总结工作任务清单",
"members": [
{
"id": "ou_5bc2d0b248e93059316a4d5f2b9e5f57",
"type": "user",
"role": "assignee"
},
{
"id": "ou_2cefb2f014f8d0c6c2d2eb7bafb0e54f",
"type": "user",
"role": "assignee"
}
]
}
}
}说明:向一个清单添加1个或多个协作成员。成员信息通过设置members字段实现。
代码示例:
typescript
// 添加清单成员
const addTaskListMembers = async (taskListGuid: string) => {
const request = {
members: [
{
id: "ou_5bc2d0b248e93059316a4d5f2b9e5f57",
type: "user",
role: "assignee"
},
{
id: "ou_8d7a3f5e6b9c4d2e9f0a1b2c3d4e5f6g",
type: "user",
role: "follower"
}
]
};
const response = await feishuClient.addTaskListMemberById(taskListGuid, request);
console.log("添加成员成功:", response.data.tasklist.members);
};移除清单成员
函数签名:
csharp
Task<FeishuApiResult<TaskListOperationResult>?> RemoveTaskListMemberByIdAsync(
[Path] string tasklist_guid,
[Body] RemoveTaskListMemberRequest removeTaskListMemberRequest,
[Query("user_id_type")] string user_id_type = Consts.User_Id_Type,
CancellationToken cancellationToken = default);认证:租户令牌
参数:
- ✅ tasklist_guid (string) - 任务清单全局唯一GUID。示例值:"d300a75f-c56a-4be9-80d1-e47653028ceb"
- ✅ removeTaskListMemberRequest (RemoveTaskListMemberRequest) - 移除清单成员请求体
- ✅ members (TaskMember[]) - 要移除的成员列表
- ⚪ user_id_type (string) - 用户 ID 类型,需要与查询参数中的 user_id_type 类型保持一致。默认值:"open_id"
响应:
json
{
"code": 0,
"msg": "success",
"data": {
"tasklist": {
"guid": "d300a75f-c56a-4be9-80d1-e47653028ceb",
"name": "年会总结工作任务清单",
"members": [
{
"id": "ou_2cefb2f014f8d0c6c2d2eb7bafb0e54f",
"type": "user",
"role": "assignee"
}
]
}
}
}说明:移除清单的一个或多个协作成员。通过设置members字段表示要移除的成员信息。
代码示例:
typescript
// 移除清单成员
const removeTaskListMembers = async (taskListGuid: string) => {
const request = {
members: [
{
id: "ou_5bc2d0b248e93059316a4d5f2b9e5f57",
type: "user",
role: "assignee"
}
]
};
const response = await feishuClient.removeTaskListMemberById(taskListGuid, request);
console.log("移除成员成功:", response.data.tasklist.members);
};分页获取任务列表
函数签名:
csharp
Task<FeishuApiPageListResult<TaskSummary>?> GetTaskListPageListByIdAsync(
[Path] string tasklist_guid,
[Query("page_size")] int page_size = 10,
[Query("page_token")] string? page_token = null,
[Query("completed")] bool? completed = null,
[Query("created_from")] string? created_from = null,
[Query("created_to")] string? created_to = null,
[Query("user_id_type")] string user_id_type = Consts.User_Id_Type,
CancellationToken cancellationToken = default);认证:租户令牌
参数:
- ✅ tasklist_guid (string) - 任务清单全局唯一GUID。示例值:"e297ddff-06ca-4166-b917-4ce57cd3a7a0"
- ⚪ page_size (int) - 分页大小,即本次请求所返回的用户信息列表内的最大条目数。默认值:10
- ⚪ page_token (string) - 分页标记,第一次请求不填,表示从头开始遍历
- ⚪ completed (bool) - 特定完成状态的任务,填写"true"表示返回已经完成的任务;"false"表示只返回未完成的任务;不填写表示不按完成状态过滤
- ⚪ created_from (string) - 任务创建的起始时间戳(ms),闭区间。示例值:1675742789470
- ⚪ created_to (string) - 任务创建的结束时间戳(ms),闭区间。示例值:1675742789470
- ⚪ user_id_type (string) - 用户 ID 类型,需要与查询参数中的 user_id_type 类型保持一致。默认值:"open_id"
响应:
json
{
"code": 0,
"msg": "success",
"data": {
"items": [
{
"guid": "e297ddff-06ca-4166-b917-4ce57cd3a7a0",
"summary": "年终总结",
"completed_at": "1675742789470",
"start": {
"timestamp": "1675454764000",
"is_all_day": false
},
"due": {
"timestamp": "1675742789470",
"is_all_day": true
},
"members": [
{
"id": "ou_2cefb2f014f8d0c6c2d2eb7bafb0e54f",
"name": "张明德(明德)",
"type": "user",
"role": "assignee"
}
],
"subtask_count": 2
}
],
"page_token": "next_page_token_value",
"has_more": true
}
}说明:分页获取一个清单的任务列表,返回任务的摘要信息。
代码示例:
typescript
// 分页获取任务列表
const getTaskList = async (taskListGuid: string) => {
let allTasks: any[] = [];
let pageToken: string | null = null;
do {
const response = await feishuClient.getTaskListPageListById(taskListGuid, {
page_size: 20,
page_token: pageToken,
completed: false // 只获取未完成的任务
});
allTasks = allTasks.concat(response.data.items);
pageToken = response.data.has_more ? response.data.page_token : null;
} while (pageToken);
console.log("获取到的任务列表:", allTasks);
return allTasks;
};