【发布时间】:2020-04-11 18:25:00
【问题描述】:
我的应用程序具有范围 drive.file、drive.readonly 和 drive.metadata.readonly。 使用https://github.com/googleapis/google-api-php-client v2.2.2
当以 Google Drive 用户身份验证时,它可以正常获取文件,但仅当这些文件由另一个用户(或同一用户)拥有时。
存储在共享云端硬盘(G Suite 商务版功能)并与用户共享的文件会导致 404 错误:
"error": {
"errors": [
{
"domain": "global",
"reason": "notFound",
"message": "File not found: 1gasqkgWcabla8sksT5FUtZGzlfIwGbc_aI4g2gl9bla.",
"locationType": "parameter",
"location": "fileId"
}
],
"code": 404,
"message": "File not found: 1gasqkgWcabla8sksT5FUtZGzlfIwGbc_aI4g2gl9bla."
}
我已验证该用户确实可以通过 Drive/Docs 等读取相关文件。
我已进入 API 控制台并检查了 Drive UI 集成下的“共享驱动器支持” - 这没有任何区别。 增加更广泛的“驱动”范围也无济于事。
【问题讨论】:
-
我刚刚尝试过,对我来说工作得很好,也许是共享问题。你是怎么分享的。尝试访问页面 drive.google.com/file/d/1gasqkgWcabla8sksT5FUtZGzlfIwGbc_aI4g2gl9bla。与您共享的帐户。还要确保您使用的 ID 是正确的。从official documentation 开始,您的 ID 不应包含点 (".")。
-
我已经确定该用户帐户可以打开相关文件。点只是错误信息的结尾,实际使用的 ID 没有点。该代码和流程适用于许多用户,直到有人注意到他们只能从个人驱动器打开文件。我现在已经重现并确认了这个问题,它似乎是共享驱动器特有的。
标签: google-drive-api