Google Cloud Platform 向开发者提供了一整套方便易用的 API,开发者可以通过这些 API 取得谷歌服务的数据并将其集成到自己的应用中。googleapis-promise 是一个 npm 包,它为开发者提供了一个方便的方式来访问这些 API。本文将介绍 googleapis-promise 的使用方法,包括安装与配置、调用接口以及 OAuth2.0 鉴权等内容。
安装与配置
googleapis-promise 是一个 npm 包,安装非常简单。我们可以使用以下命令安装:
npm install googleapis-promise --save
完成安装后,我们需要配置 Google Cloud Platform 的凭证,这里我们需要一份 Google Cloud Platform 的服务账号凭证,您可以在 Google Cloud Platform 上创建一个服务账号,该账号将可以访问 Google Cloud Platform 上的 API。服务账号需要授权至少一个 API,授权方式是通过生成一个 JSON 格式的文件,这个文件包含了服务账号的信息,以及授权 API 的信息。我们需要将这个 JSON 文件下载到本地,记作 service-account.json
。将该文件保存在当前工程目录下。
接下来我们需要修改 package.json
文件来添加一个名为 google
的配置节点,该节点包含我们的 Google Cloud Platform 的凭证信息:
{ "google": { "applicationCredentials": "service-account.json", "authorizedScopes": [ "https://www.googleapis.com/auth/calendar.readonly" ] } }
我们在这个文件中声明了 applicationCredentials
,值为之前下载的 JSON 文件的地址。我们也指定了我们需要的授权范围,这里我们授权了 https://www.googleapis.com/auth/calendar.readonly
,该范围允许我们读取谷歌日历数据。在我们完成这些配置后,googleapis-promise 就可以正常工作了。
调用 Google Cloud Platform 的 API
googleapis-promise 提供了一个简单而易用的方式来访问 Google Cloud Platform 的 API。我们首先需要构建一个 Google 资源对象。您可以参考 Google API 的文档来构建这个对象。例如,我们可以构建一个 calendar
资源对象如下:
const { google } = require('googleapis-promise'); async function run() { const calendar = await google.calendar('v3'); console.log(calendar); } run();
在我们完成了资源对象的构建后,我们就可以使用该资源对象来调用 Google Cloud Platform 的 API。例如,我们可以读取当前用户的 Google 日历列表并打印出来:
-- -------------------- ---- ------- ----- - ------ - - ------------------------------ ----- -------- ----- - ----- -------- - ----- ---------------------- ----- ---- - ----- ----------------------- -------- --------------------------------------------------- -- --- ----------------------- ----- --------- - ----- -------------------------- ---------------------------------- - ------
在这个代码片段中,我们首先通过 google.auth.getClient()
方法获取了一个授权客户端,该客户端必须使用前面配置的授权范围以及认证信息。我们通过 google.options()
方法将该授权客户端设置为全局的客户端。
接下来,我们通过调用 calendar.calendars.list()
方法来读取用户的 Google 日历列表。该方法通过 Promise 的方式返回一个结果对象,该结果对象包含了我们需要的数据。在我们打印出结果对象中的 items
属性后,您就可以在终端中看到您的 Google 日历列表了。
OAuth2.0 鉴权
如果您希望对访问接口的用户进行鉴权,您可以使用 OAuth2.0 。在使用 OAuth2.0 之前,您需要了解该协议的一些基本术语。
- 授权服务器(Authorization Server)——该服务器提供的服务包括接受用户的授权请求,验证用户身份以及颁发访问令牌等服务。
- 资源服务器(Resource Server)——该服务器提供了受 OAuth2.0 保护的数据。
- 授权码(Authorization Code)——该码是从授权服务器获取的用于获取访问令牌或刷新令牌的临时凭证。
- 令牌(Token)——一种用于访问资源的凭证。
- 刷新令牌(Refresh Token)——用于更新访问令牌的凭证。
下面是一个简单的 OAuth2.0 鉴权流程的代码示例:
-- -------------------- ---- ------- ----- - ------ - - ------------------------------ ----- -------- ----- - ----- ------- - ----- ------------------- ------ - --------------------------------------------- ------------------------------------------ -- ------------ --------- --- ------------------------- ---- ------ -- -------- - - --------- ----- ---- - ----- ------------- ----- ------ - ----- ---------------------- -------------------- - ------
在这个示例中,我们使用 google.getAuthUrl()
方法来生成一个用于用户授权的 URL。我们可以在浏览器中访问这个 URL 来为用户颁发访问令牌。接下来,我们调用了 askForCode()
方法来等待用户返回授权码。最后,我们通过调用 google.getTokens()
方法来获取访问令牌和刷新令牌。在获取到访问令牌后,我们就可以使用这些令牌来访问受到保护的资源了。
在本文中,我们介绍了 googleapis-promise 的使用方法。我们从安装与配置开始,讲解了如何建立对 Google Cloud Platform 的连接,并使用 googleapis-promise 库调用了 Google Cloud Platform 的 API。最后,我们介绍了如何使用 OAuth2.0 进行鉴权。在这个过程中,我们提供了丰富的示例代码和详细的指导。使用这些指导,您可以快速地构建出您需要的 Google Cloud Platform 应用。
来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/6005524d81e8991b448cfd51