Skip to content

审批任务(用户令牌) - FeishuV4ApprovalTask_User ​

接口名称 ​

审批任务接口(用户令牌) -(IFeishuUserV4ApprovalTask)

功能描述 ​

以用户身份操作审批任务,对应飞书审批中心「待办/已办」页面的操作能力。支持:

  • 加签审批任务(tasks/add_sign)
  • 转交审批任务(tasks/forward)
  • 获取审批任务列表(GET /tasks)
  • 同意审批任务(tasks/pass)
  • 拒绝审批任务(tasks/refuse)
  • 退回审批任务(tasks/rollback)
  • 订阅/退订审批任务状态变更事件(tasks/subscription)

注意:飞书同时存在租户令牌版本的同语义接口(approve/reject/transfer/resubmit),见 IFeishuTenantV4ApprovalTask 文档。两套接口路径不同、参数略有差异,均为官方正式 API。

参考文档 ​

函数列表 ​

函数名称功能描述认证方式HTTP 方法
AddSignApprovalTaskAsync加签审批任务用户令牌POST
ForwardApprovalTaskAsync转交审批任务用户令牌POST
GetApprovalTaskPageListAsync获取审批任务列表用户令牌GET
PassApprovalTaskAsync同意审批任务用户令牌POST
RefuseApprovalTaskAsync拒绝审批任务用户令牌POST
RollbackApprovalTaskAsync退回审批任务用户令牌POST
SubscribeTaskStatusEventAsync订阅审批任务状态变更事件用户令牌POST
UnsubscribeTaskStatusEventAsync退订审批任务状态变更事件用户令牌DELETE

函数详细内容 ​

AddSignApprovalTaskAsync - 加签审批任务 ​

函数签名 ​

csharp
[Post("/open-apis/approval/v4/tasks/add_sign")]
Task<FeishuNullDataApiResult?> AddSignApprovalTaskAsync(
    [Body] AddSignTaskRequest addSignTaskRequest,
    [Query("user_id_type")] string? user_id_type = Consts.User_Id_Type,
    CancellationToken cancellationToken = default);

请求体(AddSignTaskRequest)字段:

JSON 字段类型必填描述
instance_codestring是审批实例 code
task_idstring是任务 id
commentstring否审批意见,500 字符内
add_sign_user_idsstring[]是被加签人 id,与 user_id_type 一致
add_sign_typeint是1:前加签;2:后加签;3:并加签
approval_methodint否仅前/后加签填写:1:或签;2:会签

ForwardApprovalTaskAsync - 转交审批任务 ​

函数签名 ​

csharp
[Post("/open-apis/approval/v4/tasks/forward")]
Task<FeishuNullDataApiResult?> ForwardApprovalTaskAsync(
    [Body] ForwardTaskRequest forwardTaskRequest,
    [Query("user_id_type")] string? user_id_type = Consts.User_Id_Type,
    CancellationToken cancellationToken = default);

请求体(ForwardTaskRequest)字段: instance_code(审批实例 Code)、task_id(审批任务 ID)、transfer_user_id(被转交人的用户 ID)、comment(审批意见,可选)。

GetApprovalTaskPageListAsync - 获取审批任务列表 ​

函数签名 ​

csharp
[Get("/open-apis/approval/v4/tasks")]
Task<FeishuApiResult<GetApprovalTaskPageListResult>?> GetApprovalTaskPageListAsync(
    [Query("page_size")] int page_size = Consts.PageSize_100,
    [Query("page_token")] string? page_token = null,
    [Query("topic")] string? topic = null,
    [Query("locale")] string? locale = null,
    [Query("definition_code")] string? definition_code = null,
    [Query("start_timestamp")] string? start_timestamp = null,
    [Query("end_timestamp")] string? end_timestamp = null,
    [Query("user_id_type")] string? user_id_type = Consts.User_Id_Type,
    CancellationToken cancellationToken = default);

参数 ​

参数名必填类型描述
page_size⚪int分页大小,默认:100
page_token⚪string分页标记
topic⚪string任务分组:1:待办审批;2:已办审批
locale⚪string语言
definition_code⚪string审批定义 Code,用于筛选
start_timestamp / end_timestamp⚪string毫秒时间戳区间
user_id_type⚪string用户 ID 类型

响应 ​

GetApprovalTaskPageListResult:继承 ApiPageListResult(has_more/page_token),附加 tasks(TaskItemInfo[])与 count(第一页返回,≥100 时返回 99)。

TaskItemInfo 字段:topic、user_id、title、status、instance_status、definition_code、initiator、initiator_name、task_id、instance_code、definition_group_id、definition_group_name、definition_name、summaries(ApprovalSummaryPairInfo[])、instance_external_id、task_external_id、support_api_operate、link。

PassApprovalTaskAsync - 同意审批任务 ​

函数签名 ​

csharp
[Post("/open-apis/approval/v4/tasks/pass")]
Task<FeishuNullDataApiResult?> PassApprovalTaskAsync(
    [Body] PassTaskRequest passTaskRequest,
    CancellationToken cancellationToken = default);

请求体(PassTaskRequest)字段: instance_code(必填)、task_id(必填)、form(表单数据,仅该节点需录入的字段,可选)、comment(审批意见,可选)。注意该接口无查询参数。

RefuseApprovalTaskAsync - 拒绝审批任务 ​

函数签名 ​

csharp
[Post("/open-apis/approval/v4/tasks/refuse")]
Task<FeishuNullDataApiResult?> RefuseApprovalTaskAsync(
    [Body] RefuseTaskRequest refuseTaskRequest,
    CancellationToken cancellationToken = default);

请求体(RefuseTaskRequest)字段: instance_code(必填)、task_id(必填)、comment(审批意见,500 字符内,可选)。注意该接口无查询参数。

RollbackApprovalTaskAsync - 退回审批任务 ​

函数签名 ​

csharp
[Post("/open-apis/approval/v4/tasks/rollback")]
Task<FeishuNullDataApiResult?> RollbackApprovalTaskAsync(
    [Body] RollbackTaskRequest rollbackTaskRequest,
    CancellationToken cancellationToken = default);

请求体(RollbackTaskRequest)字段: instance_code(必填)、task_id(必填)、comment(可选)、node_ids(退回到的节点 id 列表,发起节点为 START,可选)。注意该接口无查询参数。

SubscribeTaskStatusEventAsync / UnsubscribeTaskStatusEventAsync ​

函数签名 ​

csharp
[Post("/open-apis/approval/v4/tasks/subscription")]
Task<FeishuNullDataApiResult?> SubscribeTaskStatusEventAsync(
    [Body] TaskSubscriptionRequest subscriptionRequest,
    CancellationToken cancellationToken = default);

[Delete("/open-apis/approval/v4/tasks/subscription")]
Task<FeishuNullDataApiResult?> UnsubscribeTaskStatusEventAsync(
    [Query("subscription_type")] string subscription_type,
    CancellationToken cancellationToken = default);

说明 ​

  • subscription_type 可选值:INVOLVED_APPROVAL(参与审批订阅)、MANAGED_APPROVAL(管理审批订阅)。
  • 退订接口为 DELETE 方法,subscription_type 通过查询参数传递,需与订阅时一致。