作用域drive.file不一致(404在公共共享文件上)



使用此范围(var SCOPES='https://www.googleapis.com/auth/drive.file';(导致不一致。如果我试图获得一个可公开访问的文件(由任何人在另一个谷歌驱动器上共享,状态为"每个有链接的人都可以看到"(,我会得到404错误。见下文:

message: "File not found: 11Kf9Ch0f_Dbiw-g9BFjNz9C-qFOb1DMIucrt6J-Z-28."

使用其他范围https://www.googleapis.com/auth/drive有效,但这是一个谷歌不推广的受限范围。这对我来说毫无意义,因为即使使用简单的js请求也可以检索该文件,并且该文件是公开的。

var SCOPES = 'https://www.googleapis.com/auth/drive'; // works as expected
var SCOPES = 'https://www.googleapis.com/auth/drive.file';  // throws 404
function getFile(id) {
get_data = {'fileId': id,}
var res3 = gapi.client.drive.files.get(get_data).then(
function(res) {console.log(res);},
function(err) {console.log(err);}
);
}
getFile('11Kf9Ch0f_Dbiw-g9BFjNz9C-qFOb1DMIucrt6J-Z-28');

我被卡住了,因为我试图选择通用模板(比如我放在这里的ID(,并在我特定应用程序的文件空间和404中编辑它们。

请参阅以下链接,甚至可以通过匿名浏览器访问:https://docs.google.com/document/d/11Kf9Ch0f_Dbiw-g9BFjNz9C-qFOb1DMIucrt6J-Z-28/view

不一致在哪里?drive.file作用域专门用于由应用程序创建的文件,或由应用程序在驱动器UI中打开的文件。它的目的是防止你的应用程序看到你的用户拥有的更广泛的文件集合。例如,如果我有一个在你的谷歌硬盘中存储音频片段的应用程序,你不希望我的应用程序阅读你的文档和电子表格。

您的两种解决方案是使用drive作用域,但这通常被认为过于宽松,或者要求用户使用您的应用程序打开文件。

最新更新