You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何通过Apps Script获取Google共享云端硬盘的文件权限列表?

问题描述

尝试获取Google共享云端硬盘中文件夹与文件的权限,目前仅能获取根共享云端硬盘的权限列表,但对其中任意文件或文件夹ID运行脚本时会报错。

相关信息

  • 使用Google Workspace Business Plus订阅
  • 本人是域超级管理员,有权访问该共享云端硬盘内的文件,且作为域管理员应拥有所有文件的访问权限
  • 通过Apps Script网页IDE调用脚本,运行在本人授权范围内,本人是脚本所有者,脚本存储在个人云端硬盘中

脚本代码

function getPermissions_(driveFileID, sharedDriveSupport){
  var thisDrivePermissions = Drive.Permissions.list(
    driveFileID,
    {
      useDomainAdminAccess: USE_DOMAIN_ADMIN_ACCESS,
      supportsAllDrives: sharedDriveSupport
    } 
  );
  return thisDrivePermissions;
}

报错信息

GoogleJsonResponseException: API call to drive.permissions.list failed with error: Shared drive not found: xxxxxxxx
GoogleJsonResponseException: API call to drive.permissions.list failed with error: File not found:
解决方案

针对共享云端硬盘内文件/文件夹的权限获取问题,可通过以下调整修复:

  1. 确认参数传递准确性

    • 调用getPermissions_时,必须将sharedDriveSupport参数传入true,共享云端硬盘操作强制要求开启该支持选项。
    • 检查driveFileID是否为目标文件/文件夹的正确ID,避免混淆根共享盘ID与内部资源ID。
  2. 补充共享盘ID参数
    共享云端硬盘内的资源需要明确指定所在的共享盘ID,修改后的代码如下:

    function getPermissions_(driveFileID, sharedDriveID){
      var thisDrivePermissions = Drive.Permissions.list(
        driveFileID,
        {
          useDomainAdminAccess: true,
          supportsAllDrives: true,
          driveId: sharedDriveID // 指定资源所属的共享云端硬盘ID
        } 
      );
      return thisDrivePermissions;
    }
    

    调用时需同时传入目标文件/文件夹ID,以及该资源所在的共享云端硬盘ID。

  3. 验证API权限配置

    • 在Apps Script编辑器中,依次点击「扩展程序」→「Apps Script API」,确认API已启用。
    • 检查脚本OAuth权限范围,确保包含https://www.googleapis.com/auth/drive或https://www.googleapis.com/auth/drive.readonly(按需选择),权限不足时重新授权脚本。
  4. 处理权限继承场景
    若需获取包含继承权限在内的所有有效权限,可在参数中添加includePermissionsForView: 'published',该参数仅对特定视图类型生效,需结合实际场景使用。

内容的提问来源于stack exchange,提问作者Mistic92

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.15 13:45:38