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 已執行並設定
  • 可公開存取的 HTTPS 端點用於 Webhook(如 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 向您的 Gateway 端點傳送帶有 'Authorization: Bearer <token>' 標頭的 HTTP POST 請求。 2. OpenClaw 根據設定的受眾設定驗證 Bearer 權杖。當受眾設為 app-url 時,權杖為 OIDC ID token;設為 project-number 時,為自簽 JWT。 3. 訊息透過區分私訊和空間的工作階段金鑰進行路由。 4. 預設情況下,私訊使用配對碼進行存取控制,群組空間使用 @提及啟動。 與基於 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 需要可公開存取的 HTTPS 端點來傳送 Webhook 事件。推薦三種方案: 方案 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 暴露到網際網路。

私訊與群組策略

OpenClaw 透過私訊和群組策略控制對 Google Chat 機器人的存取: 私訊策略(預設:pairing): • pairing — 新聯絡人需要透過配對流程,使用您在 CLI 中核准的配對碼 • allowlist — 僅明確列出的使用者可以給機器人傳送訊息 • open — 任何人都可以給機器人傳送訊息(謹慎使用) 群組策略: • 預設情況下,機器人僅在群組空間中被 @提及時回應 • 可以設定特定空間的允許清單 • 每個空間設定支援自訂系統提示 私訊和空間的存取控制不同:私訊預設使用配對碼,空間使用 @提及啟動。
openclaw.json
{
  "channels": {
    "googlechat": {
      "dmPolicy": "pairing",
      "groupPolicy": "allowlist",
      "groupAllowList": ["spaces/AAAA1234"]
    }
  }
}

目標與工作階段路由

Google Chat 目標用於外送訊息和工作階段識別: • 私訊:users/<userId> 或 users/<email> • 空間:spaces/<spaceId> 工作階段金鑰區分私訊和空間,確保每個對話擁有獨立的上下文。機器人使用者識別碼(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 token;設為 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"

控制誰可以給機器人發私訊。選項: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 空間的自訂 AI 系統提示

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,檢查反向代理日誌。