Google Chat (Chat API)
Trạng thái: sẵn sàng cho tin nhắn trực tiếp và không gian qua webhook Google Chat API (chỉ HTTP).Thiết lập nhanh (dành cho người mới)
- Tạo một dự án Google Cloud và kích hoạt Google Chat API.
- Truy cập: Google Chat API Credentials
- Kích hoạt API nếu chưa được kích hoạt.
- Tạo một Tài khoản Dịch vụ:
- Nhấn Create Credentials > Service Account.
- Đặt tên tùy ý (ví dụ:
openclaw-chat). - Để trống phần quyền (nhấn Continue).
- Để trống phần người dùng có quyền truy cập (nhấn Done).
- Tạo và tải xuống Khóa JSON:
- Trong danh sách tài khoản dịch vụ, nhấp vào tài khoản vừa tạo.
- Chuyển đến tab Keys.
- Nhấp Add Key > Create new key.
- Chọn JSON và nhấn Create.
- Lưu file JSON đã tải xuống trên máy chủ gateway (ví dụ:
~/.openclaw/googlechat-service-account.json). - Tạo một ứng dụng Google Chat trong Google Cloud Console Chat Configuration:
- Điền thông tin Application info:
- App name: (ví dụ:
OpenClaw) - Avatar URL: (ví dụ:
https://openclaw.ai/logo.png) - Description: (ví dụ:
Trợ lý AI cá nhân)
- App name: (ví dụ:
- Kích hoạt Interactive features.
- Dưới Functionality, chọn Join spaces and group conversations.
- Dưới Connection settings, chọn HTTP endpoint URL.
- Dưới Triggers, chọn Use a common HTTP endpoint URL for all triggers và đặt URL công khai của gateway theo sau là
/googlechat.- Mẹo: Chạy
openclaw statusđể tìm URL công khai của gateway.
- Mẹo: Chạy
- Dưới Visibility, chọn Make this Chat app available to specific people and groups in <Your Domain>.
- Nhập địa chỉ email của bạn (ví dụ:
user@example.com) vào ô văn bản. - Nhấp Save ở dưới cùng.
- Điền thông tin Application info:
- Kích hoạt trạng thái ứng dụng:
- Sau khi lưu, làm mới trang.
- Tìm phần App status (thường ở gần đầu hoặc cuối sau khi lưu).
- Thay đổi trạng thái thành Live - available to users.
- Nhấp Save lần nữa.
- Cấu hình OpenClaw với đường dẫn tài khoản dịch vụ + đối tượng webhook:
- Env:
GOOGLE_CHAT_SERVICE_ACCOUNT_FILE=/path/to/service-account.json - Hoặc config:
channels.googlechat.serviceAccountFile: "/path/to/service-account.json".
- Env:
- Đặt loại đối tượng webhook + giá trị (khớp với cấu hình ứng dụng Chat của bạn).
- Khởi động gateway. Google Chat sẽ gửi POST đến đường dẫn webhook của bạn.
Thêm vào Google Chat
Khi gateway đang chạy và email của bạn đã được thêm vào danh sách hiển thị:- Truy cập Google Chat.
- Nhấp vào biểu tượng + bên cạnh Direct Messages.
- Trong thanh tìm kiếm (nơi bạn thường thêm người), nhập App name bạn đã cấu hình trong Google Cloud Console.
- Lưu ý: Bot sẽ không xuất hiện trong danh sách duyệt “Marketplace” vì đây là ứng dụng riêng tư. Bạn phải tìm kiếm theo tên.
- Chọn bot của bạn từ kết quả.
- Nhấp Add hoặc Chat để bắt đầu cuộc trò chuyện 1:1.
- Gửi “Hello” để kích hoạt trợ lý!
URL công khai (Chỉ webhook)
Webhook Google Chat yêu cầu một endpoint HTTPS công khai. Để bảo mật, chỉ nên mở đường dẫn/googlechat ra internet. Giữ dashboard OpenClaw và các endpoint nhạy cảm khác trong mạng riêng của bạn.
Lựa chọn A: Tailscale Funnel (Khuyến nghị)
Sử dụng Tailscale Serve cho dashboard riêng tư và Funnel cho đường dẫn webhook công khai. Điều này giữ/ riêng tư trong khi chỉ mở /googlechat.
-
Kiểm tra địa chỉ mà gateway của bạn đang kết nối:
Ghi lại địa chỉ IP (ví dụ:
127.0.0.1,0.0.0.0, hoặc IP Tailscale của bạn như100.x.x.x). -
Chỉ mở dashboard cho tailnet (cổng 8443):
-
Chỉ mở đường dẫn webhook công khai:
- Ủy quyền cho node để truy cập Funnel: Nếu được yêu cầu, truy cập URL ủy quyền hiển thị trong output để kích hoạt Funnel cho node này trong chính sách tailnet của bạn.
-
Xác minh cấu hình:
https://<node-name>.<tailnet>.ts.net/googlechat
Dashboard riêng tư của bạn chỉ dành cho tailnet:
https://<node-name>.<tailnet>.ts.net:8443/
Sử dụng URL công khai (không có :8443) trong cấu hình ứng dụng Google Chat.
Lưu ý: Cấu hình này sẽ tồn tại qua các lần khởi động lại. Để xóa sau này, chạytailscale funnel resetvàtailscale serve reset.
Lựa chọn B: Reverse Proxy (Caddy)
Nếu bạn sử dụng reverse proxy như Caddy, chỉ proxy đường dẫn cụ thể:your-domain.com/ sẽ bị bỏ qua hoặc trả về 404, trong khi your-domain.com/googlechat được định tuyến an toàn đến OpenClaw.
Lựa chọn C: Cloudflare Tunnel
Cấu hình quy tắc ingress của tunnel để chỉ định tuyến đường dẫn webhook:- Path:
/googlechat->http://localhost:18789/googlechat - Default Rule: HTTP 404 (Not Found)
Cách hoạt động
- Google Chat gửi các yêu cầu POST webhook đến gateway. Mỗi yêu cầu bao gồm một header
Authorization: Bearer <token>.- OpenClaw xác minh xác thực bearer trước khi đọc/phân tích toàn bộ nội dung webhook khi header có mặt.
- Các yêu cầu Google Workspace Add-on mang
authorizationEventObject.systemIdTokentrong nội dung được hỗ trợ qua ngân sách tiền xác thực nghiêm ngặt hơn.
- OpenClaw xác minh token dựa trên
audienceType+audienceđã cấu hình:audienceType: "app-url"→ audience là URL webhook HTTPS của bạn.audienceType: "project-number"→ audience là số dự án Cloud.
- Tin nhắn được định tuyến theo không gian:
- Tin nhắn trực tiếp sử dụng khóa phiên
agent:<agentId>:googlechat:direct:<spaceId>. - Không gian sử dụng khóa phiên
agent:<agentId>:googlechat:group:<spaceId>.
- Tin nhắn trực tiếp sử dụng khóa phiên
- Truy cập tin nhắn trực tiếp mặc định là ghép đôi. Người gửi không xác định nhận mã ghép đôi; phê duyệt với:
openclaw pairing approve googlechat <code>
- Không gian nhóm yêu cầu @-mention mặc định. Sử dụng
botUsernếu phát hiện mention cần tên người dùng của ứng dụng.
Mục tiêu
Sử dụng các định danh này cho việc gửi và danh sách cho phép:- Tin nhắn trực tiếp:
users/<userId>(khuyến nghị). - Email thô
name@example.comcó thể thay đổi và chỉ được sử dụng cho việc khớp danh sách cho phép trực tiếp khichannels.googlechat.dangerouslyAllowNameMatching: true. - Đã ngừng sử dụng:
users/<email>được coi là id người dùng, không phải danh sách cho phép email. - Không gian:
spaces/<spaceId>.
Điểm nổi bật của cấu hình
- Thông tin xác thực tài khoản dịch vụ cũng có thể được truyền inline với
serviceAccount(chuỗi JSON). serviceAccountRefcũng được hỗ trợ (env/file SecretRef), bao gồm các tham chiếu theo tài khoản dướichannels.googlechat.accounts.<id>.serviceAccountRef.- Đường dẫn webhook mặc định là
/googlechatnếuwebhookPathkhông được đặt. dangerouslyAllowNameMatchingkích hoạt lại việc khớp email có thể thay đổi cho danh sách cho phép (chế độ tương thích khẩn cấp).- Reactions có sẵn qua công cụ
reactionsvàchannels actionkhiactions.reactionsđược kích hoạt. typingIndicatorhỗ trợnone,message(mặc định), vàreaction(reaction yêu cầu OAuth người dùng).- Tệp đính kèm được tải xuống qua Chat API và lưu trữ trong pipeline media (kích thước giới hạn bởi
mediaMaxMb).
Khắc phục sự cố
405 Method Not Allowed
Nếu Google Cloud Logs Explorer hiển thị lỗi như:-
Kênh chưa được cấu hình: Phần
channels.googlechatthiếu trong cấu hình của bạn. Xác minh với:Nếu trả về “Config path not found”, thêm cấu hình (xem Điểm nổi bật của cấu hình). -
Plugin chưa được kích hoạt: Kiểm tra trạng thái plugin:
Nếu hiển thị “disabled”, thêm
plugins.entries.googlechat.enabled: truevào cấu hình của bạn. -
Gateway chưa được khởi động lại: Sau khi thêm cấu hình, khởi động lại gateway:
Các vấn đề khác
- Kiểm tra
openclaw channels status --probeđể tìm lỗi xác thực hoặc cấu hình audience thiếu. - Nếu không có tin nhắn nào đến, xác nhận URL webhook + đăng ký sự kiện của ứng dụng Chat.
- Nếu việc chặn mention ngăn cản phản hồi, đặt
botUserthành tên tài nguyên người dùng của ứng dụng và xác minhrequireMention. - Sử dụng
openclaw logs --followtrong khi gửi tin nhắn thử nghiệm để xem liệu yêu cầu có đến gateway không.