在Google Drive API中传输文件所有权



我正在尝试将文件所有权传输到电子邮件address。我发送第一个请求,

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) { 
      ...
  });

这将为该电子邮件address创建权限作者。之后,在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来更新权限。我使用了权限。我在这里遇到的问题是"用户对此文件没有足够的权限。"

我在这里要做的是将文件所有权转移到电子邮件address。我的代码怎么了?如何转移文件所有权?

您需要考虑文件的旧和新所有者。除非他们在相同的Google帐户域(例如foo@example.com而不是foo@gmail.com),否则您将无法转移所有权。尽管听起来可能不便,但如果允许这是一个明显的安全问题。

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

最新更新