2013-01-31 90 views
2

用例是一种使用Google Drive作为驱动器的嵌入式编辑器。我想在没有用户与drive.google.com互动的情况下这样做。嵌入器调用我的API创建文件,添加权限等,一切都很好,很正常,不同的是:除非通过drive.google.com的文件已经被打开至少一次无法打开通过java google-drive-sdk共享的文件,除非用户先通过drive.google.com打开该文件

Drive.Builder(transport, jsonFactory, credential) 
           .build().files().get(fileId).execute(); 

回报null。无论文件是通过drive.google.com还是通过我的API与我的应用打开,这都是完全相同的一段代码。凭证也是一样的。

这是设计还是我错过了什么?

回答

0

您正在使用drive.file范围,可能两个应用程序都无权访问该文件。请参阅Google documentation for scopes

+0

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