使用 Node.js 建構 Google Workspace 外掛程式

使用 Node.js 執行階段,在 Cloud Functions 中建立 Google Workspace 外掛程式。

目標

  • 設定環境。
  • 建立及部署 Cloud 函式。
  • 建立及部署外掛程式。
  • 安裝外掛程式。

必要條件

設定環境

在 Google Cloud 控制台中開啟 Cloud 專案

  1. 在 Google Cloud 控制台中,前往「Select a project」(選取專案)頁面。

    選取 Cloud 專案

  2. 選取要使用的 Google Cloud 專案。或者,您也可以按一下「建立專案」,然後按照畫面上的指示操作。如果您建立 Google Cloud 專案,可能需要為專案啟用計費功能

設定 OAuth 同意畫面

Google Workspace 外掛程式需要設定同意畫面。設定外掛程式的 OAuth 同意畫面,可定義 Google 向使用者顯示的內容。

  1. 在 Google Cloud 控制台中,依序前往「選單」 >>「品牌」

    前往「品牌」

  2. 如果您已設定 ,可以在「品牌」、「目標對象」和「資料存取」中設定下列 OAuth 同意畫面設定。如果畫面上顯示「尚未設定」 ,請按一下「開始使用」
    1. 在「應用程式資訊」下方的「應用程式名稱」中,輸入應用程式名稱。
    2. 在「使用者支援電子郵件」中,選擇使用者有同意聲明相關問題時可與您聯絡的支援電子郵件地址。
    3. 點選 [下一步]
    4. 在「觀眾」下方,選取「內部」
    5. 點選 [下一步]
    6. 在「聯絡資訊」下方,輸入電子郵件地址,以便在專案有任何異動時通知您。
    7. 點選 [下一步]
    8. 在「Finish」下方,詳閱「Google API 服務使用者資料政策」,如果同意,請選取「I agree to the Google API Services: User Data Policy」
    9. 按一下 [繼續]。
    10. 按一下 [建立]。
  3. 目前您可以略過新增範圍的步驟。 日後,如果您建立的應用程式是供 Google Workspace 機構以外的使用者使用,就必須將使用者類型變更為外部。然後新增應用程式所需的授權範圍。詳情請參閱完整的「設定 OAuth 同意聲明」指南。

建立及部署 Cloud 函式

  1. 在本機終端機中,啟用 Cloud Functions、Cloud Build 和 Google Workspace 外掛程式 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 外掛程式新增更多功能,請參閱下列指南: