我应该选择哪些凭据以及如何选择?

Which credentials should I choose and how?

我想在我的 Python 程序中使用 Google Drive API、Sheet API、Gmail API。

我关注 this 页面。它说

"创建凭据以使用 Google 驱动器 API

启用 Google 驱动器 API 后,Google 应该会将您带到项目的 Google 驱动器 API 控制台。

单击创建凭据。"

它会为仅使用云端硬盘创建凭据吗?我阅读了很多文档、官方、博客、教程等。我是这个主题的初学者,所以也请提供一些细节,因为对我来说并不是所有事情都清楚。

有四种类型的凭据,它们用于不同的目的,需要不同的代码才能使用。

  • 用于将托管在网站上的应用程序的浏览器凭据。用于访问私人用户数据。
  • 用于已安装应用程序的本机凭据(其他)。例如:一个 windows 桌面应用程序。用于访问私人用户数据。
  • 用于服务器到服务器通信的服务帐户凭据,其中开发人员可以访问将访问 API 的帐户。
  • 移动应用程序。

您需要做的第一件事是决定您将访问谁的数据。如果您希望访问用户数据,那么您将需要使用 OAuth2 并请求用户访问数据的权限。如果您使用的是静态驱动器帐户,并且只有该帐户和您个人有权设置它,您可以使用服务帐户。

浏览器凭据

使用 OAuth2 请求用户访问其数据的权限。响应将返回到一个网站。 web app sample

本机凭据

使用 OAuth2 请求用户访问其数据的权限。响应将返回到发送它的主机。 installed app

服务帐户凭据

服务帐户是虚拟用户,我们作为开发人员可以使用它来预授权用户访问。此方法不需要用户登录或同意。 service account

备注

您可能只需要创建一种凭据类型。您需要在 Google Developer Console 中启用您打算使用的所有 API。 (Google Drive API, Sheet API, Gmail API) 你应该知道服务帐户不支持 gmail API 除非你有GSuite账号,可设置授权。

您需要为每个 API 类型创建一个服务。

drive = build('drive', 'v2', credentials=credentials)
sheets = build('sheets', 'v2', credentials=credentials)
gmail = build('gmail', 'v2', credentials=credentials)