2017-04-06 174 views
0

有谁知道应该采用哪种配置来授予Google服务帐户访问已创建的团队云端硬盘的权限吗?如何使用Google Drive .NET API的服务帐户访问团队云端硬盘

这个想法是在.NET后端应用程序中使用一个服务帐户,用于从公司员工之间共享的Team Drive上载/下载文件。例如,公司有其company.com域,并在Google上提供[email protected]用户帐户。还有一个员工团队驱动。其中一个帐户(而不是管理)的用于创建服务帐户,到目前为止,这些步骤完成:

  • 创建了项目的组织在谷歌云平台
  • 启用谷歌云端硬盘API
  • 创建服务帐户
  • 创建用于
  • 如上所述
  • 分配编辑/在IAM标签
  • G启用套件域范围为团使用客户端ID的服务帐户所有者角色该服务帐户的关键使用G Suite管理员帐户的here

我在文档中找不到任何关于如何授予服务帐户访问团队云端硬盘的权限,以便所有上载的文件/文件夹都可以被所有有权访问团队云端硬盘的用户看到。有关如何做到这一点的任何有用的链接是非常感谢。

现在,当我使用服务帐户创建文件夹或上传文件时,它将它们放入只属于服务帐户的私人驱动器。

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

+0

我用不上所以不能帮助更多的则霖k您的文档https://developers.google.com/drive/v3/web/about-auth#perform_g_suite_domain-wide_delegation_of_authority https://developers.google.com/admin-sdk/reports/v1/guides/delegation您应该能够像添加任何其他用户一样添加服务帐户的电子邮件地址。 – DaImTo

+0

这有帮助,所以请将您的评论打包回答,以便我能够接受它。 – Ghukas

+0

你为什么不回答你发现的问题。你可以使用积分,我所做的就是向你展示文档 – DaImTo

回答

0

除了问题中的步骤之外,以下是基于comment的文档授予访问权限的步骤。

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

  • 登录到谷歌联系,去应用 - “G套房 - >硬碟和文件 - >共享设置子菜单,然后从共享选项中选择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

相关问题