Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/rest/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 在我的应用程序创建的文件夹中驱动API自己的文件_Java_Rest_Google Drive Api - Fatal编程技术网

Java 在我的应用程序创建的文件夹中驱动API自己的文件

Java 在我的应用程序创建的文件夹中驱动API自己的文件,java,rest,google-drive-api,Java,Rest,Google Drive Api,我正在寻找只获取用户谷歌硬盘所需访问权限的方法。我们有一个web应用程序,它链接到用户的驱动器,然后根据用户在驱动器中保存的数据,通过各种机器人平台向用户提供搜索工具,还能够根据我们的交互更新文件 使用drive scope,我们会提醒用户,我们可以无限访问他们的google drive,这也不是必需的。我们希望通过我们的应用程序创建一个文件夹,然后让用户复制/移动他们希望在该文件夹中搜索的所有内容。我很难列出这个文件夹,尽管它的作用域不是完全访问。是否可以更改文件夹上的某些属性 appData

我正在寻找只获取用户谷歌硬盘所需访问权限的方法。我们有一个web应用程序,它链接到用户的驱动器,然后根据用户在驱动器中保存的数据,通过各种机器人平台向用户提供搜索工具,还能够根据我们的交互更新文件

使用drive scope,我们会提醒用户,我们可以无限访问他们的google drive,这也不是必需的。我们希望通过我们的应用程序创建一个文件夹,然后让用户复制/移动他们希望在该文件夹中搜索的所有内容。我很难列出这个文件夹,尽管它的作用域不是完全访问。是否可以更改文件夹上的某些属性

appDataFolder对用户不可见,因此我们也不能使用它

不管怎样,我们是否只要求获得上述用例的许可,而不要求上帝访问他们的整个谷歌硬盘?我知道简短的答案是否定的,但我想我应该在放弃之前问一下。

答案: 您可以使用
drive.file
作用域仅授予应用程序对自己创建的文件和文件夹的访问权限,但应用程序有权访问的文件夹中的文件和文件夹不会继承此属性

更多信息: 如果只接受应用程序创建的文件,则根据驱动器API文档,驱动器.file范围:

按文件访问应用程序创建或打开的文件。文件授权是基于每个用户授予的,并在用户取消应用程序授权时撤销

可以使用。这是建议的限制范围,其URL为:

https://www.googleapis.com/auth/drive.file
如果文件不是由应用程序创建的,则用户必须与应用程序显式共享该文件才能访问该范围,例如使用“打开方式”菜单项并选择应用程序

或者,您可以在应用程序中使用一个服务帐户,用户可以与之共享文件夹-虽然这需要进一步实施,但服务帐户不需要使用驱动器作用域,因为它已经被授予访问权限

我知道这通常是个坏消息,但我希望这对你有帮助

参考资料:

它不允许您访问用户在我的应用程序创建的文件夹中创建的文件。仅限由我的应用程序创建的文件。所以我可以访问我们创建的文件夹,因为我们已经创建了。我们希望用户能够将他们希望我们处理的所有文件移动到应用程序外部的此文件夹,以便我们可以访问它们,但我们无法这样做。是的,在这种情况下,不幸的是,您的“否”断言是正确的-应用程序需要自己打开或创建文件才能这样做。我已经更新了我的答案。