Google Chat Bot セットアップガイド(GCP)

概要

Google Chat Bot を GCP(Google Cloud Platform)上で構築し、HTTP エンドポイント経由でメッセージの送受信を行うための設定手順です。

Google Chat ユーザー Google Chat API HTTP エンドポイント(Webhook) アプリケーション

前提条件

Step 1: GCP プロジェクトの作成

1プロジェクト作成
  1. Google Cloud Console にアクセス
  2. 画面上部のプロジェクトセレクタ → 「新しいプロジェクト」
  3. プロジェクト名を入力して 「作成」
重要: プロジェクトは必ず Bot を使用する Google Workspace と同じ組織(ドメイン)のアカウント で作成してください。異なるドメインで作成すると、Chat で Bot が検索できません。

Step 2: Google Chat API の有効化

2API を有効にする
  1. APIとサービスライブラリ
  2. 「Google Chat API」を検索
  3. 「有効にする」 をクリック
Chat API が有効でないと、構成タブが表示されず、サービスアカウントに Chat 関連の権限も付与できません。

Step 3: サービスアカウントの作成

3サービスアカウント作成 & JSON キー発行
  1. IAMと管理サービスアカウント
  2. 「サービスアカウントを作成」
  3. 名前・説明を入力して作成
  4. 作成されたサービスアカウントをクリック → 「鍵」タブ
  5. 「鍵を追加」→「新しい鍵を作成」→ JSON を選択
  6. JSON ファイルがダウンロードされる
セキュリティ注意:
  • JSON キーファイルは秘密鍵を含みます。Git にコミットしたり、チャット等に貼り付けないでください。
  • 万が一漏洩した場合は、即座にキーを削除し再発行してください。
  • キーを削除すれば、漏洩したファイルは即座に無効になります。

Step 4: サービスアカウントのロール設定

4IAM でロールを付与

サービスアカウントに必要最小限のロールを付与します。

方法 A: 定義済みロールを使用(推奨)

  1. IAMと管理IAM
  2. サービスアカウントの行で 「編集」(鉛筆アイコン)
  3. 「Chat」で検索し、適切なロールを追加

方法 B: カスタムロールを作成

  1. IAMと管理ロール「ロールを作成」
  2. 以下の権限を追加:
権限用途
chat.bots.getボット自身の情報取得
chat.bots.updateボット情報の更新
メッセージの送受信権限は IAM ロールではなく、アプリケーション側の OAuth スコープ で制御されます。
必要なスコープ:
https://www.googleapis.com/auth/chat.messages
https://www.googleapis.com/auth/chat.spaces

Step 5: Google Chat API の構成

5Chat API 構成画面の設定
  1. APIとサービス有効なAPIGoogle Chat API をクリック
  2. 上部の 「構成」タブ を開く
  3. 以下の項目を設定:

アプリケーション情報

項目設定内容
アプリのステータスライブ - ユーザーが利用可能
アプリ名任意のアプリ名(Chat 検索時の表示名になる)
アバターの URL正方形 PNG 画像の HTTPS URL(任意)
説明アプリの説明文(最大40文字)

インタラクティブ機能

項目設定内容
1:1 メッセージ✅ ユーザーがアプリにダイレクトメッセージを送信できる
スペース参加✅ スペースとグループの会話に参加する(必要に応じて)

接続設定

項目設定内容
接続方法HTTP エンドポイント URL を選択(Apps Script ではない)

トリガー

項目設定内容
トリガー設定「すべてのトリガーに共通の HTTP エンドポイント URL を使用する」
HTTP エンドポイント URLWebhook を受け取る HTTPS URL
例: https://your-domain.com/googlechat

公開設定

項目設定内容
公開範囲「このチャットアプリを(ドメイン名)の特定のユーザーとグループが使用できるようにします」にチェック
ユーザー指定Bot を使用するユーザーのメールアドレスを入力(カンマ区切りで複数可)
注意: 公開設定の変更が反映されるまで最大24時間かかることがあります。

ログ

項目設定内容
エラーログ✅ エラーを Logging に記録する(デバッグ用に推奨)

すべて入力したら 「保存」 をクリック。

Step 6: HTTP エンドポイントの準備

6Webhook 受信サーバーの用意

本番環境の場合

HTTPS 対応のサーバーにアプリケーションをデプロイし、そのURLを構成画面に設定します。

ローカル開発環境の場合(ngrok 使用)

  1. ngrok のインストール:
    brew install ngrok
  2. ngrok アカウント作成 & authtoken 設定:
    # https://dashboard.ngrok.com/signup でアカウント作成後
    ngrok config add-authtoken YOUR_AUTHTOKEN
  3. ドメインの取得:
    # https://dashboard.ngrok.com/domains で無料ドメインを作成
  4. ngrok の起動:
    # デフォルトポート 8787 の場合
    ngrok http --url=YOUR_DOMAIN.ngrok-free.dev 8787
  5. 表示された URL をGCP 構成画面の HTTP エンドポイント URL に設定:
    https://YOUR_DOMAIN.ngrok-free.dev/googlechat
ngrok の無料プランでは固定ドメインが1つ使用できます。ngrok を再起動しても URL は変わりません。

Step 7: Google Chat で Bot を追加

7Bot の検索と追加
  1. Google Chat を開く
  2. 左側メニューの 「+」(チャットを新規作成)
  3. 構成画面で設定した アプリ名 で検索
  4. Bot を選択して追加
  5. メッセージを送信してテスト
Bot が検索に表示されない場合:
  • 公開設定の反映に最大24時間かかることがあります
  • GCP プロジェクトと Workspace が同じドメイン(組織)であることを確認
  • Workspace 管理コンソールで Chat アプリのインストールが許可されていることを確認
  • アプリのステータスが「ライブ」になっていることを確認

セットアップチェックリスト

トラブルシューティング

問題対処法
Bot が検索に表示されない 公開設定の反映を最大24時間待つ / GCP プロジェクトと Workspace のドメインが一致しているか確認 / アプリのステータスが「ライブ」か確認
Webhook にリクエストが届かない ngrok が起動中か確認 / HTTP エンドポイント URL が正しいか確認 / ngrok の管理画面(http://127.0.0.1:4040)でリクエストログを確認
認証エラー サービスアカウント JSON キーが正しいプロジェクトのものか確認 / キーが無効化されていないか確認
権限エラー Chat API が有効か確認 / サービスアカウントのロールを確認 / OAuth スコープが正しいか確認