如何使用Python中的Google Drive API v3更改所有者?

2024-09-27 23:20:48 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在尝试通过更新权限来更改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()

但是得到一个错误:

The resource body includes fields which are not directly writable


Tags: apiidpermissionsexecuteemailtypebodyaccount

热门问题