python - 如何在 Python 中使用 Google Drive API v3 更改所有者?
问题描述
我正在尝试通过更新权限来使用 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()
但是得到一个错误:
资源主体包含不可直接写入的字段
解决方案
我改变了这个东西,它开始工作:
body = {
'id': permissionId,
'role': 'owner',
}
谷歌为这个可怕的 Drive API 文档感到羞耻
推荐阅读
- reactjs - 如何使类组件方法可以在 React 和 Typescript 中的组件之外访问?
- c# - 如何从表中添加一些列并在另一个中显示它们
- reactjs - 如何将 props 接管给其他组件?打字稿反应
- google-colaboratory - 上下文版本冲突错误,Google colab
- google-analytics - 在谷歌分析电子商务中记录事件数据问题
- c - “调试断言失败!表达式:_p!= nullptr”错误
- jquery - 在我的情况下,NPM 下载的包是否与本地文件相同?
- html - 浏览器呈现安全字体而不是本地
- c# - 如何修复设置报表参数时出现的这个rdlc本地报表处理错误
- html - div 在其他 div 中,相对于滚动向下移动(反应)