OpenClaw

OpenClaw Google Chat チャンネル

エンタープライズ
普通

Google Chat APIのHTTPエンドポイントを使用してOpenClawをGoogle Chatに接続します。このエンタープライズ統合により、AIアシスタントをGoogle Workspace内で運用できます — ダイレクトメッセージとスペース(Space)での会話を処理します。ボットはGoogle ChatからのHTTP POSTリクエストを受信し、サービスアカウントを使用してBearerトークンを検証し、OpenClaw Gatewayを通じてメッセージをルーティングします。

基本情報
難易度普通
カテゴリエンタープライズ
対応機能数5 / 6

Google Chat 対応機能

テキストメッセージ

対応

メディア・ファイル

対応

リアクション

対応

スレッド

対応

音声メッセージ

非対応

グループチャット

対応

Google Chat 前提条件

  • Google Workspaceアカウント(BusinessまたはEnterprise版)。認可スコープの承認やアプリの可視性設定にはドメイン管理者権限が必要な場合があります
  • Google Chat APIが有効化されたGoogle Cloudプロジェクト
  • JSONキーファイルが生成されたサービスアカウント
  • OpenClaw Gatewayが実行中で設定済み
  • Webhook用の公開アクセス可能なHTTPSエンドポイント(Tailscale Funnel、Caddy、Cloudflare Tunnelなど)

Google Chat クイックセットアップ

1

Google Chat APIを有効化しサービスアカウントを作成

Google Cloud Consoleにアクセスし、Google Chat APIを有効化します。新しいサービスアカウント(例:'openclaw-chat')を作成し、権限設定をスキップしてJSONキーファイルを生成・ダウンロードします。ファイルをGatewayホストに保存します(例:~/.openclaw/googlechat-service-account.json)。

2

Google Cloud ConsoleでChatアプリを設定

Google Cloud ConsoleのChat設定ページで、アプリ名、アバターURL、説明を設定します。インタラクティブ機能を有効化し、アプリがスペースやグループ会話に参加できるようにします。接続設定として「HTTPエンドポイントURL」を選択し、Gatewayの公開URLに'/googlechat'を追加して入力します('openclaw status'でGateway URLを確認)。

3

可視性を設定し、アプリを有効化してテスト

アプリの可視性をドメイン内の特定ユーザーまたはグループに制限します。設定を保存し、ページを更新して、アプリのステータスを「ライブ — ユーザーに利用可能」に変更します。Google Chatで「ダイレクトメッセージ」の横にある「+」アイコンをクリックし、アプリ名を検索してテストメッセージを送信します。

Google Chat 設定例

config.json
{
  "channels": {
    "googlechat": {
      "serviceAccountFile": "~/.openclaw/googlechat-service-account.json",
      "webhookPath": "/googlechat"
    }
  }
}

Google Chat 詳細ドキュメント

アーキテクチャ概要

OpenClawはHTTPエンドポイントアーキテクチャを通じてGoogle Chatと統合します。フローは以下の通りです: 1. Google Chatが'Authorization: Bearer <token>'ヘッダー付きのHTTP POSTリクエストをGatewayエンドポイントに送信します。 2. OpenClawが設定されたオーディエンス設定に基づいてBearerトークンを検証します。オーディエンスがapp-urlの場合はOIDC IDトークン、project-numberの場合は自己署名JWTです。 3. メッセージはDMとスペースを区別するセッションキーを通じてルーティングされます。 4. デフォルトでは、DMにはペアリングコードによるアクセス制御、グループスペースには@メンションによる起動が使用されます。 WebSocketベースのチャンネルとは異なり、Google Chatには公開アクセス可能なHTTPSエンドポイントが必要です。Gatewayは設定されたエンドポイントパス(デフォルト:/googlechat)で受信POSTリクエストをリッスンします。
'openclaw status'を使用してGatewayの公開URLを確認し、Webhook設定に使用してください。
サービスアカウントJSONキーファイルには機密認証情報が含まれています — 安全に保存し、ファイル権限を制限してください。

サービスアカウントの設定

認証にはGoogle Cloudサービスアカウントが必要です。以下の手順に従ってください: 1. Google Cloud Console → IAMと管理 → サービスアカウントに移動 2. 「サービスアカウントを作成」をクリック 3. 名前を付け(例:'openclaw-chat')、オプションの権限設定をスキップ 4. 作成したサービスアカウントをクリック → キータブ → キーを追加 → 新しいキーを作成 5. JSON形式を選択してキーファイルをダウンロード 6. ファイルをGatewayホストの安全な場所に配置(例:~/.openclaw/googlechat-service-account.json) サービスアカウント認証情報は、Google ChatからのWebhookリクエストの検証と、Google Chat APIを通じた送信メッセージに使用されます。
openclaw.json
{
  "channels": {
    "googlechat": {
      "serviceAccountFile": "~/.openclaw/googlechat-service-account.json"
    }
  }
}
サービスアカウントJSONキーファイルをバージョン管理にコミットしないでください。ファイルパスを.gitignoreに追加し、ファイル権限をGatewayプロセスユーザーに制限してください。

Chatアプリの設定

Google Cloud ConsoleでChatアプリを設定します: 1. Google Cloud Console → APIとサービス → Google Chat API → 設定に移動 2. アプリ名、アバターURL、説明を設定 3. 「インタラクティブ機能」でインタラクティブ機能を有効化 4. アプリがスペースやグループ会話に参加できるように許可 5. 接続設定を「HTTPエンドポイントURL」に選択 6. Gatewayの公開Webhook URL(例:https://your-domain.com/googlechat)を入力 7. 「可視性」でドメイン内の特定ユーザーまたはグループに制限 8. 設定を保存し、ページを更新して、アプリのステータスを「ライブ — ユーザーに利用可能」に設定 注意:プライベートアプリはGoogle Chatマーケットプレイスには表示されません。ユーザーはアプリの正確な名前を検索して見つける必要があります。
設定を保存した後、ステータス切り替えを表示するためにページの更新が必要な場合があります。
ユーザーはGoogle Chatで「ダイレクトメッセージ」の横にある「+」アイコンをクリックし、設定したアプリ名を検索してボットを追加します。

公開URLとWebhook設定

Google ChatはWebhookイベントを送信するために公開アクセス可能なHTTPSエンドポイントが必要です。3つのオプションを推奨します: オプションA — Tailscale Funnel(推奨): • Gatewayバインドアドレスを確認:ss -tlnp | grep 18789 • Webhookを公開:tailscale funnel --set-path=/googlechat localhost:18789 • 公開URL形式:https://<ノード名>.<tailnet>.ts.net/googlechat オプションB — Caddyリバースプロキシ: • 特定パスのみプロキシ:reverse_proxy /googlechat* localhost:18789 オプションC — Cloudflare Tunnel: • /googlechatパスのみをGatewayにルーティングし、その他のリクエストは404を返すようにイングレスルールを設定。 どのオプションを選んでも、生成された公開URLはGoogle Chatアプリ設定のHTTPエンドポイントURLに入力する必要があります。
ターミナル / 設定ファイル
# Tailscale Funnel例:
tailscale funnel --set-path=/googlechat localhost:18789

# Caddy例:
reverse_proxy /googlechat* localhost:18789

# Cloudflare Tunnelイングレス設定:
- hostname: your-domain.com
  path: /googlechat
  service: http://localhost:18789
- service: http_status:404
Tailscale Funnelは推奨です。HTTPS証明書を自動処理し、最小限の設定で済みます。
/googlechatパスのみを公開してください — Gateway全体をインターネットに公開しないでください。

DMとグループポリシー

OpenClawはDMとグループポリシーを通じてGoogle Chatボットへのアクセスを制御します: DMポリシー(デフォルト:pairing): • pairing — 新しい連絡先はペアリングフローを経る必要があり、CLIで承認するペアリングコードを使用 • allowlist — 明示的にリストされたユーザーのみがボットにメッセージを送信可能 • open — 誰でもボットにメッセージを送信可能(慎重に使用) グループポリシー: • デフォルトでは、ボットはグループスペースで@メンションされた時のみ応答 • 特定スペースの許可リストを設定可能 • スペースごとにカスタムシステムプロンプトをサポート DMとスペースのアクセス制御は異なります:DMはデフォルトでペアリングコード、スペースは@メンション起動を使用します。
openclaw.json
{
  "channels": {
    "googlechat": {
      "dmPolicy": "pairing",
      "groupPolicy": "allowlist",
      "groupAllowList": ["spaces/AAAA1234"]
    }
  }
}

ターゲットとセッションルーティング

Google Chatターゲットは送信メッセージとセッション識別に使用されます: • ダイレクトメッセージ:users/<userId>またはusers/<email> • スペース:spaces/<spaceId> セッションキーがDMとスペースを区別し、各会話が独立したコンテキストを持つことを保証します。ボットユーザー識別子(botUser)はグループスペースでの@メンション検出に使用されます。 個々のスペースにシステムプロンプトやアクセス制御を含むカスタム設定を構成することもできます。
openclaw.json
{
  "channels": {
    "googlechat": {
      "botUser": "users/123456789",
      "spaces": {
        "spaces/AAAA1234": {
          "systemPrompt": "あなたはエンジニアリングチームの役立つアシスタントです。"
        }
      }
    }
  }
}
botUserフィールドを設定して、グループスペースでの正確な@メンション検出を有効にしてください。
スペースIDはGoogle ChatのURLまたはスペースメッセージを受信した際のGatewayログで確認できます。

Google Chat 設定リファレンス

serviceAccountFile
Type: stringDefault: ""

Google Cloudサービスアカウント JSONキーファイルのパス

audience
Type: stringDefault: "app-url"

Bearerトークン検証のオーディエンスタイプ。app-urlの場合、Google ChatはOIDC IDトークンを送信し、project-numberの場合は自己署名JWTを送信します。オプション:app-url、project-number

audienceValue
Type: stringDefault: ""

トークン検証に使用するオーディエンス値(URLまたはプロジェクト番号)

webhookPath
Type: stringDefault: "/googlechat"

Google Chat Webhook受信用のHTTPエンドポイントパス

botUser
Type: stringDefault: ""

ボットユーザー識別子(users/<id>)、スペースでの@メンション検出用

dmPolicy
Type: stringDefault: "pairing"

ボットにDMできるユーザーを制御。オプション:pairing、allowlist、open、disabled

allowFrom
Type: string[]Default: []

ボットにメッセージを送信できるユーザーIDまたはメール(dmPolicyがallowlistの場合に有効)

groupPolicy
Type: stringDefault: "disabled"

グループスペースポリシー。オプション:disabled、allowlist、open

groupAllowList
Type: string[]Default: []

groupPolicyがallowlistの場合に許可されるスペースID

spaces.<id>.systemPrompt
Type: stringDefault: ""

特定のGoogle Chatスペースのカスタムシステムプロンプト

mediaMaxMb
Type: numberDefault: 20

最大メディアファイルサイズ(メガバイト)

actions.typing
Type: booleanDefault: true

AIが応答を生成中にタイピングインジケーターを送信

Google Chat よくある質問

Google Chat トラブルシューティング

Webhookで405 Method Not Allowedエラー

Google Chatプラグインが有効化されていない、channels.googlechat設定セクションが欠落している、またはGatewayが設定変更後に再起動されていない。

設定を確認:'openclaw config get channels.googlechat'を実行して設定が存在するか確認。'openclaw plugins list | grep googlechat'を実行してプラグインがアクティブか確認。'openclaw gateway restart'でGatewayを再起動し、'openclaw channels status'でステータスを確認。
認証エラーまたはトークン検証失敗

サービスアカウントファイルのパスが正しくない、オーディエンス設定が一致しない、またはBearerトークンが期限切れ。

'openclaw channels status --probe'を実行して認証エラーを診断。serviceAccountFileパスが有効なJSONキーファイルを指していることを確認。オーディエンスタイプと値がGoogle Cloudプロジェクト設定と一致しているか確認。
ボットがスペース内のメッセージに応答しない

@メンション検出用のボットユーザー識別子が設定されていない、またはスペースが許可リストにない。

設定でbotUserフィールドを設定して正確な@メンション検出を有効にする。groupPolicy: allowlistを使用している場合、スペースIDがgroupAllowListにリストされていることを確認。テストメッセージを送信しながら'openclaw logs --follow'でGatewayログを確認。
Webhook URLがGoogle Chatから到達不能

公開URLが正しく設定されていない、ファイアウォールが受信接続をブロックしている、またはSSL証明書が無効。

ChatアプリのWebhook URLがGatewayの公開エンドポイントと一致していることを確認。URLがインターネットからアクセス可能かテスト。Tailscale Funnelを使用している場合、'tailscale funnel status'を実行して設定を確認。CaddyまたはCloudflareの場合、リバースプロキシログを確認。