"Shared Drive" 在 Google Apps 脚本中的支持
"Shared Drive" support in Google Apps Script
我正在 Google Apps 脚本中编写一个 JavaScript 工具来检查文档的某些属性,例如 "are all links valid"、"are permissions set correctly" 等。我正在使用 https://developers.google.com/apps-script/reference/drive/drive-app 中记录的 API 通过 ID 查找文件、检查它们的权限、在 Google 驱动器中找到它们等,但我发现 "Shared Drives" 不与 API.
配合得不是很好
例如,
- 对于共享驱动器的根文件夹,
Folder.getName()
仅 returns "Drive" 而不是驱动器的名称,
- 即使
mygroup@domain.com
是共享驱动器的 "Manager",folder.getAccess('mygroup@domain.com')
是 NONE 并且 folder.getViewers()
是空的,
- 共享驱动器中的某些文件夹未(始终)包含在
DriveApp.getFolders()
迭代器中。
特别是第二点现在对我来说是一个障碍,但我在这里错过了什么?是否还有其他 API 我应该使用,或者它只是一个我应该报告的错误?是否有关于 Drive
API 的哪些功能我可以和不能与共享驱动器一起使用的一些文档?
使用Advanced Drive Service代替DriveApp
- 的确,
DriveApp
不支持共享驱动器,范围有限
- 但是如果你enable the
Advanced Drive Service
, yuo will be able to use in Apps Script all methods of the Drive API v2支持共享驱动器
样本:
function myFunction() {
var sharedDriveName = Drive.Drives.get("XXXXXXXXXXXXXXXXXXX").name;
//it is important to specify that the folder is located on a shared drive with {"supportsAllDrives": true}
var folderOnDriveName = Drive.Files.get("XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX",{"supportsAllDrives": true}).title;
var folderPermissions = Drive.Permissions.list("XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX",{"supportsAllDrives": true});
}
我正在 Google Apps 脚本中编写一个 JavaScript 工具来检查文档的某些属性,例如 "are all links valid"、"are permissions set correctly" 等。我正在使用 https://developers.google.com/apps-script/reference/drive/drive-app 中记录的 API 通过 ID 查找文件、检查它们的权限、在 Google 驱动器中找到它们等,但我发现 "Shared Drives" 不与 API.
配合得不是很好例如,
- 对于共享驱动器的根文件夹,
Folder.getName()
仅 returns "Drive" 而不是驱动器的名称, - 即使
mygroup@domain.com
是共享驱动器的 "Manager",folder.getAccess('mygroup@domain.com')
是 NONE 并且folder.getViewers()
是空的, - 共享驱动器中的某些文件夹未(始终)包含在
DriveApp.getFolders()
迭代器中。
特别是第二点现在对我来说是一个障碍,但我在这里错过了什么?是否还有其他 API 我应该使用,或者它只是一个我应该报告的错误?是否有关于 Drive
API 的哪些功能我可以和不能与共享驱动器一起使用的一些文档?
使用Advanced Drive Service代替DriveApp
- 的确,
DriveApp
不支持共享驱动器,范围有限 - 但是如果你enable the
Advanced Drive Service
, yuo will be able to use in Apps Script all methods of the Drive API v2支持共享驱动器
样本:
function myFunction() {
var sharedDriveName = Drive.Drives.get("XXXXXXXXXXXXXXXXXXX").name;
//it is important to specify that the folder is located on a shared drive with {"supportsAllDrives": true}
var folderOnDriveName = Drive.Files.get("XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX",{"supportsAllDrives": true}).title;
var folderPermissions = Drive.Permissions.list("XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX",{"supportsAllDrives": true});
}