Google Apps Script Chat アプリのクイックスタート

直接メッセージを送信でき、メッセージをエコーして応答する Google Chat アプリを作成します。

次の図は、アーキテクチャとメッセージング パターンを示しています。

Apps Script で実装された Chat アプリのアーキテクチャ。

上の図では、Apps Script の Chat アプリを操作しているユーザーには、次のような情報フローがあります。

  1. ユーザーがダイレクト メッセージまたは Chat スペースで Chat アプリにメッセージを送信します。
  2. Google Cloud にある Apps Script に実装されている Chat アプリのロジックが、メッセージを受信して処理します。
  3. 必要に応じて、Chat アプリのロジックを、カレンダーやスプレッドシートなどの Google Workspace サービスや、Google マップや YouTube などの Google サービスと統合できます。
  4. Chat アプリのロジックにより、Chat の Chat アプリサービスにレスポンスが返されます。
  5. レスポンスがユーザーに配信されます。

目標

  • 環境を設定する。
  • スクリプトを設定します。
  • Chat アプリを公開します。
  • Chat アプリをテストします。

前提条件

環境の設定

Google Cloud コンソールで Cloud プロジェクトを開く

まだ開いていない場合は、このサンプルで使用する Cloud プロジェクトを開きます。

  1. Google Cloud コンソールで [プロジェクトの選択] ページに移動します。

    Cloud プロジェクトを選択

  2. 使用する Google Cloud プロジェクトを選択します。または、[プロジェクトを作成] をクリックし、画面の指示に従います。Google Cloud プロジェクトを作成する場合は、プロジェクトの課金を有効にすることが必要な場合があります。

Chat API を有効にする

Google API を使用する前に、Google Cloud プロジェクトで API を有効にする必要があります。1 つの Google Cloud プロジェクトで 1 つ以上の API を有効にできます。

OAuth 2.0 を使用するすべてのアプリには、同意画面の構成が必要です。アプリの OAuth 同意画面を構成すると、ユーザーとアプリ審査担当者に表示される内容を定義し、後で公開できるようにアプリを登録します。

  1. Google Cloud コンソールで、メニュー > [API とサービス] > [OAuth 同意画面] に移動します。

    OAuth 同意画面に移動

  2. アプリのユーザータイプを選択し、[作成] をクリックします。
  3. アプリ登録フォームに入力し、[保存して次へ] をクリックします。
  4. 現時点では、スコープの追加をスキップして、[Save and Continue] をクリックします。今後、Google Workspace 組織外で使用するアプリを作成する場合は、アプリに必要な認可スコープを追加して確認する必要があります。

  5. ユーザーの種類に [外部] を選択した場合は、テストユーザーを追加します。
    1. [テストユーザー] で [ユーザーを追加] をクリックします。
    2. メールアドレスとその他の承認済みテストユーザーを入力し、[保存して次へ] をクリックします。
  6. アプリ登録の概要を確認します。変更するには、[編集] をクリックします。アプリ登録に問題がない場合は、[Back to Dashboard] をクリックします。

スクリプトを設定する

スクリプトを設定するには、テンプレートを使用して、Apps Script で Cloud プロジェクトを設定します。

テンプレートからスクリプトを作成する

  1. Apps Script の [スタートガイド] ページに移動します。
  2. [Chat App] テンプレートをクリックします。このテンプレートが表示されていない場合は、下にスクロールします。
  3. [無題のプロジェクト] をクリックし、「Quickstart app」と入力して [名前を変更] をクリックします。

Cloud プロジェクト番号をコピーする

  1. Google Cloud コンソールで、メニュー > [IAM と管理] > [設定] に移動します。

    [IAM と管理] の設定に移動

  2. [プロジェクト番号] フィールドで、値をコピーします。

Apps Script プロジェクトの Cloud プロジェクトを設定する

  1. Chat アプリの Apps Script プロジェクトで、[プロジェクトの設定] プロジェクト設定のアイコン をクリックします。
  2. [Google Cloud Platform(GCP)プロジェクト] で、[プロジェクトを変更] をクリックします。
  3. [GCP のプロジェクト番号] に、Google Cloud のプロジェクト番号を貼り付けます。
  4. [プロジェクトを設定] をクリックします。

これで、動作中のアプリコードが完成しました。次の手順で試し、要件に合わせてカスタマイズできます。

Apps Script テンプレートを開くときは、正しい Google アカウントにログインしていることをご確認ください。気づかないうちに、現在のアカウントがデフォルトのアカウントに切り替えられることがあります。

テストデプロイを作成する

この Apps Script プロジェクトのデプロイ ID が必要です。この ID は次のステップで使用できます。

ヘッドデプロイ ID を取得する手順は次のとおりです。

  1. Chat アプリ Apps Script プロジェクトで、[デプロイ] > [デプロイをテスト] をクリックします。
  2. 後のステップで使用するためにヘッド デプロイ ID をコピーし、[完了] をクリックします。

Chat アプリを公開する

Google Cloud コンソールから Chat アプリを公開します。

  1. Google Cloud コンソールGoogle Chat API を検索し、[Google Chat API] をクリックします。
  2. [管理] をクリックします。
  3. [設定] をクリックし、Chat アプリを設定します。

    1. [App name] フィールドに「Quickstart app」と入力します。
    2. [アバターの URL] フィールドに「https://developers.google.com/chat/images/quickstart-app-avatar.png」と入力します。
    3. [説明] フィールドに「Quickstart app」と入力します。
    4. [機能] で、[1 対 1 のメッセージを受信する] と [スペースとグループの会話に参加する] を選択します。
    5. [接続設定] で [Apps Script プロジェクト] を選択し、デプロイ ID をフィールドに貼り付けます。
    6. [公開設定] で、[ドメイン内の特定のユーザーとグループ] を選択し、メールアドレスを入力します。
  4. [保存] をクリックしてページを更新します。

  5. 構成ページの [アプリのステータス] で、ステータスを [公開 - ユーザーが利用可能] に設定します。

  6. [保存] をクリックします。

これで Chat アプリがメッセージに応答できるようになりました。

Chat アプリをテストする

  1. Chat を開きます。
  2. [Start a chat] > [Find apps] をクリックして、アプリに新しいダイレクト メッセージを送信します。
  3. [アプリを検索] ページで Quickstart App を検索します。
  4. [Quickstart App] の横にある [Chat] をクリックします。
  5. そのアプリの新しいダイレクト メッセージに、「Hello」と入力して enter を押します。

Chat アプリにメッセージを追加していただき、感謝の言葉を添えてメッセージが表示されるようにします。

Trusted Tester を追加し、インタラクティブ機能のテストの詳細については、Google Chat アプリのインタラクティブ機能をテストするをご覧ください。

次のステップ

  • インタラクティブなカードを作成する - カード メッセージは、定義済みのレイアウト、ボタンなどのインタラクティブな UI 要素、画像などのリッチメディアをサポートします。カード メッセージを使用して詳細情報を表示し、ユーザーから情報を収集して、ユーザーを次のステップに導きます。
  • スラッシュ コマンドをサポートする - スラッシュ コマンドを使用すると、スラッシュ(/)で始まるコマンド(/help など)を入力することで、ユーザーがアプリに提供できる特定のコマンドを登録してアドバタイズできます。
  • 起動ダイアログ - ダイアログは、アプリでユーザーとやり取りするために開くことができる、ウィンドウ処理されたカードベースのインターフェースです。複数のカードを順番に重ねることができるため、ユーザーはフォームデータの入力など、複数のステップを踏むことができます。