Skip to content

云文档权限 - 租户令牌(IFeishuTenantV1DrivePermissions) ​

接口名称 ​

云文档权限(租户令牌) -(IFeishuTenantV1DrivePermissions)

功能描述 ​

提供以租户身份管理飞书云文档权限的能力。权限是指在云文档相关资源中,应用或用户对各类云文档资源,如文件夹、文档、电子表格、多维表格、知识库等的可阅读、可编辑、可管理等权限。支持增加/批量增加/更新/移除协作者权限、获取协作者列表、转移所有者、判断用户令牌、更新/获取权限设置、启用/刷新/停用文档密码等操作。适用于需要以应用身份管理云文档权限的业务场景,如自动化权限分配、权限审计等。

参考文档 ​

函数列表 ​

函数名称功能描述认证方式HTTP 方法接口文档
CreatePermissionMemberAsync增加协作者权限租户令牌POSTCreatePermissionMemberAsync
BatchCreatePermissionMemberAsync批量增加协作者权限租户令牌POSTBatchCreatePermissionMemberAsync
UpdatePermissionMemberAsync更新协作者权限租户令牌PUTUpdatePermissionMemberAsync
GetPermissionMemberAsync获取云文档协作者租户令牌GETGetPermissionMemberAsync
DeletePermissionMemberAsync移除云文档协作者权限租户令牌DELETEDeletePermissionMemberAsync
TransferOwnerPermissionMemberAsync转移云文档所有者租户令牌POSTTransferOwnerPermissionMemberAsync
GetAuthPermissionMemberAsync判断用户云文档权限租户令牌GETGetAuthPermissionMemberAsync
GetPermissionPublicV1Async获取云文档权限设置(v1 历史版本接口)租户令牌GETGetPermissionPublicV1Async
UpdatePermissionPublicV1Async更新云文档权限设置(v1 历史版本接口)租户令牌PATCHUpdatePermissionPublicV1Async
UpdatePermissionPublicAsync更新云文档权限设置(v2 新版接口)租户令牌PATCHUpdatePermissionPublicAsync
GetPermissionPublicAsync获取云文档权限设置(v2 新版接口)租户令牌GETGetPermissionPublicAsync
CreatePermissionPublicPasswordAsync启用云文档密码租户令牌POSTCreatePermissionPublicPasswordAsync
UpdatePermissionPublicPasswordAsync刷新云文档密码租户令牌PUTUpdatePermissionPublicPasswordAsync
DeletePermissionPublicPasswordAsync停用云文档密码租户令牌DELETEDeletePermissionPublicPasswordAsync

函数详细内容 ​

增加协作者权限 ​

函数签名:

csharp
Task<FeishuApiResult<PermissionMemberOopsResult>?> CreatePermissionMemberAsync(
    [Path] string token,
    [Query("type")] string type,
    [Body] CreatePermissionMemberRequest createPermissionMemberRequest,
    [Query("need_notification")] bool? need_notification = false,
    CancellationToken cancellationToken = default);

认证:租户令牌

参数:

参数名类型必填说明
tokenstring✅云文档的 token,示例值:doccnBKgoMyY5OMbUG6FioTXuBe
typestring✅云文档类型,可选值:doc、sheet、file、wiki、bitable、docx、folder、mindnote、minutes、slides,示例值:docx
createPermissionMemberRequestCreatePermissionMemberRequest✅增加协作者权限请求体
need_notificationbool?⚪添加权限后是否通知对方,默认值:false。仅当使用用户令牌调用时有效

响应:

json
{
  "code": 0,
  "msg": "success",
  "data": {
    "member_id": "ou_7dab8a3d3cdcc9da365777c7ad535d62",
    "perm": "full_access"
  }
}

说明:为指定云文档添加协作者,协作者可以是用户、群组、部门、用户组等。


批量增加协作者权限 ​

函数签名:

csharp
Task<FeishuApiResult<BatchCreatePermissionMemberResult>?> BatchCreatePermissionMemberAsync(
    [Path] string token,
    [Query("type")] string type,
    [Body] BatchCreatePermissionMemberRequest batchCreatePermissionMemberRequest,
    [Query("need_notification")] bool? need_notification = false,
    CancellationToken cancellationToken = default);

认证:租户令牌

参数:

参数名类型必填说明
tokenstring✅云文档的 token,示例值:doccnBKgoMyY5OMbUG6FioTXuBe
typestring✅云文档类型,可选值:doc、sheet、file、wiki、bitable、docx、folder、mindnote、minutes、slides,示例值:docx
batchCreatePermissionMemberRequestBatchCreatePermissionMemberRequest✅批量增加协作者权限请求体
need_notificationbool?⚪添加权限后是否通知对方,默认值:false。仅当使用用户令牌调用时有效

响应:

json
{
  "code": 0,
  "msg": "success",
  "data": {
    "members": [
      {
        "member_id": "ou_7dab8a3d3cdcc9da365777c7ad535d62",
        "perm": "full_access"
      }
    ]
  }
}

说明:为指定云文档批量添加多个协作者,协作者可以是用户、群组、部门、用户组等。


更新协作者权限 ​

函数签名:

csharp
Task<FeishuApiResult<PermissionMemberOopsResult>?> UpdatePermissionMemberAsync(
    [Path] string token,
    [Path] string member_id,
    [Query("type")] string type,
    [Body] UpdatePermissionMemberRequest updatePermissionMemberRequest,
    [Query("need_notification")] bool? need_notification = false,
    CancellationToken cancellationToken = default);

认证:租户令牌

参数:

参数名类型必填说明
tokenstring✅云文档的 token,示例值:doccnBKgoMyY5OMbUG6FioTXuBe
member_idstring✅协作者 ID,示例值:ou_7dab8a3d3cdcc9da365777c7ad535d62
typestring✅云文档类型,可选值:doc、sheet、file、wiki、bitable、docx、folder、mindnote、minutes、slides,示例值:docx
updatePermissionMemberRequestUpdatePermissionMemberRequest✅更新协作者权限成员请求模型
need_notificationbool?⚪添加权限后是否通知对方,默认值:false。仅当使用用户令牌调用时有效

响应:

json
{
  "code": 0,
  "msg": "success",
  "data": {
    "member_id": "ou_7dab8a3d3cdcc9da365777c7ad535d62",
    "perm": "edit"
  }
}

说明:更新指定云文档协作者的权限。


获取云文档协作者 ​

函数签名:

csharp
Task<FeishuApiResult<GetPermissionMemberResult>?> GetPermissionMemberAsync(
    [Path] string token,
    [Query("type")] string type,
    [Query("fields")] string? fields = null,
    [Query("perm_type")] string? perm_type = null,
    CancellationToken cancellationToken = default);

认证:租户令牌

参数:

参数名类型必填说明
tokenstring✅云文档的 token,示例值:doccnBKgoMyY5OMbUG6FioTXuBe
typestring✅云文档类型,可选值:doc、sheet、file、wiki、bitable、docx、folder、mindnote、minutes、slides,示例值:docx
fieldsstring?⚪指定返回的协作者字段信息,支持 name、type、avatar、external_label,可使用 * 返回所有字段,使用 , 分隔多个字段,示例值:*
perm_typestring?⚪协作者的权限角色类型,仅知识库文档有效。可选值:container(当前页面及子页面)、single_page(仅当前页面),示例值:container

响应:

json
{
  "code": 0,
  "msg": "success",
  "data": {
    "members": [
      {
        "member_id": "ou_7dab8a3d3cdcc9da365777c7ad535d62",
        "name": "张三",
        "perm": "full_access",
        "type": "user"
      }
    ]
  }
}

说明:获取指定云文档的协作者,支持查询人、群、组织架构、用户组、知识库成员五种类型的协作者。


移除云文档协作者权限 ​

函数签名:

csharp
Task<FeishuNullDataApiResult?> DeletePermissionMemberAsync(
    [Path] string token,
    [Path] string member_id,
    [Query("type")] string type,
    [Body] DeletePermissionMemberRequest deletePermissionMemberRequest,
    [Query("member_type")] string member_type = Consts.User_Id_Type,
    CancellationToken cancellationToken = default);

认证:租户令牌

参数:

参数名类型必填说明
tokenstring✅云文档的 token,示例值:doccnBKgoMyY5OMbUG6FioTXuBe
member_idstring✅协作者 ID,示例值:ou_7dab8a3d3cdcc9da365777c7ad535d62
typestring✅云文档类型,可选值:doc、sheet、file、wiki、bitable、docx、folder、mindnote、minutes、slides,示例值:docx
deletePermissionMemberRequestDeletePermissionMemberRequest✅删除云文档协作者请求体
member_typestring⚪协作者 ID 类型,可选值:email、openid、openchat、opendepartmentid、userid、unionid、groupid、wikispaceid,示例值:openid

响应:

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

说明:通过云文档 token 和协作者 ID 移除指定云文档协作者的权限。


转移云文档所有者 ​

函数签名:

csharp
Task<FeishuNullDataApiResult?> TransferOwnerPermissionMemberAsync(
    [Path] string token,
    [Query("type")] string type,
    [Body] TransferOwnerPermissionMemberRequest transferOwnerPermissionMemberRequest,
    [Query("need_notification")] bool? need_notification = false,
    [Query("remove_old_owner")] bool? remove_old_owner = false,
    [Query("stay_put")] bool? stay_put = false,
    [Query("old_owner_perm")] string? old_owner_perm = "full_access",
    CancellationToken cancellationToken = default);

认证:租户令牌

参数:

参数名类型必填说明
tokenstring✅云文档的 token,示例值:doccnBKgoMyY5OMbUG6FioTXuBe
typestring✅云文档类型,可选值:doc、sheet、file、wiki、bitable、docx、folder、mindnote、minutes、slides,示例值:docx
transferOwnerPermissionMemberRequestTransferOwnerPermissionMemberRequest✅转移云文档所有者请求体
need_notificationbool?⚪转移后是否通知对方,默认值:false
remove_old_ownerbool?⚪转移后是否移除原所有者权限,默认值:false
stay_putbool?⚪个人文件夹下的云文档是否留在原位置,默认值:false。仅当云文档在个人文件夹下时参数生效
old_owner_permstring?⚪为原所有者保留的权限,可选值:view、edit、full_access,默认值:full_access。仅当 remove_old_owner 为 false 时生效

响应:

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

说明:转移指定云文档的所有者。


判断用户云文档权限 ​

函数签名:

csharp
Task<FeishuApiResult<GetAuthPermissionMemberResult>?> GetAuthPermissionMemberAsync(
    [Path] string token,
    [Query("type")] string type,
    [Query("action")] string action,
    CancellationToken cancellationToken = default);

认证:租户令牌

参数:

参数名类型必填说明
tokenstring✅云文档的 token,示例值:doccnBKgoMyY5OMbUG6FioTXuBe
typestring✅云文档类型,可选值:doc、sheet、file、wiki、bitable、docx、folder、mindnote、minutes、slides,示例值:docx
actionstring✅需要判断的权限,可选值:view(阅读)、edit(编辑)、share(分享)、comment(评论)、export(导出)、copy(拷贝)、print(打印)、manage_public(管理权限设置),示例值:view

响应:

json
{
  "code": 0,
  "msg": "success",
  "data": {
    "is_allowed": true
  }
}

说明:判断当前请求的应用或用户是否具有指定云文档的指定权限。


获取云文档权限设置(v1 历史版本接口) ​

函数签名:

csharp
Task<FeishuApiResult<PermissionPublicV1Result>?> GetPermissionPublicV1Async(
      [Path] string token,
      [Query("type")] string type,
      CancellationToken cancellationToken = default);

认证:租户令牌

参数:

参数名类型必填说明
tokenstring✅云文档的 token,示例值:doccnBKgoMyY5OMbUG6FioTXuBe
typestring✅云文档类型,可选值:doc、sheet、file、wiki、bitable、docx、mindnote、minutes、slides,示例值:doc(不含 folder)

响应:

json
{
  "code": 0,
  "msg": "success",
  "data": {
    "permission_public": {
      "external_access": true,
      "security_entity": "anyone_can_view",
      "comment_entity": "anyone_can_view",
      "share_entity": "anyone",
      "link_share_entity": "tenant_readable",
      "invite_external": true,
      "lock_switch": false
    }
  }
}

说明:

  • 获取指定云文档的权限设置(GET /open-apis/drive/v1/permissions/{token}/public),返回 PermissionPublicV1Result,data.permission_public 为权限设置对象,字段:
    • external_access(bool?):是否允许内容被分享到组织外
    • security_entity(string?):谁可以创建副本、打印、下载,可选值 anyone_can_view / anyone_can_edit / only_full_access
    • comment_entity(string?):谁可以评论,可选值 anyone_can_view / anyone_can_edit
    • share_entity(string?):谁可以添加和管理协作者,可选值 anyone / same_tenant / only_full_access
    • link_share_entity(string?):链接分享设置,可选值 tenant_readable / tenant_editable / anyone_readable / anyone_editable / closed
    • invite_external(bool?):是否允许非「可管理权限」的人分享到组织外(仅 share_entity 为 same_tenant 时有效)
    • lock_switch(bool?):节点是否已加锁,加锁后不再继承父级页面的权限设置
  • v1/v2 区分:本接口为历史版本接口(drive/v1),推荐使用新版接口 GetPermissionPublicAsync(GET /open-apis/drive/v2/permissions/{token}/public,返回 PermissionPublicResult)。二者仅版本与返回类型不同,勿混淆。
  • 文档类型 type 的可选值与 v2 版本不同:v1 不支持 folder。

代码示例:

csharp
var result = await _permissionsClient.GetPermissionPublicV1Async(
    token: "doccnBKgoMyY5OMbUG6FioTXuBe", type: "docx");

var settings = result?.Data?.PermissionPublic;
if (settings != null)
{
    Console.WriteLine($"链接分享:{settings.LinkShareEntity},组织外分享:{settings.ExternalAccess}");
}

更新云文档权限设置(v1 历史版本接口) ​

函数签名:

csharp
Task<FeishuApiResult<PermissionPublicV1Result>?> UpdatePermissionPublicV1Async(
       [Path] string token,
       [Query("type")] string type,
       [Body] UpdateDrivePermissionsV1Request updateDrivePermissionsV1Request,
       CancellationToken cancellationToken = default);

认证:租户令牌

参数:

参数名类型必填说明
tokenstring✅云文档的 token,示例值:doccnBKgoMyY5OMbUG6FioTXuBe
typestring✅云文档类型,可选值:doc、sheet、file、wiki、bitable、docx、mindnote、minutes、slides,示例值:doc(不含 folder)
updateDrivePermissionsV1RequestUpdateDrivePermissionsV1Request✅更新云文档权限设置(v1)的请求体,字段见下
├─ ExternalAccessbool?⚪是否允许内容被分享到组织外,可选值:true/false(wiki 类型不支持传入)
├─ SecurityEntitystring?⚪谁可以创建副本、打印、下载:anyone_can_view / anyone_can_edit / only_full_access
├─ CommentEntitystring?⚪谁可以评论:anyone_can_view / anyone_can_edit
├─ ShareEntitystring?⚪谁可以添加和管理协作者:anyone / same_tenant / only_full_access(wiki 类型不支持传入)
├─ LinkShareEntitystring?⚪链接分享设置:tenant_readable / tenant_editable / anyone_readable / anyone_editable / closed(wiki 类型不支持传入)
├─ InviteExternalbool?⚪是否允许非「可管理权限」的人分享到组织外,可选值:true/false(wiki 类型不支持传入)

响应:

json
{
  "code": 0,
  "msg": "success",
  "data": {
    "permission_public": {
      "external_access": true,
      "security_entity": "anyone_can_view",
      "comment_entity": "anyone_can_view",
      "share_entity": "anyone",
      "link_share_entity": "tenant_readable",
      "invite_external": true,
      "lock_switch": false
    }
  }
}

说明:

  • 更新指定云文档的权限设置(PATCH /open-apis/drive/v1/permissions/{token}/public),请求体为 UpdateDrivePermissionsV1Request,返回更新后的设置 PermissionPublicV1Result(未更新的字段不返回)。
  • v1/v2 区分:本接口为历史版本接口(drive/v1),推荐使用新版接口 UpdatePermissionPublicAsync(PATCH /open-apis/drive/v2/permissions/{token}/public,请求体为 UpdateDrivePermissionsRequest,返回 PermissionPublicResult)。二者路径版本、请求体与返回类型均不同,勿混淆。
  • 与 v2 不同,v1 请求体(UpdateDrivePermissionsV1Request)不含 lock_switch,且 type 不支持 folder。

代码示例:

csharp
var request = new UpdateDrivePermissionsV1Request
{
    ExternalAccess = true,
    LinkShareEntity = "tenant_readable",
    ShareEntity = "anyone"
};

var result = await _permissionsClient.UpdatePermissionPublicV1Async(
    token: "doccnBKgoMyY5OMbUG6FioTXuBe", type: "docx", updateDrivePermissionsV1Request: request);

更新云文档权限设置 ​

函数签名:

csharp
Task<FeishuApiResult<PermissionPublicResult>?> UpdatePermissionPublicAsync(
    [Path] string token,
    [Query("type")] string type,
    [Body] UpdateDrivePermissionsRequest updateDrivePermissionsRequest,
    CancellationToken cancellationToken = default);

认证:租户令牌

参数:

参数名类型必填说明
tokenstring✅云文档的 token,示例值:doccnBKgoMyY5OMbUG6FioTXuBe
typestring✅云文档类型,可选值:doc、sheet、file、wiki、bitable、docx、folder、mindnote、minutes、slides,示例值:docx
updateDrivePermissionsRequestUpdateDrivePermissionsRequest✅更新云文档权限设置的请求体

响应:

json
{
  "code": 0,
  "msg": "success",
  "data": {
    "external_access_entity": "open",
    "security_entity": "anyone_can_view",
    "comment_entity": "anyone_can_view",
    "share_entity": "anyone",
    "link_share_entity": "anyone_readable",
    "invite_external": false,
    "manage_collaborator_entity": "collaborator_full_access"
  }
}

说明:更新指定云文档的权限设置,包括是否允许内容被分享到组织外、谁可以查看、添加、移除协作者、谁可以复制内容等设置。本接口为新版接口(drive/v2),请求体为 UpdateDrivePermissionsRequest;历史版本接口(drive/v1,请求体为 UpdateDrivePermissionsV1Request)为 UpdatePermissionPublicV1Async,二者勿混淆。


获取云文档权限设置 ​

函数签名:

csharp
Task<FeishuApiResult<PermissionPublicResult>?> GetPermissionPublicAsync(
    [Path] string token,
    [Query("type")] string type,
    CancellationToken cancellationToken = default);

认证:租户令牌

参数:

参数名类型必填说明
tokenstring✅云文档的 token,示例值:doccnBKgoMyY5OMbUG6FioTXuBe
typestring✅云文档类型,可选值:doc、sheet、file、wiki、bitable、docx、folder、mindnote、minutes、slides,示例值:docx

响应:

json
{
  "code": 0,
  "msg": "success",
  "data": {
    "external_access_entity": "open",
    "security_entity": "anyone_can_view",
    "comment_entity": "anyone_can_view",
    "share_entity": "anyone",
    "link_share_entity": "anyone_readable",
    "invite_external": false,
    "manage_collaborator_entity": "collaborator_full_access"
  }
}

说明:获取指定云文档的权限设置,包括是否允许内容被分享到组织外、谁可以查看、添加、移除协作者、谁可以复制内容等设置。本接口为新版接口(drive/v2),返回 PermissionPublicResult;历史版本接口(drive/v1,返回 PermissionPublicV1Result)为 GetPermissionPublicV1Async,二者勿混淆。


启用云文档密码 ​

函数签名:

csharp
Task<FeishuApiResult<PermissionsPasswordResult>?> CreatePermissionPublicPasswordAsync(
    [Path] string token,
    [Query("type")] string type,
    CancellationToken cancellationToken = default);

认证:租户令牌

参数:

参数名类型必填说明
tokenstring✅云文档的 token,示例值:doccnBKgoMyY5OMbUG6FioTXuBe
typestring✅云文档类型,可选值:doc、sheet、file、wiki、bitable、docx、folder、mindnote、minutes、slides,示例值:docx

响应:

json
{
  "code": 0,
  "msg": "success",
  "data": {
    "password": "abcd1234"
  }
}

说明:启用指定云文档的密码。密码启用后,组织外用户需要密码访问,组织内用户无需密码可直接访问。


刷新云文档密码 ​

函数签名:

csharp
Task<FeishuApiResult<PermissionsPasswordResult>?> UpdatePermissionPublicPasswordAsync(
    [Path] string token,
    [Query("type")] string type,
    CancellationToken cancellationToken = default);

认证:租户令牌

参数:

参数名类型必填说明
tokenstring✅云文档的 token,示例值:doccnBKgoMyY5OMbUG6FioTXuBe
typestring✅云文档类型,可选值:doc、sheet、file、wiki、bitable、docx、folder、mindnote、minutes、slides,示例值:docx

响应:

json
{
  "code": 0,
  "msg": "success",
  "data": {
    "password": "efgh5678"
  }
}

说明:刷新指定云文档的密码。密码刷新后,旧密码将失效,并生成新密码。


停用云文档密码 ​

函数签名:

csharp
Task<FeishuNullDataApiResult?> DeletePermissionPublicPasswordAsync(
    [Path] string token,
    [Query("type")] string type,
    CancellationToken cancellationToken = default);

认证:租户令牌

参数:

参数名类型必填说明
tokenstring✅云文档的 token,示例值:doccnBKgoMyY5OMbUG6FioTXuBe
typestring✅云文档类型,可选值:doc、sheet、file、wiki、bitable、docx、folder、mindnote、minutes、slides,示例值:docx

响应:

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

说明:停用指定云文档的密码。密码停用后,组织外用户访问文档将无需输入密码。