【发布时间】: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 企业用户。
-
如果您使用域范围的委派,那么您委派的用户需要有权创建共享驱动器。