与特定用户(不是Teamdrive成员)以编程方式共享Teamdrive中的文件

时间:2019-03-14 20:43:22

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

我想使用Google Apps脚本与特定用户共享特定文件。该文件位于Teamdrive中,该用户不是Teamdrive的成员,也不应该是Teamdrive的成员。

据我所知,使用DriveApp在普通Drive中执行此操作的方法在Teamdrives中不起作用,因此我正在尝试使用Drive REST API。据我了解,这样做的语法是:

  Drive.Permissions.insert(
    {role: "reader",
     type: "user",
     value: USER_EMAIL
    },
    FILE_ID,
    {sendNotificationEmails:false,
     supportsTeamDrives:true,
     useDomainAdminAccess:true
    }
  )

这将导致显示一条错误消息:

  

对drive.permissions.insert的API调用失败,并显示以下错误:找不到团队驱动器:FILE_ID

当我用Teamdrive的ID替换FILE_ID时,它将用户设置为整个Teamdrive的成员。

如何指定要为其设置权限的文件,或更笼统地说,如何以编程方式做到这一点?

2 个答案:

答案 0 :(得分:0)

我认为TeamDrive的重点是,您不能只共享信息,可以看到信息,但信息不属于您。您也许可以使用脚本将其复制到自己的驱动器并共享?

答案 1 :(得分:0)

我遇到了完全相同的问题,但是当我添加liftIO参数时,它起作用了。 should be deprecated于2020年6月1日发布。
所以命令现在看起来像这样:

supportsTeamDrives:true