【问题标题】:How to change the owner with Google Drive API v3 in Python?如何在 Python 中使用 Google Drive API v3 更改所有者?
【发布时间】:2020-03-20 13:10:25
【问题描述】:

我正在尝试通过更新权限来使用 Google Drive API 更改所有者:

permissions = drive_api.files().get(fileId=ssId, fields='permissions').execute()['permissions']

[{'displayName': 'account_name',
  'emailAddress': 'account_email',
  'id': 'id1',
  'role': 'writer',
  'type': 'user'},
 {'displayName': 'api_email',
  'emailAddress': 'api_email',
  'id': 'id2',
  'role': 'owner',
  'type': 'user'}]

我使用我的帐户权限 ID:

for permission in permissions:
  if permission['emailAddress'] == 'account_email':
    permissionId = permission['id']
    break

取尸体:

body = drive_api.permissions().get(fileId=ssId, permissionId=permissionId).execute()

{'id': 'id1',
 'kind': 'drive#permission',
 'role': 'writer',
 'type': 'user'}

换个角色:

body['role'] = 'owner'

然后进行更新:

drive_api.permissions().update(fileId=ssId, permissionId=permissionId, body=body, transferOwnership=True).execute()

但是得到一个错误:

资源主体包含不可直接写入的字段

【问题讨论】:

    标签: python google-drive-api


    【解决方案1】:

    我改变了这个东西,它开始工作了:

    body = {
        'id': permissionId,
        'role': 'owner',
    }
    

    Google 为这个可怕的 Drive API 文档感到羞耻

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-01-28
      • 1970-01-01
      • 1970-01-01
      • 2020-10-23
      • 2020-05-23
      • 1970-01-01
      相关资源
      最近更新 更多