Status: eksperymentalny. Ta integracja automatyzuje osobiste konto Zalo przez natywneDocumentation Index
Fetch the complete documentation index at: https://docs.openclaw.ai/llms.txt
Use this file to discover all available pages before exploring further.
zca-js w OpenClaw.
Dołączony Plugin
Zalo Personal jest dostarczany jako dołączony Plugin w obecnych wydaniach OpenClaw, więc zwykłe kompilacje pakietowe nie wymagają oddzielnej instalacji. Jeśli używasz starszej kompilacji albo niestandardowej instalacji, która wyklucza Zalo Personal, zainstaluj pakiet npm bezpośrednio:- Instalacja przez CLI:
openclaw plugins install @openclaw/zalouser - Przypięta wersja:
openclaw plugins install @openclaw/zalouser@2026.5.2 - Albo z checkoutu źródłowego:
openclaw plugins install ./path/to/local/zalouser-plugin - Szczegóły: Pluginy
zca/openzca.
Szybka konfiguracja (dla początkujących)
- Upewnij się, że Plugin Zalo Personal jest dostępny.
- Obecne pakietowe wydania OpenClaw już go zawierają.
- Starsze/niestandardowe instalacje mogą dodać go ręcznie za pomocą powyższych poleceń.
- Zaloguj się (QR, na maszynie Gateway):
openclaw channels login --channel zalouser- Zeskanuj kod QR aplikacją mobilną Zalo.
- Włącz kanał:
- Uruchom ponownie Gateway (albo dokończ konfigurację).
- Dostęp do DM domyślnie używa parowania; zatwierdź kod parowania przy pierwszym kontakcie.
Czym to jest
- Działa całkowicie w procesie przez
zca-js. - Używa natywnych listenerów zdarzeń do odbierania wiadomości przychodzących.
- Wysyła odpowiedzi bezpośrednio przez API JS (tekst/media/link).
- Zaprojektowane dla przypadków użycia „osobistego konta”, gdy Zalo Bot API nie jest dostępne.
Nazewnictwo
Identyfikator kanału tozalouser, aby jednoznacznie wskazać, że automatyzuje osobiste konto użytkownika Zalo (nieoficjalnie). zalo pozostawiamy zarezerwowane dla potencjalnej przyszłej oficjalnej integracji z Zalo API.
Znajdowanie ID (katalog)
Użyj CLI katalogu, aby odkrywać osoby/grupy i ich ID:Ograniczenia
- Tekst wychodzący jest dzielony na fragmenty po około 2000 znaków (limity klienta Zalo).
- Streaming jest domyślnie blokowany.
Kontrola dostępu (DM)
channels.zalouser.dmPolicy obsługuje: pairing | allowlist | open | disabled (domyślnie: pairing).
channels.zalouser.allowFrom powinno używać stabilnych ID użytkowników Zalo. Może też odwoływać się do statycznych grup dostępu nadawców (accessGroup:<name>). Podczas interaktywnej konfiguracji wprowadzone nazwy mogą zostać rozwiązane do ID przy użyciu wyszukiwania kontaktów w procesie Pluginu.
Jeśli surowa nazwa pozostaje w konfiguracji, przy starcie jest rozwiązywana tylko wtedy, gdy włączono channels.zalouser.dangerouslyAllowNameMatching: true. Bez tej zgody sprawdzanie nadawców w runtime działa wyłącznie na ID, a surowe nazwy są ignorowane podczas autoryzacji.
Zatwierdź przez:
openclaw pairing list zalouseropenclaw pairing approve zalouser <code>
Dostęp grupowy (opcjonalnie)
- Domyślnie:
channels.zalouser.groupPolicy = "open"(grupy dozwolone). Użyjchannels.defaults.groupPolicy, aby nadpisać wartość domyślną, gdy nie jest ustawiona. - Ogranicz do listy dozwolonych za pomocą:
channels.zalouser.groupPolicy = "allowlist"channels.zalouser.groups(kluczami powinny być stabilne ID grup; nazwy są rozwiązywane do ID przy starcie tylko wtedy, gdy włączonochannels.zalouser.dangerouslyAllowNameMatching: true)channels.zalouser.groupAllowFrom(kontroluje, którzy nadawcy w dozwolonych grupach mogą wywołać bota; do statycznych grup dostępu nadawców można odwoływać się przezaccessGroup:<name>)
- Zablokuj wszystkie grupy:
channels.zalouser.groupPolicy = "disabled". - Kreator konfiguracji może zapytać o listy dozwolonych grup.
- Przy starcie OpenClaw rozwiązuje nazwy grup/użytkowników na listach dozwolonych do ID i loguje mapowanie tylko wtedy, gdy włączono
channels.zalouser.dangerouslyAllowNameMatching: true. - Dopasowywanie listy dozwolonych grup jest domyślnie wyłącznie oparte na ID. Nierozwiązane nazwy są ignorowane na potrzeby uwierzytelniania, chyba że włączono
channels.zalouser.dangerouslyAllowNameMatching: true. channels.zalouser.dangerouslyAllowNameMatching: trueto awaryjny tryb zgodności, który ponownie włącza zmienne rozwiązywanie nazw przy starcie i dopasowywanie nazw grup w runtime.- Jeśli
groupAllowFromnie jest ustawione, runtime wraca doallowFrompodczas sprawdzania nadawców grupowych. - Sprawdzanie nadawców dotyczy zarówno zwykłych wiadomości grupowych, jak i poleceń sterujących (na przykład
/new,/reset).
Bramkowanie wzmianek w grupie
channels.zalouser.groups.<group>.requireMentionkontroluje, czy odpowiedzi grupowe wymagają wzmianki.- Kolejność rozwiązywania: dokładne ID/nazwa grupy -> znormalizowany slug grupy ->
*-> domyślnie (true). - Dotyczy to zarówno grup z listy dozwolonych, jak i trybu otwartych grup.
- Zacytowanie wiadomości bota liczy się jako niejawna wzmianka aktywująca grupę.
- Autoryzowane polecenia sterujące (na przykład
/new) mogą pominąć bramkowanie wzmiankami. - Gdy wiadomość grupowa zostanie pominięta, ponieważ wymagana jest wzmianka, OpenClaw zapisuje ją jako oczekującą historię grupy i dołącza ją do następnej przetwarzanej wiadomości grupowej.
- Limit historii grupowej domyślnie wynosi
messages.groupChat.historyLimit(wartość zapasowa50). Możesz nadpisać go dla konta za pomocąchannels.zalouser.historyLimit.
Wiele kont
Konta mapują się na profilezalouser w stanie OpenClaw. Przykład:
Pisanie, reakcje i potwierdzenia dostarczenia
- OpenClaw wysyła zdarzenie pisania przed wysłaniem odpowiedzi (best-effort).
- Akcja reakcji na wiadomość
reactjest obsługiwana dlazalouserw akcjach kanału.- Użyj
remove: true, aby usunąć z wiadomości konkretną reakcję emoji. - Semantyka reakcji: Reakcje
- Użyj
- Dla wiadomości przychodzących zawierających metadane zdarzeń OpenClaw wysyła potwierdzenia dostarczenia i odczytania (best-effort).
Rozwiązywanie problemów
Logowanie się nie utrzymuje:openclaw channels status --probe- Ponowne logowanie:
openclaw channels logout --channel zalouser && openclaw channels login --channel zalouser
- Użyj numerycznych ID w
allowFrom/groupAllowFromi stabilnych ID grup wgroups. Jeśli celowo potrzebujesz dokładnych nazw znajomych/grup, włączchannels.zalouser.dangerouslyAllowNameMatching: true.
- Usuń wszelkie stare założenia dotyczące zewnętrznego procesu
zca. - Kanał działa teraz w pełni w OpenClaw bez zewnętrznych binarnych plików CLI.
Powiązane
- Przegląd kanałów — wszystkie obsługiwane kanały
- Parowanie — uwierzytelnianie DM 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 utwardzanie