Google apps script 访问Team Drive中的文件和文件夹

Google apps script 访问Team Drive中的文件和文件夹,google-apps-script,google-drive-api,google-drive-shared-drive,Google Apps Script,Google Drive Api,Google Drive Shared Drive,我正在使用GoogleApps脚本和驱动器API的V2(我认为V3在脚本中还不可用)来自动化团队驱动器内部的文件创建。我想用脚本添加编辑器,但没有成功 我可以使用标准DriveApp方法中的FolderIterator访问团队驱动器和子文件夹 尝试1 function addUserToTeam(电子邮件、文件夹){ //打开团队驱动器并获取所有文件夹 var teamFolders=DriveApp.getFolderById('TEAMDRIVEIDSTRING').getFolders()

我正在使用GoogleApps脚本和驱动器API的V2(我认为V3在脚本中还不可用)来自动化团队驱动器内部的文件创建。我想用脚本添加编辑器,但没有成功

我可以使用标准
DriveApp
方法中的
FolderIterator
访问团队驱动器和子文件夹

尝试1

function addUserToTeam(电子邮件、文件夹){
//打开团队驱动器并获取所有文件夹
var teamFolders=DriveApp.getFolderById('TEAMDRIVEIDSTRING').getFolders();
var folders=[“folderIdToMatch”]//这可能包含多个文件夹
试一试{
//循环文件夹ID数组

对于(var i=0;i,经过更多的研究和挖掘,这里是针对具有类似用例的人的解决方案

  • 您可以访问整个团队驱动器中的文件或驱动器中的文件,但不能访问文件夹。这样做是为了防止不应有访问权限的人意外访问敏感信息目录

  • 要授予访问权限,
    supportsTeamDrives
    是请求正文中的一个可选参数,它接受一个
    boolean
    值。将其设置为
    true
    并传入API调用。下面是一个成功的函数

  • 实现我所描述的结果的唯一方法是使用多个团队驱动器,并根据某个事件授予用户访问权限。另一个选项是在项目期间将用户提升为完全权限(从编辑或查看),然后在完成时撤销

  • 将用户添加到团队驱动器 (这也适用于驱动器中的单个文件)

    //在启用了驱动器API的v2的情况下使用Google Apps脚本
    函数addToTeamDrive(){
    变量资源={
    “值”:电子邮件字符串,
    “类型”:“用户”,
    “角色”:“作者”
    }
    //如果您有多个团队驱动器,请循环并提供访问权限
    试一试{
    var TeamDrive=Drive.Teamdrives.list();
    对于(变量i=0;i
    经过更多的研究和挖掘,以下是针对具有类似用例的人员的解决方案

  • 您可以访问整个团队驱动器中的文件或驱动器中的文件,但不能访问文件夹。这样做是为了防止不应有访问权限的人意外访问敏感信息目录

  • 要授予访问权限,
    supportsTeamDrives
    是请求正文中的一个可选参数,它接受一个
    boolean
    值。将其设置为
    true
    并传入API调用。下面是一个成功的函数

  • 实现我所描述的结果的唯一方法是使用多个团队驱动器,并根据某个事件授予用户访问权限。另一个选项是在项目期间将用户提升为完全权限(从编辑或查看),然后在完成时撤销

  • 将用户添加到团队驱动器 (这也适用于驱动器中的单个文件)

    //在启用了驱动器API的v2的情况下使用Google Apps脚本
    函数addToTeamDrive(){
    变量资源={
    “值”:电子邮件字符串,
    “类型”:“用户”,
    “角色”:“作者”
    }
    //如果您有多个团队驱动器,请循环并提供访问权限
    试一试{
    var TeamDrive=Drive.Teamdrives.list();
    对于(变量i=0;i
    您可以访问,但有许多操作是无法执行的,如
    removeFile()
    getUrl()
    ,即使您具有完全访问权限。您仍然可以获得

    {error: "Exception: Cannot use this operation on a Team Drive item."}
    

    解决方法是在文件/文件夹上使用
    setTrashed()
    而不是
    removeFile()

    您可以访问,但有很多类似
    removeFile()
    getUrl()
    的操作,即使您具有完全访问权限,您仍然可以获得

    {error: "Exception: Cannot use this operation on a Team Drive item."}
    

    解决方法是使用
    setTrashed()
    而不是
    removeFile()
    在文件/文件夹上。

    你可以只在团队驱动中添加一个组并使用GAS管理该组吗?这似乎是最简单的处理方法。你可以只在团队驱动中添加一个组并使用GAS管理该组吗?这似乎是最简单的处理方法。关于这个问题-我想使用相同的方法,但我不知道如何使用GAS管理该组e能够合并我在工作表上的文件ID。我如何在“try{}…”问题中循环该文件ID?我想使用相同的方法,但我对如何合并我在工作表上的文件ID感到困惑。我如何在“try{}…”问题中循环该文件ID