Status: Plugin do pobrania dla wiadomości bezpośrednich i pokoi przez webhooki Google Chat API (tylko 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.
Instalacja
Zainstaluj Google Chat przed skonfigurowaniem kanału:Szybka konfiguracja (dla początkujących)
- Utwórz projekt Google Cloud i włącz Google Chat API.
- Przejdź do: Dane uwierzytelniające Google Chat API
- Włącz API, jeśli nie jest jeszcze włączone.
- Utwórz konto usługi:
- Naciśnij Utwórz dane uwierzytelniające > Konto usługi.
- Nazwij je dowolnie (np.
openclaw-chat). - Pozostaw uprawnienia puste (naciśnij Kontynuuj).
- Pozostaw podmioty z dostępem puste (naciśnij Gotowe).
- Utwórz i pobierz klucz JSON:
- Na liście kont usług kliknij to, które właśnie utworzyłeś.
- Przejdź do karty Klucze.
- Kliknij Dodaj klucz > Utwórz nowy klucz.
- Wybierz JSON i naciśnij Utwórz.
- Zapisz pobrany plik JSON na hoście Gateway (np.
~/.openclaw/googlechat-service-account.json). - Utwórz aplikację Google Chat w konfiguracji czatu Google Cloud Console:
- Wypełnij Informacje o aplikacji:
- Nazwa aplikacji: (np.
OpenClaw) - Adres URL awatara: (np.
https://openclaw.ai/logo.png) - Opis: (np.
Personal AI Assistant)
- Nazwa aplikacji: (np.
- Włącz Funkcje interaktywne.
- W sekcji Funkcjonalność zaznacz Dołączanie do pokoi i rozmów grupowych.
- W sekcji Ustawienia połączenia wybierz Adres URL punktu końcowego HTTP.
- W sekcji Wyzwalacze wybierz Użyj wspólnego adresu URL punktu końcowego HTTP dla wszystkich wyzwalaczy i ustaw go na publiczny URL swojego Gateway z dodanym
/googlechat.- Wskazówka: uruchom
openclaw status, aby znaleźć publiczny URL swojego Gateway.
- Wskazówka: uruchom
- W sekcji Widoczność zaznacz Udostępnij tę aplikację Chat określonym osobom i grupom w
<Your Domain>. - Wpisz swój adres e-mail (np.
user@example.com) w polu tekstowym. - Kliknij Zapisz na dole.
- Wypełnij Informacje o aplikacji:
- Włącz status aplikacji:
- Po zapisaniu odśwież stronę.
- Znajdź sekcję Status aplikacji (zwykle u góry lub u dołu po zapisaniu).
- Zmień status na Aktywna - dostępna dla użytkowników.
- Ponownie kliknij Zapisz.
- Skonfiguruj OpenClaw ze ścieżką do konta usługi i odbiorcą webhooka:
- Env:
GOOGLE_CHAT_SERVICE_ACCOUNT_FILE=/path/to/service-account.json - Albo konfiguracja:
channels.googlechat.serviceAccountFile: "/path/to/service-account.json".
- Env:
- Ustaw typ i wartość odbiorcy webhooka (zgodne z konfiguracją aplikacji Chat).
- Uruchom Gateway. Google Chat będzie wysyłać żądania POST do ścieżki webhooka.
Dodawanie do Google Chat
Gdy Gateway działa, a Twój adres e-mail został dodany do listy widoczności:- Przejdź do Google Chat.
- Kliknij ikonę + (plus) obok Wiadomości bezpośrednie.
- W pasku wyszukiwania (tam, gdzie zwykle dodajesz osoby) wpisz nazwę aplikacji skonfigurowaną w Google Cloud Console.
- Uwaga: bot nie pojawi się na liście przeglądania „Marketplace”, ponieważ jest aplikacją prywatną. Musisz wyszukać go po nazwie.
- Wybierz bota z wyników.
- Kliknij Dodaj lub Czat, aby rozpocząć rozmowę 1:1.
- Wyślij „Hello”, aby uruchomić asystenta!
Publiczny URL (tylko Webhook)
Webhooki Google Chat wymagają publicznego punktu końcowego HTTPS. Ze względów bezpieczeństwa udostępniaj w internecie tylko ścieżkę/googlechat. Panel OpenClaw i inne wrażliwe punkty końcowe pozostaw w sieci prywatnej.
Opcja A: Tailscale Funnel (zalecane)
Użyj Tailscale Serve dla prywatnego panelu i Funnel dla publicznej ścieżki webhooka. Dzięki temu/ pozostaje prywatne, a publicznie udostępnione jest tylko /googlechat.
-
Sprawdź, z jakim adresem powiązany jest Twój Gateway:
Zanotuj adres IP (np.
127.0.0.1,0.0.0.0albo Twój adres IP Tailscale, taki jak100.x.x.x). -
Udostępnij panel tylko w tailnet (port 8443):
-
Udostępnij publicznie tylko ścieżkę webhooka:
- Autoryzuj Node do dostępu Funnel: Jeśli pojawi się monit, odwiedź URL autoryzacji widoczny w danych wyjściowych, aby włączyć Funnel dla tego Node w swojej polityce tailnet.
-
Zweryfikuj konfigurację:
https://<node-name>.<tailnet>.ts.net/googlechat
Twój prywatny panel pozostaje dostępny tylko w tailnet:
https://<node-name>.<tailnet>.ts.net:8443/
Użyj publicznego URL (bez :8443) w konfiguracji aplikacji Google Chat.
Uwaga: ta konfiguracja utrzymuje się po ponownych uruchomieniach. Aby usunąć ją później, uruchomtailscale funnel resetitailscale serve reset.
Opcja B: Odwrotny proxy (Caddy)
Jeśli używasz odwrotnego proxy, takiego jak Caddy, przekierowuj tylko konkretną ścieżkę:your-domain.com/ zostanie zignorowane albo zwróci 404, natomiast your-domain.com/googlechat zostanie bezpiecznie przekierowane do OpenClaw.
Opcja C: Cloudflare Tunnel
Skonfiguruj reguły ingress swojego tunelu tak, aby kierowały tylko ścieżkę webhooka:- Ścieżka:
/googlechat->http://localhost:18789/googlechat - Reguła domyślna: HTTP 404 (Nie znaleziono)
Jak to działa
- Google Chat wysyła webhookowe żądania POST do Gateway. Każde żądanie zawiera nagłówek
Authorization: Bearer <token>.- OpenClaw weryfikuje uwierzytelnianie bearer przed odczytaniem/przetworzeniem pełnych treści webhooka, gdy nagłówek jest obecny.
- Żądania dodatków Google Workspace zawierające
authorizationEventObject.systemIdTokenw treści są obsługiwane przez bardziej rygorystyczny budżet treści przed uwierzytelnieniem.
- OpenClaw weryfikuje token względem skonfigurowanych
audienceTypeiaudience:audienceType: "app-url"→ odbiorcą jest HTTPS URL webhooka.audienceType: "project-number"→ odbiorcą jest numer projektu Cloud.
- Wiadomości są kierowane według pokoju:
- Wiadomości bezpośrednie używają klucza sesji
agent:<agentId>:googlechat:direct:<spaceId>. - Pokoje używają klucza sesji
agent:<agentId>:googlechat:group:<spaceId>.
- Wiadomości bezpośrednie używają klucza sesji
- Dostęp do wiadomości bezpośrednich domyślnie odbywa się przez parowanie. Nieznani nadawcy otrzymują kod parowania; zatwierdź go za pomocą:
openclaw pairing approve googlechat <code>
- Pokoje grupowe domyślnie wymagają wzmianki @. Użyj
botUser, jeśli wykrywanie wzmianki wymaga nazwy użytkownika aplikacji.
Cele
Używaj tych identyfikatorów do dostarczania i list dozwolonych:- Wiadomości bezpośrednie:
users/<userId>(zalecane). - Surowy adres e-mail
name@example.comjest zmienny i używany tylko do dopasowywania bezpośredniej listy dozwolonych, gdychannels.googlechat.dangerouslyAllowNameMatching: true. - Przestarzałe:
users/<email>jest traktowane jako identyfikator użytkownika, a nie lista dozwolonych adresów e-mail. - Pokoje:
spaces/<spaceId>.
Najważniejsze elementy konfiguracji
- Dane uwierzytelniające konta usługi można też przekazać wprost przez
serviceAccount(ciąg JSON). - Obsługiwane jest także
serviceAccountRef(env/file SecretRef), w tym referencje dla poszczególnych kont wchannels.googlechat.accounts.<id>.serviceAccountRef. - Domyślna ścieżka webhooka to
/googlechat, jeśliwebhookPathnie jest ustawione. dangerouslyAllowNameMatchingponownie włącza dopasowywanie zmiennych głównych adresów e-mail dla list dozwolonych (tryb zgodności awaryjnej).- Reakcje są dostępne przez narzędzie
reactionsichannels action, gdyactions.reactionsjest włączone. - Akcje wiadomości udostępniają
senddla tekstu orazupload-filedla jawnego wysyłania załączników.upload-fileakceptujemedia/filePath/pathoraz opcjonalniemessage,filenamei wskazanie wątku. typingIndicatorobsługujenone,message(domyślnie) ireaction(reakcja wymaga OAuth użytkownika).- Załączniki są pobierane przez Chat API i zapisywane w potoku multimediów (rozmiar ograniczony przez
mediaMaxMb).
Rozwiązywanie problemów
405 Method Not Allowed
Jeśli Google Cloud Logs Explorer pokazuje błędy takie jak:-
Kanał nie jest skonfigurowany: sekcji
channels.googlechatbrakuje w konfiguracji. Zweryfikuj to za pomocą:Jeśli zwraca „Config path not found”, dodaj konfigurację (zobacz Najważniejsze elementy konfiguracji). -
Plugin nie jest włączony: sprawdź status Plugin:
Jeśli pokazuje „disabled”, dodaj
plugins.entries.googlechat.enabled: truedo konfiguracji. -
Gateway nie został ponownie uruchomiony: po dodaniu konfiguracji uruchom ponownie Gateway:
Inne problemy
- Sprawdź
openclaw channels status --probepod kątem błędów uwierzytelniania lub brakującej konfiguracji odbiorcy. - Jeśli wiadomości nie przychodzą, potwierdź URL webhooka aplikacji Chat i subskrypcje zdarzeń.
- Jeśli bramkowanie wzmianek blokuje odpowiedzi, ustaw
botUserna nazwę zasobu użytkownika aplikacji i zweryfikujrequireMention. - Użyj
openclaw logs --followpodczas wysyłania wiadomości testowej, aby sprawdzić, czy żądania docierają do Gateway.
Powiązane
- Przegląd kanałów — wszystkie obsługiwane kanały
- Parowanie — uwierzytelnianie wiadomości bezpośrednich i przepływ parowania
- Grupy — zachowanie czatu grupowego i bramkowanie wzmianek
- Routing kanałów — routing sesji dla wiadomości
- Bezpieczeństwo — model dostępu i wzmacnianie zabezpieczeń