无法打开通过java google drive sdk共享的文件,除非用户先通过drive.google.com打开该文件

无法打开通过java google drive sdk共享的文件,除非用户先通过drive.google.com打开该文件,java,google-drive-api,Java,Google Drive Api,该用例是一个使用GoogleDrive作为驱动器的嵌入式编辑器。我想在用户不必与drive.google.com交互的情况下实现这一点。embedder调用my API来创建文件、添加权限等。一切都很好,除了: Drive.Builder(transport, jsonFactory, credential) .build().files().get(fileId).execute(); 返回null,除非文件已通过drive.g

该用例是一个使用GoogleDrive作为驱动器的嵌入式编辑器。我想在用户不必与drive.google.com交互的情况下实现这一点。embedder调用my API来创建文件、添加权限等。一切都很好,除了:

Drive.Builder(transport, jsonFactory, credential)
                                .build().files().get(fileId).execute();
返回
null
,除非文件已通过drive.google.com至少打开一次。无论我的应用程序是通过drive.google.com还是通过我的API打开文件,这都是完全相同的代码。凭证也一样


这是出于设计还是我遗漏了什么?

您正在使用
drive.file
范围,可能两个应用程序都无法访问该文件。查看谷歌。

是的,您的范围是正确的,谢谢。但是只有一个应用程序,它是做创建和打开的同一个应用程序。我正在尝试
drive.file
范围所述的内容:“每个文件访问应用程序创建或打开的文件”。应用程序尝试打开应用程序创建的文件,即使它试图为创建者以外的用户打开这些文件。为了涵盖我的用例,定义需要“…创建并打开…”,因为创建是不够的。但是,我宁愿看到我的用例包含在原始定义中,而不是新定义中;)