没有客户机密或新项目的Java Google Drive API

时间:2019-10-09 05:42:30

标签: java google-api google-drive-api credentials google-developers-console

为了开始使用Java中的Google驱动器,我必须

  1. 在我的Google驱动器中启用API
  2. 在那里创建新项目并下载客户端secrets.json文件
  3. 在我的项目文件夹中使用该文件并执行操作

但是,诸如WhatsApp之类的应用程序可以直接将聊天备份上传到Google驱动器,而无需要求用户执行上述任何步骤。

在我的应用程序中,我要求用户提供他/她的电子邮件地址,并且我必须使用该电子邮件地址来访问该人的Google云端硬盘。

我该怎么做?

2 个答案:

答案 0 :(得分:0)

是什么让您认为Whatsapp之类的应用程序没有做到这一点?使用Google api的唯一方法是在Google中注册您的应用程序,以便google知道哪些应用程序正在访问其api,如果您开始向其发送垃圾邮件,则可以将其关闭。因此,Whatsapp如果他们可以写到Google云端硬盘,则拥有Google客户端。

您无法再通过Google API使用客户端登录,该客户端登录已于2015年关闭,因此从您的用户那里请求电子邮件和密码将不会起作用。您需要使用Oauth2对它们进行授权。

答案

  1. Google开发者控制台中的项目将您的应用程序标识为google,如果没有它,您将无法使用google api。

  2. 客户端机密用于Oauth2的混合授权方法。不使用客户端机密的唯一方法是隐式登录,这是针对客户端语言(例如javascript)的。你不能避免。

  3. Use that file in my project folder and do stuff,您不会在项目中使用该文件来完成工作。您可以在项目中使用该文件来请求用户访问权限,并向Google标识您的应用程序。

  4. 您的用户授权您的应用程序使用Oauth2访问其Google云端硬盘帐户,仅允许您在您请求的用户授权的(范围)内使用该帐户。如果他们不授予您写访问权限,则无法写给他们的帐户。

答案 1 :(得分:0)

诸如WhatsApp之类的应用程序要求用户授予访问其Google云端硬盘的权限。未经用户许可,您无法访问用户的云端硬盘。

secrets.json文件只能在自己的应用程序[1]中使用。

在网络上,获得用户访问其驱动器权限的唯一方法是在JavaScript [2]中实现Google登录,这将提示同意屏幕,要求用户访问其驱动器权限(您可以设置只读范围)。对于手机,您还可以实施Google登录[3]。

[1] https://developers.google.com/api-client-library/dotnet/get_started#auth

[2] https://developers.google.com/identity/sign-in/web/sign-in

[3] https://developers.google.com/identity/choose-auth