获取403-使用服务帐户更改Google云端硬盘文件夹的所有者时被禁止

时间:2019-05-13 06:09:48

标签: google-drive-api

我们正在使用Google Drive API在我们的应用程序中执行某些与文件相关的操作。我们的用例之一是更改特定的文件夹所有者。

我已经返回下面的代码来执行此操作

Permission permission = new Permission();

permission.setRole(Permission.OWNER.getRole());
permission.setType(Permission.OWNER.getType());
permission.setEmailAddress(email);

googleDrive.permissions()
  .create(fileId, permission)
  .setSendNotificationEmail(false)
  .setTransferOwnership(true)
  .execute();

尝试更改所有者时,我们收到了Google的错误消息。

{
 "error": {
  "errors": [
   {
    "domain": "global",
    "reason": "forbidden",
    "message": "Forbidden"
   }
  ],
  "code": 403,
  "message": "Forbidden"
 }
}

我们已经检查了https://developers.google.com/drive/web/handle-errors此处列出的错误。但是,我没有发现上述细节有任何错误。

当我尝试使用相同的代码更改特定文件的所有权时,它工作正常。

有人对我缺少什么或可能是什么有任何想法吗?

此外,当我使用cURL更改文件夹所有权时,该方法同样有效

curl POST \
  'https://www.googleapis.com/drive/v3/files/[FILE_ID]/permissions?transferOwnership=true' \
  --header 'Authorization: Bearer [ACCESS_TOKEN]' \
  --header 'Accept: application/json' \
  --header 'Content-Type: application/json' \
  --data '{"role":"owner","type":"user","emailAddress":"[EMAIL]"}'

1 个答案:

答案 0 :(得分:0)

  

禁止

通常意味着您登录的用户本身无权执行您尝试做的事情。因此,要更改所有者,我会怀疑您需要对该文件具有写权限或成为文件本身的所有者。

例如,我无法登录并更改您拥有的文件的所有者,我没有足够的访问权限。

您可能还需要检查进行身份验证的范围。