我们使用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]"}'
发布于 2019-05-13 06:43:07
已禁用
通常意味着您登录的用户本身没有访问权限来执行您正在尝试执行的操作。因此,为了更改所有者,我怀疑您需要拥有对该文件的写访问权限,或者是该文件本身的所有者。
例如,我无法登录并更改您拥有的文件的所有者,我没有足够的权限访问该文件。
您可能还希望检查正在进行身份验证的作用域。
https://stackoverflow.com/questions/56106593
复制