Стан: завантажуваний Plugin для особистих повідомлень і просторів через Webhook-и Google Chat API (лише HTTP).Documentation Index
Fetch the complete documentation index at: https://docs.openclaw.ai/llms.txt
Use this file to discover all available pages before exploring further.
Установлення
Установіть Google Chat перед налаштуванням каналу:Швидке налаштування (для початківців)
- Створіть проєкт Google Cloud і ввімкніть Google Chat API.
- Перейдіть до: Облікові дані Google Chat API
- Увімкніть API, якщо його ще не ввімкнено.
- Створіть Service Account:
- Натисніть Create Credentials > Service Account.
- Назвіть його як завгодно (наприклад,
openclaw-chat). - Залиште дозволи порожніми (натисніть Continue).
- Залиште principals із доступом порожніми (натисніть Done).
- Створіть і завантажте JSON Key:
- У списку service accounts натисніть щойно створений обліковий запис.
- Перейдіть на вкладку Keys.
- Натисніть Add Key > Create new key.
- Виберіть JSON і натисніть Create.
- Збережіть завантажений JSON-файл на хості Gateway (наприклад,
~/.openclaw/googlechat-service-account.json). - Створіть застосунок Google Chat у конфігурації Chat у Google Cloud Console:
- Заповніть Application info:
- App name: (наприклад,
OpenClaw) - Avatar URL: (наприклад,
https://openclaw.ai/logo.png) - Description: (наприклад,
Personal AI Assistant)
- App name: (наприклад,
- Увімкніть Interactive features.
- У розділі Functionality позначте Join spaces and group conversations.
- У розділі Connection settings виберіть HTTP endpoint URL.
- У розділі Triggers виберіть Use a common HTTP endpoint URL for all triggers і задайте публічний URL вашого Gateway з доданим
/googlechat.- Порада: запустіть
openclaw status, щоб знайти публічний URL вашого Gateway.
- Порада: запустіть
- У розділі Visibility позначте Make this Chat app available to specific people and groups in
<Your Domain>. - Введіть свою адресу електронної пошти (наприклад,
user@example.com) у текстове поле. - Натисніть Save внизу.
- Заповніть Application info:
- Увімкніть стан застосунку:
- Після збереження оновіть сторінку.
- Знайдіть розділ App status (зазвичай біля верху або низу після збереження).
- Змініть стан на Live - available to users.
- Знову натисніть Save.
- Налаштуйте OpenClaw із шляхом до service account + аудиторією Webhook:
- Env:
GOOGLE_CHAT_SERVICE_ACCOUNT_FILE=/path/to/service-account.json - Або config:
channels.googlechat.serviceAccountFile: "/path/to/service-account.json".
- Env:
- Задайте тип аудиторії Webhook + значення (відповідає конфігурації вашого застосунку Chat).
- Запустіть Gateway. Google Chat надсилатиме POST-запити на шлях вашого Webhook.
Додавання до Google Chat
Коли Gateway запущено, а вашу електронну пошту додано до списку видимості:- Перейдіть до Google Chat.
- Натисніть піктограму + (плюс) поруч із Direct Messages.
- У рядку пошуку (де ви зазвичай додаєте людей) введіть App name, який ви налаштували в Google Cloud Console.
- Примітка: бот не з’явиться у списку перегляду “Marketplace”, бо це приватний застосунок. Його потрібно знайти за назвою.
- Виберіть свого бота з результатів.
- Натисніть Add або Chat, щоб почати розмову 1:1.
- Надішліть “Hello”, щоб запустити асистента!
Публічний URL (лише Webhook)
Webhook-и Google Chat потребують публічної HTTPS-точки доступу. З міркувань безпеки відкривайте в інтернет лише шлях/googlechat. Панель керування OpenClaw та інші чутливі точки доступу тримайте у приватній мережі.
Варіант A: Tailscale Funnel (рекомендовано)
Використовуйте Tailscale Serve для приватної панелі керування і Funnel для публічного шляху Webhook. Так/ лишається приватним, а відкривається лише /googlechat.
-
Перевірте, до якої адреси прив’язаний ваш Gateway:
Занотуйте IP-адресу (наприклад,
127.0.0.1,0.0.0.0або вашу Tailscale IP на кшталт100.x.x.x). -
Відкрийте панель керування лише для tailnet (порт 8443):
-
Публічно відкрийте лише шлях Webhook:
- Авторизуйте node для доступу Funnel: Якщо з’явиться запит, перейдіть за URL авторизації, показаним у виводі, щоб увімкнути Funnel для цього node у політиці вашого tailnet.
-
Перевірте конфігурацію:
https://<node-name>.<tailnet>.ts.net/googlechat
Ваша приватна панель керування лишається доступною лише в tailnet:
https://<node-name>.<tailnet>.ts.net:8443/
Використовуйте публічний URL (без :8443) у конфігурації застосунку Google Chat.
Примітка: ця конфігурація зберігається після перезавантажень. Щоб пізніше її прибрати, запустітьtailscale funnel resetіtailscale serve reset.
Варіант B: Reverse Proxy (Caddy)
Якщо ви використовуєте reverse proxy на кшталт Caddy, проксіюйте лише конкретний шлях:your-domain.com/ буде проігноровано або поверне 404, тоді як your-domain.com/googlechat буде безпечно спрямовано до OpenClaw.
Варіант C: Cloudflare Tunnel
Налаштуйте ingress-правила вашого tunnel так, щоб маршрутизувати лише шлях Webhook:- Path:
/googlechat->http://localhost:18789/googlechat - Default Rule: HTTP 404 (Not Found)
Як це працює
- Google Chat надсилає Webhook POST-запити до Gateway. Кожен запит містить заголовок
Authorization: Bearer <token>.- OpenClaw перевіряє bearer auth перед читанням/розбором повних тіл Webhook, коли заголовок присутній.
- Запити Google Workspace Add-on, які містять
authorizationEventObject.systemIdTokenу тілі, підтримуються через суворіший ліміт тіла до автентифікації.
- OpenClaw перевіряє token відносно налаштованих
audienceType+audience:audienceType: "app-url"→ аудиторія — це ваш HTTPS URL Webhook.audienceType: "project-number"→ аудиторія — це номер Cloud project.
- Повідомлення маршрутизуються за простором:
- Особисті повідомлення використовують ключ сесії
agent:<agentId>:googlechat:direct:<spaceId>. - Простори використовують ключ сесії
agent:<agentId>:googlechat:group:<spaceId>.
- Особисті повідомлення використовують ключ сесії
- Доступ до особистих повідомлень за замовчуванням працює через pairing. Невідомі відправники отримують код pairing; підтвердьте його так:
openclaw pairing approve googlechat <code>
- Групові простори за замовчуванням потребують @-згадки. Використовуйте
botUser, якщо для виявлення згадки потрібне ім’я користувача застосунку.
Цілі
Використовуйте ці ідентифікатори для доставки й allowlists:- Особисті повідомлення:
users/<userId>(рекомендовано). - Необроблена електронна адреса
name@example.comє змінною і використовується лише для зіставлення direct allowlist, колиchannels.googlechat.dangerouslyAllowNameMatching: true. - Застаріло:
users/<email>обробляється як user id, а не як email allowlist. - Простори:
spaces/<spaceId>.
Основні параметри конфігурації
- Облікові дані service account також можна передати inline через
serviceAccount(JSON-рядок). serviceAccountRefтакож підтримується (env/file SecretRef), включно з refs для окремих облікових записів уchannels.googlechat.accounts.<id>.serviceAccountRef.- Стандартний шлях Webhook —
/googlechat, якщоwebhookPathне задано. dangerouslyAllowNameMatchingповторно вмикає зіставлення змінних email principals для allowlists (режим сумісності break-glass).- Реакції доступні через інструмент
reactionsіchannels action, колиactions.reactionsувімкнено. - Дії з повідомленнями надають
sendдля тексту таupload-fileдля явного надсилання вкладень.upload-fileприймаєmedia/filePath/path, а також необов’язковіmessage,filenameі thread targeting. typingIndicatorпідтримуєnone,message(за замовчуванням) іreaction(для реакції потрібен OAuth користувача).- Вкладення завантажуються через Chat API і зберігаються в media pipeline (розмір обмежено
mediaMaxMb).
Усунення несправностей
405 Method Not Allowed
Якщо Google Cloud Logs Explorer показує помилки на кшталт:-
Канал не налаштовано: у вашій конфігурації відсутній розділ
channels.googlechat. Перевірте так:Якщо повертається “Config path not found”, додайте конфігурацію (див. Основні параметри конфігурації). -
Plugin не ввімкнено: перевірте стан Plugin:
Якщо показано “disabled”, додайте
plugins.entries.googlechat.enabled: trueдо своєї конфігурації. -
Gateway не перезапущено: після додавання конфігурації перезапустіть Gateway:
Інші проблеми
- Перевірте
openclaw channels status --probeна помилки автентифікації або відсутню конфігурацію аудиторії. - Якщо повідомлення не надходять, підтвердьте URL Webhook застосунку Chat + підписки на події.
- Якщо фільтр згадок блокує відповіді, задайте
botUserяк ім’я ресурсу користувача застосунку й перевіртеrequireMention. - Використовуйте
openclaw logs --followпід час надсилання тестового повідомлення, щоб побачити, чи доходять запити до Gateway.
Пов’язане
- Огляд каналів — усі підтримувані канали
- Pairing — автентифікація особистих повідомлень і потік pairing
- Групи — поведінка групових чатів і фільтрація згадок
- Маршрутизація каналів — маршрутизація сесій для повідомлень
- Безпека — модель доступу та посилення захисту