Node.js ランタイムを使用して、Cloud Functions で Google Workspace アドオンを作成します。
目標
- 環境を設定する。
- Cloud Functions の関数を作成してデプロイする。
- アドオンを作成してデプロイします。
- アドオンをインストールします。
前提条件
- Google Cloud プロジェクト。
- Cloud プロジェクトの課金が有効になっていることを確認します。学習 ハウツー プロジェクトの課金ステータスを確認する。
- Cloud SDK Google Cloud プロジェクト内で 構成されていることです
環境の設定
Google Cloud コンソールで Cloud プロジェクトを開く
- Google Cloud コンソールで、[プロジェクトの選択] ページに移動します。
- 使用する Google Cloud プロジェクトを選択します。または、[プロジェクトを作成] をクリックし、画面の指示に従います。Google Cloud プロジェクトを作成する場合、プロジェクトの課金を有効にする必要があります。
OAuth 同意画面を構成する
Google Workspace アドオンを使用するには、同意画面の構成が必要です。構成 アドオンの OAuth 同意画面では、Google 表示されます。
- Google Cloud コンソールで、メニュー > API とサービス > OAuth 同意画面。 に移動します。
- [ユーザーの種類] で [内部] を選択し、[作成] をクリックします。
- アプリ登録フォームに入力し、[保存して次へ] をクリックします。
現時点では、スコープの追加をスキップして [保存して次へ] をクリックします。 今後、Google Play 以外で使用するアプリを作成した場合、 [ユーザーの種類] を [外部] に変更してから、 アプリに必要な認証スコープを追加します。
- アプリ登録の概要を確認します。変更するには、[編集] をクリックします。アプリが 問題がなければ、[ダッシュボードに戻る] をクリックします。
Cloud 関数を作成してデプロイする
ローカル ターミナルで、Cloud Functions、Cloud Build、Cloud Build を Google Workspace Add-ons 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
プロンプトが表示されたら、Compute Engine での未認証の呼び出しを許可しないことを指定します。 使用します。関数のデプロイには数分かかる場合があります。
アドオン デプロイを作成する
アドオンのサービス アカウントのメールアドレスを見つけます。
gcloud workspace-add-ons get-authorization
サービス アカウントに
cloudfunctions.invoker
ロールを付与します。gcloud functions add-iam-policy-binding loadHomePage \ --role roles/cloudfunctions.invoker \ --member serviceAccount:SERVICE_ACCOUNT_EMAIL
デプロイされた関数の URL を取得します。URL を取得するには、次のコマンドを実行します。
httpsTrigger
セクションのurl
フィールドを探します。gcloud functions describe loadHomePage
次のサンプルコードを使用して
deployment.json
ファイルを作成します。置換URL
は、デプロイされた関数の 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
このクイックスタートで使用したリソースに対して課金されないようにするには、次を削除します。 追加します。
gcloud projects delete PROJECT_ID
PROJECT_ID は、実行する Cloud プロジェクトの ID に置き換えます。 認証情報を使用します。Cloud プロジェクト ID は次の場所で確認できます。 Google Cloud コンソールで [ダッシュボード] ページ。
次のステップ
Google Workspace アドオンに機能を追加するには、 次のガイドをご覧ください。