【问题标题】:Creating a new Shared Drive创建新的共享云端硬盘
【发布时间】:2020-05-25 22:17:26
【问题描述】:

当我运行下面的代码时,取自:https://developers.google.com/drive/api/v3/manage-shareddrives#python

# Create a new drive
        test_drive_metadata = {'name': 'Test Drive'}
        request_id = str(uuid.uuid4())
        test_drive = self.service.drives().create(
            body=test_drive_metadata,
            requestId=request_id,
            fields='id'
        ).execute()

我收到“用户对此文件没有足够的权限”。如果我创建文件、列出共享驱动器或其他任何内容,则不会发生这种情况。除了 ['https://www.googleapis.com/auth/drive'] 之外,没有其他必需的范围。

请注意,我使用的是服务帐户。是否不允许服务帐户创建共享驱动器?据我所知,如果是这种情况,任何地方都没有记录。

【问题讨论】:

  • 请注意,我还尝试从我的 G Suite 管理员以及应用程序中更新服务帐户 API 客户端访问权限,以包括 SCOPES = [ 'googleapis.com/auth/drive', '@ 987654324@', 'googleapis.com/auth/drive.appdata' ] 但这也不起作用...
  • 如果我执行以下操作,它确实有效:self.credentials = self.credentials.with_subject(')。那么没有办法使用服务帐户创建驱动器吗?
  • 服务帐户应该能够在其 on drive 帐户上创建共享驱动器。
  • @DaImTo 是的,我会这么认为。但是是否必须授予它任何特定的权限?现在,我必须继续开发,让服务帐户模仿 G Suite 企业用户。
  • 如果您使用域范围的委派,那么您委派的用户需要有权创建共享驱动器。

标签: python google-drive-api


【解决方案1】:

似乎没有任何关于此限制的明确文档,但考虑到服务帐户(不使用 DWD 和模拟)应该管理应用程序数据,而不是用户数据,它使得感觉它们不能用于管理与普通用户共享的数据。

此外,根据the official documentation 的说法,似乎建议不要使用服务帐户来管理共享文档:

使用服务帐户作为共同所有者创建许多共享文档可能会对性能产生严重影响。

另一方面,由于服务帐户与常规帐户相比具有某些限制(例如,日历中的事件创建),这可能是这些限制之一。

无论如何,为了确保确实如此,我建议您this Issue Tracker component报告此行为。

参考:

【讨论】:

猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-02-28
  • 1970-01-01
  • 1970-01-01
  • 2015-11-09
  • 1970-01-01
相关资源
最近更新 更多