快速入门:创建 Google Workspace 插件

使用 Node.js 运行时在 Cloud Functions 中创建 Google Workspace 插件。

目标

  • 设置环境。
  • 创建和部署 Cloud Functions 函数。
  • 创建和部署插件。
  • 安装插件。

前提条件

设置您的环境

在 Google Cloud 控制台中打开您的 Cloud 项目

  1. 在 Google Cloud 控制台中,前往选择项目页面。

    选择 Cloud 项目

  2. 选择您要使用的 Google Cloud 项目。或者,点击创建项目,然后按照屏幕上的说明操作。如果您创建了 Google Cloud 项目,则可能需要为该项目启用结算功能

配置 OAuth 权限请求页面

Google Workspace 插件需要配置同意屏幕。通过配置插件的 OAuth 同意屏幕,可以定义 Google 向用户显示的内容。

  1. 在 Google Cloud 控制台中,依次点击“菜单”图标 > API 和服务 > OAuth 同意屏幕

    转到 OAuth 同意屏幕

  2. 对于用户类型,选择内部,然后点击创建
  3. 填写应用注册表单,然后点击保存并继续
  4. 目前,您可以跳过添加范围的步骤,点击 Save and Continue(保存并继续)。 将来,当您创建要在 Google Workspace 组织外部使用的应用时,必须将用户类型更改为外部,然后添加您的应用所需的授权范围。

  5. 查看您的应用注册摘要。如要进行更改,请点击修改。如果应用注册看起来正常,请点击 Back to Dashboard

创建和部署 Cloud Functions 函数

  1. 在本地终端中,开启 Cloud Functions、Cloud Build 和 Google Workspace Add-ons API:

    gcloud services enable cloudfunctions cloudbuild.googleapis.com gsuiteaddons.googleapis.com
    
  2. 在空目录中,使用以下示例代码创建文件 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"
                         }
                      }
                    ]
                  }
                ]
              }
            }
          ]
        }
      };
    }
    
  3. 部署函数:

    gcloud functions deploy loadHomePage --runtime nodejs12 --trigger-http
    

    如果出现提示,请指定不允许未经身份验证的函数调用。函数部署可能需要几分钟时间才能完成。

创建插件部署

  1. 查找插件的服务帐号电子邮件地址:

    gcloud workspace-add-ons get-authorization
    
  2. 向服务帐号授予 cloudfunctions.invoker 角色:

    gcloud functions add-iam-policy-binding loadHomePage \
        --role roles/cloudfunctions.invoker \
        --member serviceAccount:SERVICE_ACCOUNT_EMAIL
    
  3. 获取已部署函数的网址。如需获取网址,请运行以下命令,并在 httpsTrigger 部分下查找 url 字段:

    gcloud functions describe loadHomePage
    
  4. 使用以下示例代码创建文件 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": {}
      }
    }
    
  5. 创建部署:

    gcloud workspace-add-ons deployments create quickstart \
        --deployment-file=deployment.json
    

安装插件

  1. 在开发模式下安装部署:

    gcloud workspace-add-ons deployments install quickstart
    
  2. 打开或重新加载 Gmail 即可查看插件。在右侧的工具栏中,查找烧杯图标。

  3. 点击该图标即可打开插件。如果出现提示,请授权该插件。

可选:清理

为避免系统向您的帐号收取费用,请删除您创建的资源:

  1. 从您的 Google 账号中卸载该插件:

    gcloud workspace-add-ons deployments uninstall quickstart
    
  2. 为避免本快速入门中使用的资源产生费用,请删除 Cloud 项目:

    gcloud projects delete PROJECT_ID
    

    PROJECT_ID 替换为您在快速入门中使用的 Cloud 项目的 ID。您可以在 Google Cloud 控制台的“信息中心”页面中找到 Cloud 项目 ID。

后续步骤

如需向 Google Workspace 插件添加更多功能,请参阅以下指南: