为Google脚本指定共享驱动器作用域

时间:2020-07-09 02:43:52

标签: google-apps-script google-drive-api

我与我工作的公司有一个Google共享驱动器(请注意,这与“与我共享”中提供的共享文件夹不同-没有人拥有共享驱动器,一个团队拥有/管理它)。

我希望共享驱动器中存在脚本,并且该脚本可以访问共享驱动器(即作用域在共享驱动器内)。据我所知,默认情况下,DriveApp具有创建者的“我的云端硬盘”的范围。因此,我可以创建一个保存在共享驱动器中的脚本,但是DriveApp仍然仅在“我的驱动器”范围内。

此代码

var rootFolder = DriveApp.getRootFolder();
console.log("Root Folder:", rootFolder.getName());

总是返回Root Folder: My Drive

是否可以指定DriveApp运行哪个驱动器?即得到上面的代码以返回Root Folder: Shared Drive Name

1 个答案:

答案 0 :(得分:1)

很遗憾,在当前阶段,DriveApp.getRootFolder()返回了自己的Google云端硬盘的根文件夹。因此,为了检索共享驱动器的根文件夹,我想提出以下脚本。

示例脚本:

如果共享的驱动器只有一个,那么以下示例脚本如何?使用此功能时,please enable Drive API at Advanced Google services。在此脚本中,使用驱动器API中的“驱动器:列表”方法检索共享驱动器的驱动器ID和名称。

var drive = Drive.Drives.list().items[0];
var rootFolder = DriveApp.getFolderById(drive.id);
console.log("Root Folder:", drive.name);

// When you want to retrieve the files, you can also use the following script.
var files = rootFolder.getFiles();
while (files.hasNext()) {
  console.log(files.next().getName())
}

注意:

  • 从2020年6月1日开始,像DriveApp这样的云端硬盘服务必须能够使用共享的云端硬盘。但是在当前阶段,似乎所有功能都无法用于共享驱动器。我相信这些可能会在将来的更新中得到解决。
  • 例如,在当前阶段,使用上述脚本时,不幸的是,rootFolder.getName()不是共享Drive的名称。在我的环境中,它是Drive。所以我用了drive.name

参考文献: