【问题标题】:Google Drive: How do I transfer ownership using the Python SDK?Google Drive:如何使用 Python SDK 转移所有权?
【发布时间】:2015-02-22 02:18:18
【问题描述】:

我设置了一个服务帐户来复制用户上传的文件。如何将所有权转移到其他电子邮件地址?

我有:

new_permission = {'value': 'me@example.com', 'type': 'user', 'role': 'owner', 'transferOwnership': True} # also tried "true" and "True"
r = service.permissions().update(fileId=id, permissionId=perm_id, body=new_permission).execute()

不会发生所有权转移,所有者仍然是我的服务帐号。

编辑:也没有发生错误;它只是不会改变所有者。

编辑#2:我也试过通过https://developers.google.com/drive/v2/reference/permissions/update 没有运气。我收到 200 响应,但所有者仍然是我的服务帐户,而不是“me@example.com”:

{
 "kind": "drive#permission",
 "etag": "\"xxxxxxx/xxxxxxx-x\"",
 "id": "xxxxxxxxxxx",
 "selfLink": "https://www.googleapis.com/drive/v2/files/myfileid/permissions/xxxxxx",
 "name": "myserviceaccount",
 "emailAddress": "myserviceaccount@developer.gserviceaccount.com",
 "domain": "developer.gserviceaccount.com",
 "role": "owner",
 "type": "user"
}

编辑#3: 我也尝试过“patch”方法...我得到与“update”方法相同的结果。

【问题讨论】:

  • 看起来您使用“transferOwnership”作为正文的一部分,而不是文档中提到的 url 参数的一部分:h ttps://www.googleapis.com/drive/v2 /files/{fileId}/permissions/{permissionId}?transferOwnership=true
  • transferOwnership 在“new_permission”字典中,所有其他查询参数都在其中。另外,我试过“试试看!” developers.google.com/drive/v2/reference/permissions/update 的部分发生了同样的问题......所以他们也一定做错了吗?
  • 当然不是,一定是你在这两个地方都做错了......如果url参数没问题,那么我猜你使用了你自己用户的权限ID和不是您要向其转让所有权的人的权限 ID。
  • @Gerardo:我使用的权限 ID 来自我的服务帐户。当我尝试使用“me@example.com”的权限 ID 时,我得到一个“403 Forbidden (Insufficient permissions for this file)”。 (我从developers.google.com/drive/v2/reference/permissions/获得了权限ID)

标签: python google-drive-api


【解决方案1】:

您是否尝试过使用https://developers.google.com/drive/v2/reference/permissions/insert 插入新所有者,然后按照您的方法更新所有权?

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2022-01-04
    • 2022-06-15
    • 2017-08-04
    • 1970-01-01
    • 1970-01-01
    • 2015-11-27
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多