Regional platforms
Zalo
Status: experimentell. Direktnachrichten und Gruppenchats sind beide implementiert; die nachstehende Tabelle Funktionen gibt das verifizierte Verhalten für Zalo Bot Creator-/Marketplace-Bots wieder.
Mitgeliefertes Plugin
Zalo wird in aktuellen OpenClaw-Versionen als mitgeliefertes Plugin ausgeliefert, daher benötigen paketierte Builds keine separate Installation.
Installieren Sie bei einem älteren Build oder einer benutzerdefinierten Installation, die Zalo ausschließt, das npm-Paket direkt:
- Installation:
openclaw plugins install @openclaw/zalo - Angeheftete Version:
openclaw plugins install @openclaw/zalo@2026.6.11 - Aus einem lokalen Checkout:
openclaw plugins install ./path/to/local/zalo-plugin - Details: Plugins
Schnelle Einrichtung
- Erstellen Sie unter https://bot.zaloplatforms.com ein Bot-Token (anmelden, einen Bot erstellen, Einstellungen konfigurieren). Das Token hat das Format
numeric_id:secret; bei Marketplace-Bots kann das verwendbare Laufzeit-Token in der Begrüßungsnachricht des Bots erscheinen. - Legen Sie das Token entweder als Umgebungsvariable
ZALO_BOT_TOKEN=...(nur Standardkonto) oder in der Konfiguration fest. - Starten Sie das Gateway neu.
- Genehmigen Sie beim ersten Kontakt per Direktnachricht den Kopplungscode (die standardmäßige Direktnachrichtenrichtlinie ist Kopplung).
Minimale Konfiguration:
{ channels: { zalo: { enabled: true, accounts: { default: { botToken: "12345689:abc-xyz", dmPolicy: "pairing", }, }, }, },}Mehrere Konten: Fügen Sie unter channels.zalo.accounts.<id> weitere Einträge hinzu, jeweils mit eigenem botToken/name. channels.zalo.botToken (flach, ohne accounts) ist eine veraltete Kurzform für ein einzelnes Konto; bevorzugen Sie für neue Konfigurationen accounts.<id>.*.
Was es ist
Zalo ist eine auf Vietnam ausgerichtete Messaging-App. Über ihre Bot API kann das Gateway einen Bot sowohl für 1:1-Unterhaltungen als auch für Gruppenchats ausführen, wobei die Antworten deterministisch an Zalo zurückgeleitet werden (das Modell wählt niemals Kanäle aus).
Diese Seite behandelt Zalo Bot Creator-/Marketplace-Bots. Zalo Official Account (OA)-Bots bilden eine andere Produktoberfläche und können sich anders verhalten; sie werden auf dieser Seite nicht behandelt.
Funktionsweise
- Eingehende Nachrichten werden mit Medienplatzhaltern in den gemeinsamen Kanal-Umschlag normalisiert.
- Antworten werden immer an denselben Zalo-Chat zurückgeleitet; Antworten mit Zitat werden nicht verwendet (
replyToModeist fest deaktiviert). - Standardmäßig Long-Polling (
getUpdates); der Webhook-Modus ist überchannels.zalo.webhookUrlverfügbar. - In Gruppen ist eine @Erwähnung erforderlich, um den Bot auszulösen; dies ist nicht pro Kanal konfigurierbar.
Grenzwerte
| Grenzwert | Wert |
|---|---|
| Segmentgröße ausgehender Texte | 2000 Zeichen (Grenzwert der Zalo API) |
| Mediengröße (ein-/ausgehend) | channels.zalo.mediaMaxMb, Standardwert 5 MB |
| Webhook-Anfragetext | 1 MB, 30s Zeitüberschreitung beim Lesen |
| Webhook-Ratenlimit | 120 Anfragen / 60s pro Pfad+Client-IP, danach HTTP 429 |
| Webhook-Duplikatereignisfenster | 5 Minuten (Schlüssel aus Pfad + Konto + Ereignisname + Chat + Absender + Nachrichten-ID) |
Zugriffskontrolle
Direktnachrichten
channels.zalo.dmPolicy:pairing(Standard) |allowlist|open|disabled.- Kopplung: Unbekannte Absender erhalten einen Kopplungscode; Nachrichten werden bis zur Genehmigung ignoriert. Codes laufen nach 1 Stunde ab.
openclaw pairing list zaloopenclaw pairing approve zalo <CODE>- Details: Kopplung
channels.zalo.allowFromakzeptiert numerische Zalo-Benutzer-IDs (keine Suche nach Benutzernamen).openerfordert"*".
Gruppen
Gruppenchats werden vom Plugin unterstützt (chatTypes: ["direct", "group"]) und durch Erwähnung sowie Gruppenrichtlinie beschränkt:
channels.zalo.groupPolicy:open|allowlist|disabled.channels.zalo.groupAllowFrombeschränkt, welche Absender-IDs den Bot in Gruppen auslösen können; wenn nicht festgelegt, wird aufallowFromzurückgegriffen.- Standardauflösung: Wenn
channels.zalokonfiguriert ist, wird ein nicht festgelegtesgroupPolicyalsopenaufgelöst. Wennchannels.zalovollständig fehlt, schließt die Laufzeit den Zugriff standardmäßig mitallowlist. - Aus der Praxis gemeldete Einschränkung: Bei einigen Marketplace-Bot-Konfigurationen konnte der Bot überhaupt keiner Gruppe hinzugefügt werden. Falls dies bei Ihnen auftritt, überprüfen Sie die Zalo Bot Platform-Einstellungen Ihres Bots; es handelt sich um eine plattformseitige Einschränkung, nicht um eine OpenClaw-Richtlinie.
Long-Polling oder Webhook
- Standard: Long-Polling (keine öffentliche URL erforderlich).
- Webhook-Modus: Legen Sie
channels.zalo.webhookUrlundchannels.zalo.webhookSecretfest.- Die Webhook-URL muss HTTPS verwenden.
- Das Webhook-Geheimnis muss 8-256 Zeichen lang sein.
- Zalo sendet Ereignisse mit einem
X-Bot-Api-Secret-Token-Header, der mit einem Vergleich in konstanter Zeit geprüft wird. - Gateway HTTP verarbeitet Webhook-Anfragen unter
channels.zalo.webhookPath(standardmäßig der Pfad der Webhook-URL). - Anfragen müssen
Content-Type: application/json(oder einen+json-Medientyp) verwenden. - getUpdates-Polling und Webhook schließen sich gemäß der Zalo API-Dokumentation gegenseitig aus.
Unterstützte Nachrichtentypen
- Text: vollständig unterstützt, in Segmente von 2000 Zeichen aufgeteilt.
- Medien: ein- und ausgehend, durch
mediaMaxMbbegrenzt. - Reaktionen, Threads, Umfragen, native Befehle: vom Plugin nicht unterstützt.
- Streaming: Das Plugin deklariert die Fähigkeit zum Block-Streaming, Zalo verfügt jedoch über keine speziellen Einstellmöglichkeiten für ausgehende Warteschlangen oder die Zusammenführung von Text (anders als einige andere regionale Kanäle). Überprüfen Sie das aktuelle Verhalten in Ihrer Umgebung, falls dies für Ihren Anwendungsfall wichtig ist.
Funktionen
| Funktion | Status |
|---|---|
| Direktnachrichten | Unterstützt |
| Gruppen | Unterstützt (Erwähnung erforderlich) |
| Medien (ein-/ausgehend) | Unterstützt, durch mediaMaxMb begrenzt |
| Reaktionen | Nicht unterstützt |
| Threads | Nicht unterstützt |
| Umfragen | Nicht unterstützt |
| Native Befehle | Nicht unterstützt |
| Antwort auf / Zitat | Nicht verwendet (fest deaktiviert) |
Zustellziele (CLI/Cron)
Verwenden Sie eine Chat-ID als Ziel:
openclaw message send --channel zalo --target 123456789 --message "Hallo"Fehlerbehebung
Bot antwortet nicht:
- Prüfen Sie das Token:
openclaw channels status --probe - Vergewissern Sie sich, dass der Absender genehmigt ist (Kopplung oder
allowFrom) - Prüfen Sie die Gateway-Protokolle:
openclaw logs --follow
Webhook empfängt keine Ereignisse:
- Vergewissern Sie sich, dass die Webhook-URL HTTPS verwendet
- Vergewissern Sie sich, dass das Geheimnis 8-256 Zeichen lang ist
- Vergewissern Sie sich, dass der Gateway-HTTP-Endpunkt unter dem konfigurierten Pfad erreichbar ist
- Vergewissern Sie sich, dass getUpdates-Polling nicht ebenfalls ausgeführt wird (beide schließen sich gegenseitig aus)
- Eine Anfragespitze kann HTTP 429 zurückgeben (120 Anfragen / 60s pro Pfad+IP); warten Sie und versuchen Sie es erneut
Konfigurationsreferenz
Vollständige Konfiguration: Konfiguration
| Einstellung | Beschreibung | Standardwert |
|---|---|---|
channels.zalo.enabled |
Kanalstart aktivieren/deaktivieren | true |
channels.zalo.accounts.<id>.botToken |
Bot-Token von Zalo Bot Platform | - |
channels.zalo.accounts.<id>.tokenFile |
Token aus einer Datei lesen (Symlinks werden abgelehnt) | - |
channels.zalo.accounts.<id>.name |
Anzeigename | - |
channels.zalo.accounts.<id>.enabled |
Dieses Konto aktivieren/deaktivieren | true |
channels.zalo.accounts.<id>.dmPolicy |
Direktnachrichtenrichtlinie pro Konto | pairing |
channels.zalo.accounts.<id>.allowFrom |
Direktnachrichten-Zulassungsliste (Benutzer-IDs) | - |
channels.zalo.accounts.<id>.groupPolicy |
Gruppenrichtlinie pro Konto | siehe Gruppen |
channels.zalo.accounts.<id>.groupAllowFrom |
Zulassungsliste für Gruppenabsender; greift auf allowFrom zurück |
- |
channels.zalo.accounts.<id>.mediaMaxMb |
Obergrenze für ein-/ausgehende Medien (MB) | 5 |
channels.zalo.accounts.<id>.webhookUrl |
Webhook-Modus aktivieren (HTTPS erforderlich) | - |
channels.zalo.accounts.<id>.webhookSecret |
Webhook-Geheimnis (8-256 Zeichen) | - |
channels.zalo.accounts.<id>.webhookPath |
Webhook-Pfad auf dem Gateway-HTTP-Server | Pfad der Webhook-URL |
channels.zalo.accounts.<id>.proxy |
Proxy-URL für API-Anfragen | - |
channels.zalo.accounts.<id>.responsePrefix |
Überschreibung des Präfixes ausgehender Antworten | - |
channels.zalo.defaultAccount |
Standardkonto, wenn mehrere konfiguriert sind | default |
channels.zalo.botToken, channels.zalo.dmPolicy und andere flache Schlüssel auf oberster Ebene sind die veraltete Kurzform für ein einzelnes Konto für die oben genannten Felder; beide Formen werden unterstützt.
Umgebungsoption: ZALO_BOT_TOKEN=... wird nur als Token des Standardkontos aufgelöst.
Verwandte Themen
- Kanalübersicht - alle unterstützten Kanäle
- Kopplung - Direktnachrichtenauthentifizierung und Kopplungsablauf
- Gruppen - Verhalten von Gruppenchats und Auslösung durch Erwähnung
- Kanalrouting - Sitzungsrouting für Nachrichten
- Sicherheit - Zugriffsmodell und Absicherung