如何通过 Google Drive .NET API v3 使用服务帐户访问 Team Drive

How to access Team Drive using service account with Google Drive .NET API v3

有谁知道应该进行哪些配置才能授予 Google 服务帐户访问已创建的团队驱动器的权限?

想法是在 .NET 后端应用程序中为 uploading/downloading 文件 to/from 在公司员工之间共享的团队驱动器使用服务帐户。例如,公司有其 company.com 域并在 Google 提供 name.surname@company.com 个用户帐户。还为员工提供了 Team Drive。其中一个帐户(不是管理员)用于创建服务帐户,目前已完成以下步骤:

我在文档中找不到任何关于如何授予服务帐户访问团队驱动器的内容,以便所有上传的 files/folders 都可以被有权访问团队驱动器的所有用户看到。非常感谢任何有用的 link 如何做到这一点。

现在,当我使用服务帐户创建文件夹或上传文件时,它会将它们放在仅属于服务帐户的私人云端硬盘中。

可能有一个可能的解决方法:将文件上传到服务帐户的私人驱动器并与用户共享(这不是要求的首选),但是,如果有人告诉我如何做到这一点,我会很开心的。

除问题中的步骤外,以下是根据 中的文档授予访问权限的步骤。

这些步骤需要一个具有服务和应用程序管理员角色的帐户。

  • 登录 Google 管理员并转到 应用 -> Google G Suite -> 云端硬盘和文档 -> 共享设置 子菜单和 select ON 从共享选项
  • 点击管理团队云端硬盘子菜单,然后点击您要授予访问权限的团队云端硬盘
  • 成员访问弹出窗口
  • 中单击添加成员
  • 输入服务帐户帐户 ID(电子邮件),选择访问级别(我选择完全),选中 跳过发送通知 然后点击 发送

假设身份验证部分设置正确,下面是获取服务帐户的团队驱动器的简单代码:

var teamDriveList = service.Teamdrives.List();
    
teamDriveList.Fields = "teamDrives(kind, id, name)";

var teamDrives = teamDriveList.Execute().TeamDrives;

if (teamDrives != null && teamDrives.Count > 0)
{
    foreach (var drive in teamDrives)
    {
        Console.WriteLine("{0} ({1})", drive.Name, drive.Id);
    }
}

有关 Fields 参数语法的更多信息 here