Google Drive API转让所有权

时间:2015-06-23 08:11:12

标签: google-drive-api google-oauth

背景:

语言:Python Libs版本: oauth2client(1.4.6) apiclient(1.0.2)

脚本任务:

1 - 通过帐户“B”搜索与帐户“A”共享的文件

param['pageToken'] = page_token
param['maxResults'] = 1000
param['q'] = "not '%s' in owners and trashed = false" % (account_A_email)
files = service.files().list(**param).execute()

2 - 使用“SignedJwtAssertionCredentials”模拟帐户“B”并将帐户“A”设为所有者

new_permission = {}
new_permission['value'] = account_A_email
new_permission['type'] = 'user'
new_permission['role'] = 'owner'
service.permissions().insert(fileId=file_id, body=new_permission).execute()
# Note: I have tried service.permissions().update() but it did not work

问题:

新权限应用于任何文件后,该文件将显示在帐户“A”根文件夹以及原始位置。此行为类似于云端硬盘用户界面中的“添加到我的云端硬盘”。

知道如何停止“添加到我的云端硬盘”行为吗?

提前致谢,

1 个答案:

答案 0 :(得分:3)

好的,我做了以下工作,经过几个小时和一大杯咖啡后工作:)

而不是使用"导致问题":

service.permissions().insert(fileId=file_id, body=new_permission).execute()

使用以下内容:

param_perm['value'] = new_owner
param_perm['type'] = 'user'
param_perm['role'] = 'owner'
service.permissions().update(fileId=file_id,
                             permissionId=perm_id,
                             body=param_perm,
                             transferOwnership=True).execute()

我之前的试用版改变的是permissionId,它是"新所有者"权限ID 以前的所有者。