使用谷歌驱动器API驱动程序上传文件的身份验证用于Java的API客户端库

问题描述:

我有基于spring + maven的Java应用程序,它具有其他Web服务。 对于这个剩下的web服务的每个调用,我想我的应用程序上传一个文件到我的谷歌驱动器帐户。我发现this使用谷歌驱动器API驱动程序上传文件的身份验证用于Java的API客户端库

如何在我的应用程序上传之前验证帐户?我需要Google OAuth2.0 for web application server application吗?或者quick start guide for java中的身份验证方法将适用于我的应用程序?我是OAuth的新手。

是否有任何关于谷歌驱动器身份验证和使用驱动器API的完整指南?

已安装的应用程序的谷歌Oauth2.0和谷歌Oauth2.0的Web应用程序服务器有什么区别?我应该什么时候使用每个?

如果您在快速入门中使用了身份验证方法,那么确实会有上传文件的身份验证请求。

提供有关在快速入门服务器应用和验证方法一点说明:

Server Application Authenticationservice accounts大多成对授权API请求,调用云API来访问的基于项目的数据,而不是用户特别是当特定数据。 Web服务器应用程序可以将服务帐户与用户授权一起使用。

此OAuth 2.0流程专门用于用户授权。它专为可以存储机密信息和维护状态的应用程序而设计。正确授权的Web服务器应用程序可以在用户与应用程序交互时或在用户离开应用程序之后访问API。

OAuth 2.0 for Installed App

虽然如Javascript(客户端)的一些OAuth 2.0验证被称为隐式授予流。它专为仅在用户在应用程序时访问API的应用程序而设计。这些应用程序无法存储机密信息。

在此流程中,您的应用将打开一个Google网址,该网址使用查询参数来标识您的应用以及该应用所需的API访问类型。您可以在当前浏览器窗口或弹出窗口中打开URL。用户可以通过Google进行身份验证并授予请求的权限。 Google会将用户重定向回您的应用。重定向包括访问令牌,您的应用程序将验证该访问令牌,然后用它来发出API请求。

希望这会有所帮助。

+0

这是否意味着,安装的应用程序的OAuth 2.0需要用户操作?如果我有Google Drive帐户,并且正如教程中所建议的那样,我正在使用client_secret.json运行我的应用程序,那么是否仍需要用户操作来进行身份验证并授予请求的权限?我的应用程序将在服务器上运行,并且其Web服务端点将在某些事件中触发,端点将处理该触发的请求并将文件上传到驱动器帐户。该应用程序除此之外别无其他。我们不希望通过涉及用户操作来实现这一点。只需要一个用户驱动器帐户。 – rsnhah

+0

我正在进行无头应用程序,并且我使用OAuth2.0作为服务帐户,因为它不需要用户同意。 https://developers.google.com/identity/protocols/OAuth2ServiceAccount – rsnhah