Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/google-apps-script/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript &引用;“共享驱动器”;谷歌应用程序脚本中的支持_Javascript_Google Apps Script_Google Drive Api_Google Drive Shared Drive - Fatal编程技术网

Javascript &引用;“共享驱动器”;谷歌应用程序脚本中的支持

Javascript &引用;“共享驱动器”;谷歌应用程序脚本中的支持,javascript,google-apps-script,google-drive-api,google-drive-shared-drive,Javascript,Google Apps Script,Google Drive Api,Google Drive Shared Drive,我正在用GoogleApps脚本编写一个JavaScript工具来检查文档的一些属性,比如“所有链接是否有效”、“权限设置是否正确”等等。我正在使用中记录的API按ID查找文件、检查其权限、在Google Drive中定位文件等,但我发现“共享驱动器”与该API不太兼容 比如说, 对于共享驱动器的根文件夹,只返回“驱动器”而不是驱动器名称 即使mygroup@domain.com是共享驱动器文件夹的“管理器”。getAccess('mygroup@domain.com“)为无,而文件夹。get

我正在用GoogleApps脚本编写一个JavaScript工具来检查文档的一些属性,比如“所有链接是否有效”、“权限设置是否正确”等等。我正在使用中记录的API按ID查找文件、检查其权限、在Google Drive中定位文件等,但我发现“共享驱动器”与该API不太兼容

比如说,

  • 对于共享驱动器的根文件夹,只返回“驱动器”而不是驱动器名称
  • 即使
    mygroup@domain.com
    是共享驱动器文件夹的“管理器”。getAccess('mygroup@domain.com“)为无,而
    文件夹。getViewers()
    为空
  • 迭代器中不(始终)包括共享驱动器中的某些文件夹
特别是第二点现在对我来说是一个拦路虎,但我在这里错过了什么?我是否应该使用其他API,或者它只是一个我应该报告的bug?是否有一些文档说明了
驱动器的哪些功能可以与共享驱动器一起使用,哪些功能不能与共享驱动器一起使用?

使用而不是
DriveApp
  • 实际上,
    DriveApp
    范围有限,不支持共享驱动器
  • 但若您使用了
    高级驱动器服务
    ,yuo将能够在应用程序脚本中使用支持共享驱动器的所有方法
示例:

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});
}

这回答了你的问题吗?这是相关的,但我认为我遗漏的主要一点是:(1)是的,我不能使用DriveApp API与团队驱动器一起工作,(2)我可以从Google Apps脚本中使用DriveAPI v2,这两个脚本对于在链接中提问的用户来说似乎都是已知的。因此,我认为在这方面,这个问题并不完全是重复的,下面ziganotschka提供的答案为我提供了重要信息。我知道,我以前遇到过
Drive.Drives
,但我不明白,一旦启用了高级驱动服务,它也可以从谷歌应用程序脚本中使用,我以为这只是一个web API。因此,现在给定一个
GoogleAppsScript.Drive.File
我可以用类似
Drive.permissions.list(f.getId(),{supportsAllDrives:true})的东西检查权限。find((p)=>p.emailAddress=”mygroup@domain.com");。谢谢大家!@tgpfeiffer-请注意,为了将来的参考,不仅驱动器,而且所有高级服务都围绕着相应的RESTAPI,所以您可以互换使用它们