Regional platforms
Zalo privat
Status: experimentell. Diese Integration automatisiert ein persönliches Zalo-Konto prozessintern über das native zca-js, ohne externe CLI-Binärdatei.
Installation
Zalo Personal ist ein offizielles externes Plugin und nicht im Kern enthalten. Installieren Sie es vor der Verwendung:
openclaw plugins install @openclaw/zalouser- Version festlegen:
openclaw plugins install @openclaw/zalouser@<version> - Aus einem Quellcode-Checkout:
openclaw plugins install ./path/to/local/zalouser-plugin - Details: Plugins
Schnelleinrichtung
- Installieren Sie das Plugin (siehe oben).
- Melden Sie sich an (per QR-Code auf dem Gateway-Rechner):
openclaw channels login --channel zalouser- Scannen Sie den QR-Code mit der mobilen Zalo-App.
- Aktivieren Sie den Kanal:
{ channels: { zalouser: { enabled: true, dmPolicy: "pairing", }, },}- Starten Sie das Gateway neu (oder schließen Sie die Einrichtung ab).
- Der Zugriff auf Direktnachrichten verwendet standardmäßig die Kopplung; genehmigen Sie beim ersten Kontakt den Kopplungscode.
Funktionsweise
- Wird vollständig prozessintern über die Bibliothek
zca-jsausgeführt (ohne externe Binärdateizca/openzca). - Verwendet native Ereignis-Listener (
message,error), um eingehende Nachrichten zu empfangen. - Sendet Antworten direkt über die JS-API (Text/Medien/Links).
- Ist für Anwendungsfälle mit „persönlichen Konten“ vorgesehen, in denen die Zalo Bot API nicht verfügbar ist.
Benennung
Die Kanal-ID lautet zalouser, um ausdrücklich kenntlich zu machen, dass hier ein persönliches Zalo-Benutzerkonto automatisiert wird (inoffiziell). zalo ist für eine mögliche zukünftige offizielle Integration der Zalo-API reserviert.
IDs ermitteln (Verzeichnis)
openclaw directory self --channel zalouseropenclaw directory peers list --channel zalouser --query "name"openclaw directory groups list --channel zalouser --query "work"Einschränkungen
- Ausgehender Text wird in Abschnitte von jeweils 2.000 Zeichen aufgeteilt (Beschränkung des Zalo-Clients).
- Streaming wird nicht unterstützt.
Zugriffssteuerung (Direktnachrichten)
channels.zalouser.dmPolicy: pairing | allowlist | open | disabled (Standardwert: pairing).
channels.zalouser.allowFrom sollte stabile Zalo-Benutzer-IDs verwenden. Es können auch statische Absenderzugriffsgruppen (accessGroup:<name>) angegeben werden. Während der interaktiven Einrichtung können eingegebene Namen mithilfe der prozessinternen Kontaktsuche des Plugins in IDs aufgelöst werden.
Wenn ein unaufgelöster Name in der Konfiguration verbleibt, wird er beim Start nur aufgelöst, wenn channels.zalouser.dangerouslyAllowNameMatching: true aktiviert ist. Ohne diese ausdrückliche Aktivierung erfolgen Absenderprüfungen zur Laufzeit ausschließlich anhand von IDs; unaufgelöste Namen werden bei der Autorisierung ignoriert.
Genehmigung über:
openclaw pairing list zalouseropenclaw pairing approve zalouser <code>
Gruppenzugriff (optional)
- Standardwert:
channels.zalouser.groupPolicy = "allowlist"(Gruppen benötigen einen ausdrücklichen Eintrag in der Zulassungsliste). - Alle Gruppen öffnen:
channels.zalouser.groupPolicy = "open". - Alle Gruppen sperren:
channels.zalouser.groupPolicy = "disabled". - Bei
groupPolicy = "allowlist":- Die Schlüssel von
channels.zalouser.groupssollten stabile Gruppen-IDs sein; Namen werden beim Start nur dann in IDs aufgelöst, wennchannels.zalouser.dangerouslyAllowNameMatching: trueaktiviert ist. channels.zalouser.groupAllowFromsteuert, welche Absender in zugelassenen Gruppen den Bot auslösen können; statische Absenderzugriffsgruppen können mitaccessGroup:<name>angegeben werden.
- Die Schlüssel von
- Der Konfigurationsassistent kann Zulassungslisten für Gruppen abfragen.
- Der Abgleich der Gruppenzulassungsliste erfolgt standardmäßig ausschließlich anhand von IDs. Nicht aufgelöste Namen werden bei der Autorisierung ignoriert, sofern
channels.zalouser.dangerouslyAllowNameMatching: truenicht aktiviert ist. channels.zalouser.dangerouslyAllowNameMatching: trueist ein Kompatibilitätsmodus für Notfälle, der die veränderliche Namensauflösung beim Start und den Abgleich von Gruppennamen zur Laufzeit wieder aktiviert.groupAllowFromgreift bei gewöhnlichen Gruppennachrichten nicht aufallowFromzurück: Bleibt der Wert für eine zugelassene Gruppe leer, steht diese Gruppe allen Absendern offen. Autorisierte Steuerbefehle (beispielsweise/new) bilden die Ausnahme; bei ihnen greift die Prüfung des Befehlsabsenders aufallowFromzurück, wenngroupAllowFromleer ist.
Beispiel:
{ channels: { zalouser: { groupPolicy: "allowlist", groupAllowFrom: ["1471383327500481391"], groups: { "123456789": { enabled: true }, "Work Chat": { enabled: true }, }, }, },}Erwähnungspflicht in Gruppen
channels.zalouser.groups.<group>.requireMentionlegt fest, ob Gruppenantworten eine Erwähnung erfordern.- Auflösungsreihenfolge: Gruppen-ID -> Alias
group:<id>-> Gruppenname/Slug (namensbasierte Kandidaten gelten nur, wenndangerouslyAllowNameMatching: trueaktiviert ist) ->*-> Standardwert (true). - Gilt sowohl für zugelassene Gruppen als auch für den offenen Gruppenmodus.
- Das Zitieren einer Bot-Nachricht gilt für die Gruppenaktivierung als implizite Erwähnung.
- Autorisierte Steuerbefehle (beispielsweise
/new) können die Erwähnungspflicht umgehen. - Wenn eine Gruppennachricht übersprungen wird, weil eine Erwähnung erforderlich ist, speichert OpenClaw sie als ausstehenden Gruppenverlauf und fügt sie der nächsten verarbeiteten Gruppennachricht bei.
- Begrenzung des Gruppenverlaufs:
channels.zalouser.historyLimit, danachmessages.groupChat.historyLimit, anschließend ein Rückfallwert von50.
Beispiel:
{ channels: { zalouser: { groupPolicy: "allowlist", groups: { "*": { enabled: true, requireMention: true }, "Work Chat": { enabled: true, requireMention: false }, }, }, },}Mehrere Konten
Konten werden im OpenClaw-Status zalouser-Profilen zugeordnet. Beispiel:
{ channels: { zalouser: { enabled: true, defaultAccount: "default", accounts: { work: { enabled: true, profile: "work" }, }, }, },}Umgebungsvariablen
Die Profilauswahl kann auch über Umgebungsvariablen erfolgen:
| Variable | Zweck |
|---|---|
ZALOUSER_PROFILE |
Zu verwendender Profilname, wenn in der Kanal- oder Kontokonfiguration kein profile festgelegt ist. |
ZCA_PROFILE |
Veralteter Rückfallwert, der nur verwendet wird, wenn ZALOUSER_PROFILE nicht festgelegt ist. |
Profilnamen wählen die gespeicherten Zalo-Anmeldedaten im OpenClaw-Status aus. Auflösungsreihenfolge:
- Explizites
profilein der Konfiguration. ZALOUSER_PROFILE.ZCA_PROFILE.- Die Konto-ID für nicht standardmäßige Konten oder
defaultfür das Standardkonto.
Bei Konfigurationen mit mehreren Konten sollten Sie für jedes Konto profile in der Konfiguration festlegen, damit nicht eine einzige Umgebungsvariable dazu führt, dass mehrere Konten dieselbe Anmeldesitzung gemeinsam verwenden.
Eingabeanzeige, Reaktionen und Zustellbestätigungen
- OpenClaw sendet vor dem Versenden einer Antwort nach Möglichkeit ein Eingabeereignis.
- Die Nachrichtenreaktionsaktion
reactwird in Kanalaktionen fürzalouserunterstützt.- Verwenden Sie
remove: true, um ein bestimmtes Reaktions-Emoji von einer Nachricht zu entfernen. - Semantik von Reaktionen: Reaktionen
- Verwenden Sie
- Bei eingehenden Nachrichten mit Ereignismetadaten sendet OpenClaw nach Möglichkeit Zustell- und Lesebestätigungen.
Fehlerbehebung
Anmeldung bleibt nicht gespeichert:
openclaw channels status --probe- Erneut anmelden:
openclaw channels logout --channel zalouser && openclaw channels login --channel zalouser
Name der Zulassungsliste/Gruppe wurde nicht aufgelöst:
- Verwenden Sie numerische IDs in
allowFrom/groupAllowFromund stabile Gruppen-IDs ingroups. Wenn Sie absichtlich exakte Namen von Kontakten oder Gruppen verwenden müssen, aktivieren Siechannels.zalouser.dangerouslyAllowNameMatching: true.
Upgrade von einer alten externen, auf zca/CLI basierenden Einrichtung:
- Entfernen Sie alle Annahmen über einen externen
zca-Prozess; der Kanal wird jetzt vollständig prozessintern überzca-jsausgeführt, ohne externe CLI-Binärdatei.
Verwandte Themen
- Kanalübersicht – alle unterstützten Kanäle
- Kopplung – Authentifizierung von Direktnachrichten und Kopplungsablauf
- Gruppen – Verhalten von Gruppenchats und Erwähnungspflicht
- Kanalweiterleitung – Sitzungsweiterleitung für Nachrichten
- Sicherheit – Zugriffsmodell und Absicherung