2017-03-14 50 views
0

我正在尝试将文件所有权转让给电子邮件地址。 我送这个第一个请求,在Google Drive API中传输文件所有权

var body = { 
    'emailAddress': value, 
    'type': type, 
    'role': "writer" 
    }; 
    var request = gapi.client.drive.permissions.create({ 
    'fileId': fileId, 
    'transferOwnership': false, 
    'resource': body 
    }); 
    request.execute(function(resp) { 
     ... 
    }); 

这将创建为EMAILADDRESS权限作家。 之后,request.execute()回调里面, 我发送第二请求,

var request2 = gapi.client.drive.permissions.list({ 
     'fileId': fileId 
    }); 
    body.role = role; 
    request2.execute(function(resp2) { 
     var request3 = gapi.client.drive.permissions.update({ 
     'fileId': fileId, 
     'permissionId': resp2.permissions[1].id, //permission id of writer 
     'transferOwnership': true, 
     'resource': {'role':role, 'emailAddress': value} 
     }); 
     request3.execute(function(resp3) { 
     console.log(resp3); 
     }); 
    }); 

在上面的要求,我用permissions.list获取文件权限ID。 然后我使用权限ID来更新权限。我使用permissions.update请求transferOwnership。我在这里遇到的问题是“用户没有足够的权限来访问此文件”。

我在这里要做的是将文件所有权转移到电子邮件地址。我的代码有什么问题?我如何传输文件所有权?

回答

0

您需要考虑文件的新旧所有者。除非它们位于相同的Google帐户域中(例如,[email protected]而不是[email protected]),否则您不能转让所有权。虽然这听起来不方便,但如果允许的话,会有明显的安全问题。

如果它们在同一个域中,请确认您具有足够权限的范围。

+0

您能否提供一个使用域来传输文件所有权的示例? – JMA

+0

请看https://github.com/pinoyyid/googleDriveTransferOwnership/blob/master/src/couk/cleverthinking/tof/Main.java – pinoyyid