使用 Node.js 运行时在 Cloud Functions 中创建 Google Workspace 插件。
目标
- 设置环境。
- 创建和部署 Cloud Functions 函数。
- 创建和部署插件。
- 安装插件。
前提条件
- Google Cloud 项目。
- 确保已为 Cloud 项目启用结算功能。了解如何验证项目的结算状态。
- 使用 Cloud 项目配置的 Cloud SDK。
设置您的环境
在 Google Cloud 控制台中打开 Cloud 项目
- 在 Google Cloud 控制台中,前往选择项目页面。
- 选择您要使用的 Google Cloud 项目。或者,点击创建项目,然后按照屏幕上的说明操作。如果您创建 Google Cloud 项目,可能需要为项目启用结算功能。
配置 OAuth 权限请求页面
Google Workspace 插件需要配置同意屏幕。配置插件的 OAuth 权限请求页面会定义 Google 向用户显示的内容。
- 在 Google Cloud 控制台中,依次转到“菜单”图标 > API 和服务 > OAuth 同意屏幕。
- 选择应用的用户类型,然后点击 Create。
- 填写应用注册表单,然后点击保存并继续。
目前,您可以跳过添加范围,然后点击保存并继续。 将来,当您创建应用以在 Google Workspace 组织之外使用时,必须添加并验证应用所需的授权范围。
- 如果您选择外部作为用户类型,请添加测试用户:
- 在测试用户下,点击添加用户。
- 输入您的电子邮件地址和任何其他已获授权的测试用户,然后点击保存并继续。
- 查看您的应用注册摘要。若要进行更改,请点击修改。如果应用注册看起来没有问题,请点击 Back to Dashboard(返回信息中心)。
创建和部署 Cloud Functions 函数
在本地终端中,启用 Cloud Functions、Cloud Build 和 Google Workspace 插件 API:
gcloud services enable cloudfunctions cloudbuild.googleapis.com gsuiteaddons.googleapis.com
在空目录中,使用以下示例代码创建
function.js
文件:/** * Cloud Function that loads the homepage for a * Google Workspace Add-on. * * @param {Object} req Request sent from Google * @param {Object} res Response to send back */ exports.loadHomePage = function addonsHomePage (req, res) { res.send(createAction()); }; /** Creates a card with two widgets. */ function createAction() { return { "action": { "navigations": [ { "pushCard": { "header": { "title": "Cats!" }, "sections": [ { "widgets": [ { "textParagraph": { "text": "Your random cat:" } }, { "image": { "imageUrl": "https://cataas.com/cat" } } ] } ] } } ] } }; }
部署函数:
gcloud functions deploy loadHomePage --runtime nodejs12 --trigger-http
如果系统提示,请指明不允许对函数进行未经身份验证的调用。函数部署可能需要几分钟才能完成。
创建插件部署
找到插件的服务帐号电子邮件地址:
gcloud workspace-add-ons get-authorization
向服务帐号授予
cloudfunctions.invoker
角色:gcloud functions add-iam-policy-binding loadHomePage \ --role roles/cloudfunctions.invoker \ --member serviceAccount:SERVICE_ACCOUNT_EMAIL
获取已部署函数的网址。如需获取网址,请运行以下命令,然后在
httpsTrigger
部分下方查找url
字段:gcloud functions describe loadHomePage
使用以下示例代码创建
deployment.json
文件。将URL
替换为上一步中已部署函数的网址。{ "oauthScopes": ["https://www.googleapis.com/auth/gmail.addons.execute"], "addOns": { "common": { "name": "My HTTP Add-on", "logoUrl": "https://raw.githubusercontent.com/webdog/octicons-png/main/black/beaker.png", "homepageTrigger": { "runFunction": "URL" } }, "gmail": {}, "drive": {}, "calendar": {}, "docs": {}, "sheets": {}, "slides": {} } }
创建部署:
gcloud workspace-add-ons deployments create quickstart \ --deployment-file=deployment.json
安装插件
在开发模式下安装部署:
gcloud workspace-add-ons deployments install quickstart
打开或重新加载 Gmail 以查看插件。在右侧的工具栏中,查找烧杯图标。
点击此图标即可打开该插件。如果系统提示您,请对该插件授权。
可选:清理
为避免系统向您的帐号收取费用,请删除您创建的资源:
从您的 Google 帐号中卸载该插件:
gcloud workspace-add-ons deployments uninstall quickstart
为避免本快速入门中使用的资源产生费用,请删除 Cloud 项目:
gcloud projects delete PROJECT_ID
将 PROJECT_ID 替换为您用于快速入门的 Cloud 项目的 ID。您可以在 Google Cloud 控制台中的“信息中心”页面找到相应的 Cloud 项目 ID。
后续步骤
如需为您的 Google Workspace 插件添加更多功能,请参阅以下指南: