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

时间:2019-01-11 08:21:02

标签: python-3.x google-api google-oauth2 google-api-python-client

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

我关注this页。它说

创建凭据以使用Google Drive API

启用Google Drive API后,Google应将您带到项目的Google Drive API控制台。

点击创建凭据。

它将创建仅用于云端硬盘的凭据吗?我阅读了许多文档,官方文档,博客,教程等。我是该主题的初学者,因此也请提供一些详细信息,因为并非所有内容对我而言都是清楚的。

1 个答案:

答案 0 :(得分:2)

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

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

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

浏览器凭据

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

本机凭据

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

服务帐户凭据

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

注意

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

您将需要为每种API类型创建服务。

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