Skip to content

飞书任务 V2 - 租户权限

接口名称

飞书任务 V2 -(IFeishuTenantV2Task)

功能描述

飞书任务是一款飞书自带的通用任务/项目管理工具,拥有强大的协作能力。可以轻松地在飞书App的任务中心、群组、文档等场景中快捷创建任务,同时也可以将任务分享给感兴趣的成员,或者关注和跟进一些感兴趣的任务。

本接口提供以租户身份操作飞书任务的完整能力,包括创建、更新、删除任务,管理任务成员、清单、提醒、依赖关系以及子任务等功能。

参考文档

函数列表

函数名称功能描述认证方式HTTP 方法
CreateTaskAsync创建任务租户令牌POST
UpdateTaskAsync更新任务租户令牌PATCH
GetTaskByIdAsync获取任务详情租户令牌GET
DeleteTaskByIdAsync删除任务租户令牌DELETE
AddMembersByIdAsync添加任务成员租户令牌POST
RemoveMembersByIdAsync移除任务成员租户令牌POST
GetTaskListsByIdAsync列取任务所在清单租户令牌GET
AddTaskListsByIdAsync将任务加入清单租户令牌POST
RemoveTaskListsByIdAsync将任务从清单移出租户令牌POST
AddTaskReminderByIdAsync添加任务提醒租户令牌POST
RemoveTaskReminderByIdAsync移除任务提醒租户令牌POST
AddTaskDependenciesByIdAsync添加任务依赖租户令牌POST
RemoveTaskDependenciesByIdAsync移除任务依赖租户令牌POST
CreateSubTaskAsync创建子任务租户令牌POST
GetSubTasksPageListByIdAsync分页获取子任务列表租户令牌GET

函数详细内容

创建任务

函数名称:创建任务

函数签名

csharp
Task<FeishuApiResult<TaskOperationResult>?> CreateTaskAsync(
    [Body] CreateTaskRequest createTaskRequest,
    [Query("user_id_type")] string user_id_type = "open_id",
    CancellationToken cancellationToken = default);

认证:租户令牌

参数

参数名必填类型说明
createTaskRequestCreateTaskRequest创建任务请求体
└ summarystring任务标题,最大3000个utf8字符
└ descriptionstring任务摘要,最大3000个utf8字符
└ dueTaskTime任务截止时间
└ membersTaskMemberInfo[]任务成员列表(负责人和关注人)
└ tasklistsTaskInTaskListInfo[]任务所在清单信息
└ remindersTaskReminder[]任务提醒设置
└ originTaskOriginSrcData第三方平台来源信息
└ extrastring附带的自定义数据
└ completed_atstring完成时刻时间戳(ms),0表示未完成
└ repeat_rulestring重复任务规则,如:FREQ=WEEKLY;INTERVAL=1;BYDAY=MO,TU,WE,TH,FR
└ custom_completeTaskPlatformCompleteData自定义完成配置
└ client_tokenstring幂等token
└ startTasksStartTime任务开始时间
└ modeint完成模式:1-会签任务,2-或签任务
└ is_milestonebool是否是里程碑任务
└ custom_fieldsInputCustomFieldValue[]自定义字段值
user_id_typestring用户ID类型,默认open_id

响应

json
{
  "code": 0,
  "msg": "success",
  "data": {
    "task": {
      "guid": "e297ddff-06ca-4166-b917-4ce57cd3a7a0",
      "summary": "针对全年销售进行一次复盘",
      "description": "需要事先阅读复盘总结文档",
      "due": {
        "timestamp": "1675742789470",
        "is_all_day": false
      },
      "members": [
        {
          "id": "ou_xxx",
          "type": "user",
          "role": "assignee"
        }
      ],
      "status": "todo",
      "created_at": "1675742789470",
      "updated_at": "1675742789470",
      "url": "https://applink.feishu.cn/client/todo/detail?guid=e297ddff-06ca-4166-b917-4ce57cd3a7a0"
    }
  }
}

说明

  • 创建任务时支持设置任务的基本信息(如标题、描述、负责人等)
  • 可以通过传入 tasklists 字段将新任务加到多个清单中
  • 可以通过设置 members 字段来设置任务的负责人和关注人

代码示例

csharp
// 使用租户权限创建任务
public class TaskService
{
    private readonly IFeishuTenantV2Task _taskClient;

    public TaskService(IFeishuTenantV2Task taskClient)
    {
        _taskClient = taskClient;
    }

    public async Task CreateNewTaskAsync()
    {
        var request = new CreateTaskRequest
        {
            Summary = "针对全年销售进行一次复盘",
            Description = "需要事先阅读复盘总结文档",
            Due = new TaskTime
            {
                Timestamp = "1675742789470",
                IsAllDay = false
            },
            Members = new[]
            {
                new TaskMemberInfo
                {
                    Id = "ou_xxx",
                    Type = "user",
                    Role = "assignee"
                }
            }
        };

        var result = await _taskClient.CreateTaskAsync(request);
        if (result?.Data?.Task != null)
        {
            Console.WriteLine($"任务创建成功,GUID: {result.Data.Task.Guid}");
        }
    }
}

更新任务

函数名称:更新任务

函数签名

csharp
Task<FeishuApiResult<TaskOperationResult>?> UpdateTaskAsync(
    [Path] string task_guid,
    [Body] UpdateTaskRequest updateTaskRequest,
    [Query("user_id_type")] string user_id_type = "open_id",
    CancellationToken cancellationToken = default);

认证:租户令牌

参数

参数名必填类型说明
task_guidstring任务全局唯一ID,示例:e297ddff-06ca-4166-b917-4ce57cd3a7a0
updateTaskRequestUpdateTaskRequest更新任务请求体
user_id_typestring用户ID类型,默认open_id

响应:与创建任务响应结构相同

说明:用于修改任务的标题、描述、截止时间等信息。

代码示例

csharp
// 更新任务信息
public async Task UpdateTaskInfoAsync(string taskGuid)
{
    var request = new UpdateTaskRequest
    {
        Summary = "更新后的任务标题",
        Description = "更新后的任务描述",
        Due = new TaskTime
        {
            Timestamp = "1675742789470",
            IsAllDay = false
        }
    };

    var result = await _taskClient.UpdateTaskAsync(taskGuid, request);
    if (result?.Code == 0)
    {
        Console.WriteLine("任务更新成功");
    }
}

获取任务详情

函数名称:获取任务详情

函数签名

csharp
Task<FeishuApiResult<TaskOperationResult>?> GetTaskByIdAsync(
    [Path] string task_guid,
    [Query("user_id_type")] string user_id_type = "open_id",
    CancellationToken cancellationToken = default);

认证:租户令牌

参数

参数名必填类型说明
task_guidstring任务全局唯一ID
user_id_typestring用户ID类型,默认open_id

响应:返回包含任务完整信息的响应

说明:用于获取任务详情,包括任务标题、描述、时间、成员等信息。

代码示例

csharp
// 获取任务详情
public async Task GetTaskDetailAsync(string taskGuid)
{
    var result = await _taskClient.GetTaskByIdAsync(taskGuid);
    if (result?.Data?.Task != null)
    {
        var task = result.Data.Task;
        Console.WriteLine($"任务标题: {task.Summary}");
        Console.WriteLine($"任务状态: {task.Status}");
        Console.WriteLine($"创建时间: {task.CreatedAt}");
    }
}

删除任务

函数名称:删除任务

函数签名

csharp
Task<FeishuNullDataApiResult?> DeleteTaskByIdAsync(
    [Path] string task_guid,
    CancellationToken cancellationToken = default);

认证:租户令牌

参数

参数名必填类型说明
task_guidstring要删除的任务全局唯一ID

响应

json
{
  "code": 0,
  "msg": "success"
}

说明:删除一个任务。删除后任务无法再被获取到。

代码示例

csharp
// 删除任务
public async Task DeleteTaskAsync(string taskGuid)
{
    var result = await _taskClient.DeleteTaskByIdAsync(taskGuid);
    if (result?.Code == 0)
    {
        Console.WriteLine("任务删除成功");
    }
}

添加任务成员

函数名称:添加任务成员

函数签名

csharp
Task<FeishuApiResult<TaskOperationResult>?> AddMembersByIdAsync(
    [Path] string task_guid,
    [Body] AddMembersRequest addMembersRequest,
    [Query("user_id_type")] string user_id_type = "open_id",
    CancellationToken cancellationToken = default);

认证:租户令牌

参数

参数名必填类型说明
task_guidstring任务全局唯一ID
addMembersRequestAddMembersRequest添加任务成员请求体
user_id_typestring用户ID类型,默认open_id

说明:添加任务的负责人或者关注人。一次性可以添加多个成员。

代码示例

csharp
// 添加任务成员
public async Task AddTaskMembersAsync(string taskGuid)
{
    var request = new AddMembersRequest
    {
        Members = new[]
        {
            new TaskMemberInfo
            {
                Id = "ou_yyy",
                Type = "user",
                Role = "follower"
            }
        }
    };

    var result = await _taskClient.AddMembersByIdAsync(taskGuid, request);
    if (result?.Code == 0)
    {
        Console.WriteLine("成员添加成功");
    }
}

移除任务成员

函数名称:移除任务成员

函数签名

csharp
Task<FeishuApiResult<TaskOperationResult>?> RemoveMembersByIdAsync(
    [Path] string task_guid,
    [Body] RemoveMembersRequest removeMembersRequest,
    [Query("user_id_type")] string user_id_type = "open_id",
    CancellationToken cancellationToken = default);

认证:租户令牌

参数

参数名必填类型说明
task_guidstring任务全局唯一ID
removeMembersRequestRemoveMembersRequest移除任务成员请求体
user_id_typestring用户ID类型,默认open_id

说明:移除任务成员。如果要移除的成员不是任务成员,会被自动忽略。


列取任务所在清单

函数名称:列取任务所在清单

函数签名

csharp
Task<FeishuApiResult<TaskGuidTaskListsResult>?> GetTaskListsByIdAsync(
    [Path] string task_guid,
    CancellationToken cancellationToken = default);

认证:租户令牌

参数

参数名必填类型说明
task_guidstring任务全局唯一ID

说明:列取一个任务所在的所有清单的信息,包括清单的GUID和所在自定义分组的GUID。


将任务加入清单

函数名称:将任务加入清单

函数签名

csharp
Task<FeishuApiResult<AddTaskListResult>?> AddTaskListsByIdAsync(
    [Path] string task_guid,
    [Body] AddTasklistRequest addTasklistRequest,
    [Query("user_id_type")] string user_id_type = "open_id",
    CancellationToken cancellationToken = default);

认证:租户令牌

参数

参数名必填类型说明
task_guidstring任务全局唯一ID
addTasklistRequestAddTasklistRequest任务加入清单请求体
user_id_typestring用户ID类型,默认open_id

说明:将一个任务加入清单。如果任务已经在该清单,接口将返回成功。


将任务从清单移出

函数名称:将任务从清单移出

函数签名

csharp
Task<FeishuApiResult<RemoveTaskListResult>?> RemoveTaskListsByIdAsync(
    [Path] string task_guid,
    [Body] RemoveTasklistRequest removeTasklistRequest,
    [Query("user_id_type")] string user_id_type = "open_id",
    CancellationToken cancellationToken = default);

认证:租户令牌

参数

参数名必填类型说明
task_guidstring任务全局唯一ID
removeTasklistRequestRemoveTasklistRequest移除任务清单请求体
user_id_typestring用户ID类型,默认open_id

说明:将任务从一个清单中移出。如果任务不在清单中,接口将返回成功。


添加任务提醒

函数名称:添加任务提醒

函数签名

csharp
Task<FeishuApiResult<AddTaskReminderResult>?> AddTaskReminderByIdAsync(
    [Path] string task_guid,
    [Body] AddTaskReminderRequest addTaskReminderRequest,
    [Query("user_id_type")] string user_id_type = "open_id",
    CancellationToken cancellationToken = default);

认证:租户令牌

参数

参数名必填类型说明
task_guidstring任务全局唯一ID
addTaskReminderRequestAddTaskReminderRequest添加任务提醒请求体
user_id_typestring用户ID类型,默认open_id

说明:为一个任务添加提醒。为了设置提醒,任务必须首先拥有截止时间。


移除任务提醒

函数名称:移除任务提醒

函数签名

csharp
Task<FeishuApiResult<RemoveTaskReminderResult>?> RemoveTaskReminderByIdAsync(
    [Path] string task_guid,
    [Body] RemoveReminderRequest removeReminderRequest,
    [Query("user_id_type")] string user_id_type = "open_id",
    CancellationToken cancellationToken = default);

认证:租户令牌

参数

参数名必填类型说明
task_guidstring任务全局唯一ID
removeReminderRequestRemoveReminderRequest移除任务提醒请求体
user_id_typestring用户ID类型,默认open_id

说明:将一个提醒从任务中移除。如果要移除的提醒不存在,接口将直接返回成功。


添加任务依赖

函数名称:添加任务依赖

函数签名

csharp
Task<FeishuApiResult<TaskDependenciesOpreationResult>?> AddTaskDependenciesByIdAsync(
    [Path] string task_guid,
    [Body] AddTaskDependenciesRequest addTaskReminderRequest,
    CancellationToken cancellationToken = default);

认证:租户令牌

参数

参数名必填类型说明
task_guidstring任务全局唯一ID
addTaskReminderRequestAddTaskDependenciesRequest添加任务依赖请求体

说明:为一个任务添加一个或多个依赖。可以添加任务的前置依赖和后置依赖。存在依赖关系的任务如果在同一个清单,可以通过清单的甘特图来展示其依赖关系。


移除任务依赖

函数名称:移除任务依赖

函数签名

csharp
Task<FeishuApiResult<TaskDependenciesOpreationResult>?> RemoveTaskDependenciesByIdAsync(
    [Path] string task_guid,
    [Body] RemoveTaskDependenciesRequest removeTaskDependenciesRequest,
    CancellationToken cancellationToken = default);

认证:租户令牌

参数

参数名必填类型说明
task_guidstring任务全局唯一ID
removeTaskDependenciesRequestRemoveTaskDependenciesRequest移除任务依赖请求体

说明:从一个任务移除一个或者多个依赖。移除时只需要输入要移除的task_guid即可。


创建子任务

函数名称:创建子任务

函数签名

csharp
Task<FeishuApiResult<CreateSubTaskResult>?> CreateSubTaskAsync(
    [Path] string task_guid,
    [Body] CreateSubTaskRequest createSubTaskRequest,
    [Query("user_id_type")] string user_id_type = "open_id",
    CancellationToken cancellationToken = default);

认证:租户令牌

参数

参数名必填类型说明
task_guidstring父任务全局唯一ID
createSubTaskRequestCreateSubTaskRequest创建子任务请求体
user_id_typestring用户ID类型,默认open_id

说明:给一个任务创建一个子任务。接口功能除了额外需要输入父任务的GUID之外,和创建任务接口功能完全一致。

代码示例

csharp
// 创建子任务
public async Task CreateSubTaskAsync(string parentTaskGuid)
{
    var request = new CreateSubTaskRequest
    {
        Summary = "子任务:收集销售数据",
        Description = "收集各区域销售数据"
    };

    var result = await _taskClient.CreateSubTaskAsync(parentTaskGuid, request);
    if (result?.Data != null)
    {
        Console.WriteLine($"子任务创建成功");
    }
}

分页获取子任务列表

函数名称:分页获取子任务列表

函数签名

csharp
Task<FeishuApiPageListResult<SubTaskInfo>?> GetSubTasksPageListByIdAsync(
    [Path] string task_guid,
    [Query("page_size")] int page_size = 10,
    [Query("page_token")] string? page_token = null,
    [Query("user_id_type")] string user_id_type = "open_id",
    CancellationToken cancellationToken = default);

认证:租户令牌

参数

参数名必填类型说明
task_guidstring任务全局唯一ID
page_sizeint分页大小,默认10
page_tokenstring分页标记,第一次请求不填
user_id_typestring用户ID类型,默认open_id

说明:分页获取一个任务的子任务列表。

代码示例

csharp
// 获取子任务列表
public async Task GetSubTasksAsync(string taskGuid)
{
    var result = await _taskClient.GetSubTasksPageListByIdAsync(
        taskGuid, 
        page_size: 20
    );
    
    if (result?.Data?.Items != null)
    {
        foreach (var subTask in result.Data.Items)
        {
            Console.WriteLine($"子任务: {subTask.Summary}");
        }
    }
}