我正在研究仅获得对用户的Google驱动器的必需访问权的方法。我们有一个链接到用户驱动器的Web应用程序,然后我们根据各种驱动程序平台,根据用户保存在其驱动器中的数据,为用户提供搜索功能,并能够基于我们的交互来更新文件。

有了云端硬盘范围,我们会警告用户我们可以无限制地访问他们的Google云端硬盘,这也不是必需的。我们想通过我们的应用程序创建一个文件夹,然后让用户复制/移动他们想要在此文件夹中搜索的所有内容。我正在努力列出此文件夹,但具有除完全访问权限以外的任何其他范围。可能会更改文件夹的某些属性?

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

无论如何,我们只要求上述用例的许可,而不是上帝在其整个Google驱动器上的访问权限?我知道简短的回答是“不”,但我想我应该放弃之前先提出来。

最佳答案

回答:
您可以使用drive.file范围授予应用程序访问其自身创建的文件和文件夹的权限,尽管您的应用程序有权访问的文件夹内的文件和文件夹不会继承此属性。
更多信息:
如果只有应用程序创建的文件是可接受的,则根据Drive API文档[1]drive.file范围:

按文件访问由应用程序创建或打开的文件。文件授权是按用户授予的,当用户取消对应用的授权时,文件授权将被撤销。

可以使用。这是建议的限制范围,并且具有URL:

https://www.googleapis.com/auth/drive.file

如果该文件不是由应用程序创建的,则用户必须与该应用程序显式共享文件,该范围才可以访问该文件,例如,使用“打开方式”菜单项并选择您的应用程序。
或者,您可以在应用程序内使用一个服务帐户,用户可以与该帐户共享文件夹-尽管这需要进一步实施,但该服务帐户将无需使用Drive作用域,因为它已经被授予访问权限。
我知道这通常是个坏消息,但我希望这对您有帮助!
参考文献:

Authenticate your users | Google Drive API
Understanding service accounts

10-05 23:01
查看更多