Google Chat

Google Chat — канал для тех, кто использует Google Workspace. Бот работает через HTTP-вебхуки: Google отправляет POST-запросы на ваш Gateway.

Настройка

1. Google Cloud проект

  • Откройте Google Chat API Credentials
  • Включите Google Chat API, если ещё не включён
  • 2. Service Account

  • Create CredentialsService Account
  • Назовите как хотите (например, openclaw-chat)
  • Permissions — пропустите, Principals — пропустите
  • В списке аккаунтов → вкладка KeysAdd KeyCreate new keyJSON
  • Сохраните JSON-файл на Gateway: ~/.openclaw/googlechat-service-account.json
  • 3. Приложение в Google Chat

    В Google Cloud Console Chat Configuration:

  • Application info: имя, аватар, описание
  • Включите Interactive features
  • Functionality → поставьте Join spaces and group conversations
  • Connection settingsHTTP endpoint URL
  • TriggersUse a common HTTP endpoint URL for all triggers → ваш публичный URL + /googlechat
  • VisibilityMake this Chat app available to specific people and groups → введите ваш email
  • Save
  • После сохранения обновите страницу → найдите App status → поставьте LiveSave снова
  • 4. Добавить бота в Google Chat

  • Откройте Google Chat
  • Нажмите + рядом с Direct Messages
  • В поиске введите имя бота (бот не в Marketplace — ищите по имени)
  • Выберите бота → Add или Chat
  • Отправьте «Hello» для теста
  • 5. Конфигурация OpenClaw

    {
      channels: {
        googlechat: {
          enabled: true,
          serviceAccountFile: "~/.openclaw/googlechat-service-account.json",
          audienceType: "app-url",
          audience: "https://gateway.example.com/googlechat",
          webhookPath: "/googlechat",
          botUser: "users/1234567890",
          dm: {
            policy: "pairing",
            allowFrom: ["users/1234567890"],
          },
          groupPolicy: "allowlist",
          groups: {
            "spaces/AAAA": {
              allow: true,
              requireMention: true,
              users: ["users/1234567890"],
            },
          },
        },
      },
    }
    

    Или через env: GOOGLE_CHAT_SERVICE_ACCOUNT_FILE=/path/to/service-account.json

    Публичный URL (вебхук)

    Google Chat требует публичный HTTPS-эндпоинт. Откройте только /googlechat, остальное оставьте приватным.

    Tailscale Funnel (рекомендуется)

    # Dashboard для tailnet (приватный)
    tailscale serve --bg --https 8443 http://127.0.0.1:18789
    
    # Только webhook публично
    tailscale funnel --bg --set-path /googlechat http://127.0.0.1:18789/googlechat
    

    Публичный URL: https://..ts.net/googlechat

    Приватный dashboard: https://..ts.net:8443/

    Caddy (reverse proxy)

    your-domain.com {
        reverse_proxy /googlechat* localhost:18789
    }
    

    Cloudflare Tunnel

  • Path: /googlechathttp://localhost:18789/googlechat
  • Default Rule: HTTP 404
  • Как работает

  • Google Chat отправляет POST на ваш webhook
  • OpenClaw проверяет Bearer-токен в заголовке Authorization
  • Токен сверяется с настроенным audienceType + audience:
  • app-url — audience = ваш HTTPS webhook URL

    project-number — audience = номер Cloud-проекта

  • Маршрутизация по session key:
  • — DM: agent::googlechat:direct:

    — Spaces: agent::googlechat:group:

  • DM — pairing по умолчанию. Spaces — @-mention по умолчанию.
  • Идентификаторы

    Тип Формат
    DM `users/`
    Spaces `spaces/`

    Email (name@example.com) мутабельный — используйте users/ для allowlists.

    Troubleshooting

    405 Method Not Allowed

  • Проверьте конфиг: openclaw config get channels.googlechat
  • Проверьте плагин: openclaw plugins list | grep googlechat
  • Перезапустите: openclaw gateway restart
  • Другое

  • openclaw channels status --probe — проверка авторизации
  • openclaw logs --follow — логи при отправке тестового сообщения
  • Если mention не работает — проверьте botUser и requireMention
  • Что дальше

  • Telegram — альтернативный канал
  • Конфигурация Gateway — общие настройки