【问题标题】:Getting 403 - Forbidden when Changing owner of Google Drive Folder using Service Account获取 403 - 使用服务帐户更改 Google Drive 文件夹的所有者时被禁止
【发布时间】:2019-05-15 11:56:33
【问题描述】:

我们正在使用 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]"}'

【问题讨论】:

    标签: google-drive-api


    【解决方案1】:

    禁止

    通常意味着您登录的用户自己无权执行您正在尝试执行的操作。因此,为了更改所有者,我怀疑您需要对该文件具有写入权限或成为文件本身的所有者。

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

    您可能还想检查您的身份验证范围。

    【讨论】:

    • 感谢您的回答。但是,我仅作为该文件夹的所有者执行操作。正如我所说,我可以使用相同的代码来更改驻留在同一文件夹中的特定文件的权限。但是,它不适用于文件夹。请注意,我拥有文件夹(父)级别的权限,而不是文件级别的权限。
    • 文件夹中的所有文件是否都已更新到这个新所有者?
    • 抱歉,没听懂。但是,是的,当我向文件夹添加新的贡献者(不是所有者)或查看者时,文件夹中的所有文件都会获得相同的权限。
    • 这对我来说是新闻上传文件的人是正常的文件所有者,无论文件放在哪个目录。我想自从我上次检查以来他们一定改变了一些东西。无论哪种方式,错误都是相同的禁止意味着您登录的用户无法更改权限,因为他们不是所有者
    • 我找到了原因。正如您在上面的问题中看到的那样,我设置了sendNotificationEmail=false。在更改 usergroup 的所有者时,不应将此设置为 false。但是,很奇怪google-drive-sdk 没有报告正确的错误信息。
    猜你喜欢
    • 1970-01-01
    • 2014-01-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-10-20
    • 2020-08-28
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多