在 Google Drive API 中转移文件所有权

问题描述 投票:0回答:1

我正在尝试将文件所有权转移到特定的电子邮件地址。

我先发送此请求:

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

这将为该电子邮件地址创建一个权限写入器。 之后,在

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来更新权限。我使用了 requests.update 请求来转移所有权。我在这里遇到的问题是“用户对此文件没有足够的权限。”

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

javascript permissions google-drive-api
1个回答
1
投票

您需要考虑文件的新旧所有者。除非它们位于同一个 Google 帐户域中(例如,[电子邮件受保护],而不是 [电子邮件受保护]),否则您无法转让所有权。虽然这听起来可能不方便,但如果允许这样做,将会出现明显的安全问题。

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

© www.soinside.com 2019 - 2024. All rights reserved.