Skip to content

审批评论接口 -(FeishuV4ApprovalComments_Tenant)

接口名称

审批评论接口 -(IFeishuTenantV4ApprovalComments

功能描述

该接口用于管理原生审批实例内的评论功能。原生审批实例内,支持员工进行评论、回复评论。评论内容支持文本、@用户以及添加附件。

参考文档

函数列表

函数名称功能描述认证方式HTTP 方法
CreateCommentAsync创建/修改/回复评论租户令牌POST
DeleteCommentByIdAsync删除指定评论租户令牌DELETE
RemoveCommentsAsync清空全部评论租户令牌POST
GetCommentsPageListByIdAsync获取评论分页列表租户令牌GET

函数详细内容

创建/修改/回复评论

函数签名

csharp
Task<FeishuApiResult<CommentOperationResult>?> CreateCommentAsync(
    [Path] string instance_id,
    [Query("user_id")] string user_id,
    [Body] CreateCommentRequest createApprovalRequest,
    [Query("user_id_type")] string? user_id_type = Consts.User_Id_Type,
    CancellationToken cancellationToken = default);

认证

租户令牌TenantAccessToken

参数

参数名必填类型描述
instance_idstring审批实例 Code,支持传入自定义审批实例 ID,示例值:"6A123516-FB88-470D-A428-9AF58B71B3C0"
user_idstring用户 ID,ID 类型与 user_id_type 取值一致,示例值:"e5286g26"
createApprovalRequestCreateCommentRequest创建评论请求体
user_id_typestring用户 ID 类型,默认:open_id
cancellationTokenCancellationToken取消操作令牌对象

请求体示例:

json
{
  "content": "这个审批需要尽快处理",
  "comment_id": "",
  "parent_comment_id": "",
  "mentions": [
    {
      "key": "@user",
      "id": "ou_7dab8a3d3dfcd10xxx"
    }
  ],
  "attachments": [
    {
      "file_token": "file_v2_xxx"
    }
  ]
}

响应

成功响应示例:

json
{
  "code": 0,
  "msg": "ok",
  "data": {
    "comment_id": "7081516627711606803",
    "create_time": "2025-03-20T10:30:00+08:00"
  }
}

说明

  • 在指定审批实例下创建、修改评论或回复评论
  • 不包含审批同意、拒绝、转交等附加的理由或意见
  • 如需修改评论,传入已存在的 comment_id
  • 如需回复评论,传入 parent_comment_id 指定父评论

代码示例

csharp
// 使用租户权限创建审批评论
public class ApprovalCommentService
{
    private readonly IFeishuTenantV4ApprovalComments _commentsClient;

    public ApprovalCommentService(IFeishuTenantV4ApprovalComments commentsClient)
    {
        _commentsClient = commentsClient;
    }

    public async Task CreateCommentAsync()
    {
        var instanceId = "6A123516-FB88-470D-A428-9AF58B71B3C0";
        var userId = "ou_7dab8a3d3dfcd10xxx";

        var request = new CreateCommentRequest
        {
            Content = "这个审批需要尽快处理,@主管请查看",
            Mentions = new List<Mention>
            {
                new Mention
                {
                    Key = "@主管",
                    Id = "ou_8eab9b4e4egde21yyy"
                }
            }
        };

        var result = await _commentsClient.CreateCommentAsync(instanceId, userId, request);

        if (result?.Code == 0)
        {
            Console.WriteLine($"评论创建成功,ID: {result.Data?.CommentId}");
        }
    }
}

删除指定评论

函数签名

csharp
Task<FeishuApiResult<CommentOperationResult>?> DeleteCommentByIdAsync(
    [Path] string instance_id,
    [Path] string comment_id,
    [Query("user_id")] string user_id,
    [Query("user_id_type")] string? user_id_type = Consts.User_Id_Type,
    CancellationToken cancellationToken = default);

认证

租户令牌TenantAccessToken

参数

参数名必填类型描述
instance_idstring审批实例 Code,示例值:"6A123516-FB88-470D-A428-9AF58B71B3C0"
comment_idstring评论 ID,示例值:"7081516627711606803"
user_idstring用户 ID,ID 类型与 user_id_type 取值一致,示例值:"e5286g26"
user_id_typestring用户 ID 类型,默认:open_id
cancellationTokenCancellationToken取消操作令牌对象

响应

成功响应示例:

json
{
  "code": 0,
  "msg": "ok",
  "data": {
    "comment_id": "7081516627711606803",
    "delete_time": "2025-03-20T10:35:00+08:00"
  }
}

说明

  • 删除某审批实例下的一条评论或评论回复
  • 不包含审批同意、拒绝、转交等附加的理由或意见
  • 删除后在审批中心的审批实例内不再显示评论内容,而是显示"评论已删除"

代码示例

csharp
// 使用租户权限删除审批评论
public class ApprovalCommentService
{
    private readonly IFeishuTenantV4ApprovalComments _commentsClient;

    public ApprovalCommentService(IFeishuTenantV4ApprovalComments commentsClient)
    {
        _commentsClient = commentsClient;
    }

    public async Task DeleteCommentAsync()
    {
        var instanceId = "6A123516-FB88-470D-A428-9AF58B71B3C0";
        var commentId = "7081516627711606803";
        var userId = "ou_7dab8a3d3dfcd10xxx";

        var result = await _commentsClient.DeleteCommentByIdAsync(instanceId, commentId, userId);

        if (result?.Code == 0)
        {
            Console.WriteLine("评论删除成功");
        }
    }
}

清空全部评论

函数签名

csharp
Task<FeishuApiResult<CommentsRemoveResult>?> RemoveCommentsAsync(
    [Path] string instance_id,
    [Query("user_id")] string user_id,
    [Query("user_id_type")] string? user_id_type = Consts.User_Id_Type,
    CancellationToken cancellationToken = default);

认证

租户令牌TenantAccessToken

参数

参数名必填类型描述
instance_idstring审批实例 Code,示例值:"6A123516-FB88-470D-A428-9AF58B71B3C0"
user_idstring用户 ID,ID 类型与 user_id_type 取值一致,示例值:"e5286g26"
user_id_typestring用户 ID 类型,默认:open_id
cancellationTokenCancellationToken取消操作令牌对象

响应

成功响应示例:

json
{
  "code": 0,
  "msg": "ok",
  "data": {
    "removed_count": 5
  }
}

说明

  • 清空某审批实例下的全部评论与评论回复
  • 包括显示为已删除的评论

代码示例

csharp
// 使用租户权限清空审批实例的所有评论
public class ApprovalCommentService
{
    private readonly IFeishuTenantV4ApprovalComments _commentsClient;

    public ApprovalCommentService(IFeishuTenantV4ApprovalComments commentsClient)
    {
        _commentsClient = commentsClient;
    }

    public async Task RemoveAllCommentsAsync()
    {
        var instanceId = "6A123516-FB88-470D-A428-9AF58B71B3C0";
        var userId = "ou_7dab8a3d3dfcd10xxx";

        var result = await _commentsClient.RemoveCommentsAsync(instanceId, userId);

        if (result?.Code == 0)
        {
            Console.WriteLine($"已清空 {result.Data?.RemovedCount} 条评论");
        }
    }
}

获取评论分页列表

函数签名

csharp
Task<FeishuApiResult<CommentsPageListResult>?> GetCommentsPageListByIdAsync(
    [Path] string instance_id,
    [Query("user_id")] string user_id,
    [Query("page_size")] int page_size = Consts.PageSize,
    [Query("page_token")] string? page_token = null,
    [Query("user_id_type")] string? user_id_type = Consts.User_Id_Type,
    CancellationToken cancellationToken = default);

认证

租户令牌TenantAccessToken

参数

参数名必填类型描述
instance_idstring审批实例 Code,示例值:"6A123516-FB88-470D-A428-9AF58B71B3C0"
user_idstring用户 ID,ID 类型与 user_id_type 取值一致,示例值:"e5286g26"
page_sizeint分页大小,默认:10
page_tokenstring分页标记,第一次请求不填
user_id_typestring用户 ID 类型,默认:open_id
cancellationTokenCancellationToken取消操作令牌对象

响应

成功响应示例:

json
{
  "code": 0,
  "msg": "ok",
  "data": {
    "items": [
      {
        "comment_id": "7081516627711606803",
        "open_id": "ou_7dab8a3d3dfcd10xxx",
        "content": "这个审批需要尽快处理",
        "create_time": "2025-03-20T10:30:00+08:00",
        "parent_comment_id": "",
        "is_deleted": false
      },
      {
        "comment_id": "7081516627711606804",
        "open_id": "ou_8eab9b4e4egde21yyy",
        "content": "已处理",
        "create_time": "2025-03-20T10:35:00+08:00",
        "parent_comment_id": "7081516627711606803",
        "is_deleted": false
      }
    ],
    "page_token": "",
    "has_more": false
  }
}

说明

  • 根据审批实例 Code 获取某个审批实例下全部评论与评论回复
  • 不包含审批同意、拒绝、转交等附加的理由或意见

代码示例

csharp
// 使用租户权限获取审批实例的评论列表
public class ApprovalCommentService
{
    private readonly IFeishuTenantV4ApprovalComments _commentsClient;

    public ApprovalCommentService(IFeishuTenantV4ApprovalComments commentsClient)
    {
        _commentsClient = commentsClient;
    }

    public async Task GetCommentsAsync()
    {
        var instanceId = "6A123516-FB88-470D-A428-9AF58B71B3C0";
        var userId = "ou_7dab8a3d3dfcd10xxx";

        var result = await _commentsClient.GetCommentsPageListByIdAsync(
            instanceId,
            userId,
            page_size: 20);

        if (result?.Code == 0)
        {
            foreach (var comment in result.Data?.Items ?? new List<CommentItem>())
            {
                Console.WriteLine($"[{comment.CreateTime}] {comment.Content}");
            }
        }
    }
}