📜  Google云端平台– G Suite API概述

📅  最后修改于: 2021-04-16 08:55:45             🧑  作者: Mango

你们中的许多人都知道如何使用Gmail,Google云端硬盘和文档,这很棒。但是您也可以对它们进行编码吗?在本文中,我们旨在学习G Suite作为另一种工具,使您能够对非常了解的那些应用进行编码。

生产力工具,例如文字处理器,电子表格和Google Docs,表格和幻灯片形式的演示软件。添加Gmail,Google云端硬盘,日历,Google表单,环聊,您便拥有了G Suite核心组件。除此之外,付费客户还可以获得更多工具。尽管许多人都知道如何使用G Suite,但每个应用程序背后都有一个开发人员API ,这意味着您可以对Gmail,Google云端硬盘,日历,文档,表格和幻灯片进行编码。

G Suite是Google Cloud和Google Cloud Platform的一部分,您可以在云中租用它,例如计算,存储,网络,安全性,无服务器和机器学习工具。除了Cloud,Google还为用户提供其他应用程序,例如Search,Chrome,YouTube和Android。

Google以API的形式向我们提供了许多技术。我们可以使用它们来构建我们的下一个Web应用程序,移动应用程序,或者更可能是两者。 Google API活动的中心是您可以在console.cloud.google.com上访问的Google Cloud Platform控制台在这里,您可以管理应用程序,称为“项目”。它的大多数功能都适用于Google Cloud Platform,例如选择要使用的GCP工具,管理GCP帐单,管理其他项目开发人员以及选择您将使用的API。只有GCP用户需要使用第一对。

现在,您不必担心控制台中的计费,因为G Suite和GCP API的构建方式不同。 GCP服务是按使用付费的。这就是控制台中的计费组件。但是,无论是付费商务版还是免费的Gmail消费者版,使用G Suite API都无需支付订阅费,无需额外付费。

让我们看一下API Manager 。该开发者的控制台具有三个选项卡。仪表板用于查看应用程序上的统计信息,例如您获得的流量,所产生的错误数量以及对用户的响应速度。

第二个标签是启用或禁用要使用的API。默认情况下,所有G Suite API均未启用。因此,选择要打开或关闭的选项。

最后一个标签是创建凭据,例如API密钥和OAuth客户端。

您可以直接在console.developers.google.com上访问API管理器。要访问Google API,我们可以使用Google的客户端库。在这里,我们将以Python为例,但支持许多其他语言,并且可以下载所有客户端库。

有两种类型的API,简单的和授权的。简单的API用于访问公共数据,例如在Google Maps上搜索地点,查询YouTube视频或向Cloud Natural Language API发送句子。但是,如果您的代码需要访问用户或应用程序数据,则需要授权访问。对于用户数据,这是用户授权。对于应用数据,这就是服务帐户授权。两者基本相同,只是谁拥有该数据。

无论如何,要开始一个新项目,请转到API管理器并创建一个项目或重用现有的项目。

然后启用您要使用的G Suite或GCP API。

最后,创建适当的凭据以与Google API对话。

由于大多数G Suite数据归用户所有,因此您将创建OAuth 2客户端ID 。但是,如果您的数据归某个应用所有,或者您正在使用GCP服务,请改为创建服务帐户OAuth凭据。

无论哪种情况,都请在创建具有这些凭据的证书后下载JSON文件,因为您的代码需要此凭据才能与Google服务器通信。由于Google一直在努力改善图书馆。因此,尽管名称可能会更改,但结构将保持一致。这个例子在Python:

Python3
from googleapiclient import discovery
from httplib2 import Http
from oauth2client import
  
SCOPES = ... # at least one (atring or array of strings)
  
# 'storage.json' - where to store OAuth2 tokens from API
# 'client_secret.json' - OAuth2 client ID & secret
store = file.Storage('storage.json)
creds = store.get()
if not creds or creds.invalid:
    flow = client.flow_from_clientsecets('client_secret.json',SCOPES)
    creds = tools.run_flow(flow, store)
  
# create API service endpoint
SERVICE = discovery.build(API, VERSION, http=creds.authorize(HTTP()))


Python3
SCOPES = ... # at least one (atring or array of strings)


Python3
store = file.Storage('storage.json)
creds = store.get()
if not creds or creds.invalid:
    flow = client.flow_from_clientsecets('client_secret.json',SCOPES)
    creds = tools.run_flow(flow, store)


Python3
SERVICE = discovery.build(API, VERSION, http=creds.authorize(HTTP()))


但是,无论使用哪种语言,导入后都是您希望用户授予应用程序的权限范围。

Python3

SCOPES = ... # at least one (atring or array of strings)

接下来是安全代码。现在,授权的API需要有效的OAuth令牌,此块检查是否有它们。如果没有,它将把您的凭据和权限范围放在一起,并提示用户输入。每当您第一次运行应用程序时,就会看到OAuth权限框。

Python3

store = file.Storage('storage.json)
creds = store.get()
if not creds or creds.invalid:
    flow = client.flow_from_clientsecets('client_secret.json',SCOPES)
    creds = tools.run_flow(flow, store)

一旦您从用户那里获得OK,请创建一个端点以与API对话。服务帐户身份验证有点简单,因为您不必要求用户授予权限。数据的所有者(可能是您)已经足够信任您,可以为您创建服务帐户凭据。

Python3

SERVICE = discovery.build(API, VERSION, http=creds.authorize(HTTP()))

无论使用哪种方式,身份验证代码通常都保持不变。现在,唯一真正改变的是粗体的行,例如权限范围,以及您使用的API。

一切都发生在请求-响应工作流中。您的应用发出请求,确认凭据,返回服务请求和响应。这非常类似于客户端-服务器模型。