在前端开发中,使用 Google APIs 可以实现各种功能,例如操作 Google Drive、Gmail 等 Google 服务。Google 为开发者提供了官方的 Node.js API 客户端库 googleapis
,但是这个库有很多功能,使用起来比较复杂。这时候我们可以使用 googleapis-common
这个 npm 包来简化 API 的调用。
安装
首先需要安装 googleapis-common
:
npm install googleapis-common
使用方法
以下是 googleapis-common
的基本使用流程:
- 创建一个
GoogleAuth
实例,获取身份验证凭据。 - 根据身份验证凭据创建
GoogleApis
实例,并设置好 API 版本号和需要调用的 API。 - 调用相应 API 的方法。
下面以 calendar
API 为例来介绍具体使用方法。
获取身份验证凭据
googleapis-common
支持多种方式获取身份验证凭据,这里介绍两种常见方式。
通过 Service Account 获取凭据
Service Account 是一种专门用于服务器与 Google APIs 交互的账号,在 Google Cloud Console 中创建。创建完成后,需要将该 Service Account 授权给需要访问的 Google 服务。
使用 Service Account 获取凭据的代码示例:
const { GoogleAuth } = require('googleapis-common'); const auth = new GoogleAuth({ scopes: ['https://www.googleapis.com/auth/calendar'], keyFile: 'path/to/keyfile.json', }); const client = await auth.getClient();
其中,scopes
参数指定需要访问的 Google 服务;keyFile
参数指定 Service Account 的 JSON 密钥文件路径。
通过 OAuth2.0 获取凭据
OAuth2.0 是一种用于用户授权第三方应用访问其 Google 账号数据的标准授权协议。使用 OAuth2.0 获取凭据的代码示例:
-- -------------------- ---- ------- ----- - ---------- - - ----------------------------- ----- ---- - --- ------------ ------- --------------------------------------------- --------- ----------------- ------------- --------------------- ------------ ------------------- --- ----- --- - ---------------------- ------------ ---------- ------- ---------- --- -- ------- --------------- ------------- ----- - ------ - - ----- -------------------- ----------------------------
其中,scopes
参数和 Service Account 获取凭据中的一样;clientId
、clientSecret
和 redirectUri
是在 Google Cloud Console 中创建 OAuth2.0 客户端时获得的信息。
创建 GoogleApis 实例
在获取到身份验证凭据后,就可以创建 GoogleApis
实例了。以下是创建 calendar
API 的实例代码示例:
const { GoogleApis } = require('googleapis-common'); const calendar = new GoogleApis().api('calendar', 'v3');
其中,'calendar'
参数指定 API 的名称,'v3'
参数指定 API 的版本号。更多 API 的名称和版本号可以在 Google APIs Explorer 中查看。
调用 API
创建 calendar
API 实例后,就可以调用相应的 API 了。以下是获取日历列表的示例代码:
const { data } = await calendar.calendarList.list(); console.log(data);
以上代码调用了 calendarList.list()
方法来获取当前用户的日历列表,并打印返回结果。
总结
使用 googleapis-common
可以简化调用 Google APIs 的流程,让开发者更加专注于业务逻辑的实现。本文介绍了如何通过 Service Account 和 OAuth2.0 获取身份验证凭据,并创建相应 API 的实例、调用相应 API 的方法。希
来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/54361