Zalo (Bot API)
Status: experimentell. Direkta meddelanden endast, grupper kommer snart per Zalo docs.Plugin krävs
Zalo levereras som ett plugin och ingår inte i kärninstallationen.- Installera via CLI:
openclaw plugins install @openclaw/zalo - Eller välj Zalo under introduktionen och bekräfta installationsprompten
- Detaljer: Plugins
Snabb konfigurering (nybörjare)
- Installera Zalo-pluginet:
- Från en källutcheckning:
openclaw plugins install ./extensions/zalo - Från npm (om publicerad):
openclaw plugins install @openclaw/zalo - Eller välj Zalo i introduktionen och bekräfta installationsprompten
- Från en källutcheckning:
- Ställ in token:
- Env:
ZALO_BOT_TOKEN=... - Eller konfig:
channels.zalo.botToken: "...".
- Env:
- Starta om gatewayn (eller slutför introduktionen).
- DM-åtkomst är parning som standard; godkänn parningskoden vid första kontakt.
Vad det är
Zalo är en vietnam-fokuserad meddelandeapp; dess Bot API låter Gateway köra en bot för 1:1 konversationer. Det är en bra passform för stöd eller meddelanden där du vill ha deterministisk dirigering tillbaka till Zalo.- En Zalo Bot API-kanal som ägs av Gateway.
- Deterministisk routning: svar går tillbaka till Zalo; modellen väljer aldrig kanaler.
- DM delar agentens huvudsession.
- Grupper stöds ännu inte (Zalo-dokumentationen anger ”kommer snart”).
Konfigurering (snabb väg)
1. Skapa en bottoken (Zalo Bot Platform)
- Gå till https://bot.zaloplatforms.com och logga in.
- Skapa en ny bot och konfigurera dess inställningar.
- Kopiera bottoken (format:
12345689:abc-xyz).
2) Konfigurera token (env eller konfig)
Exempel:ZALO_BOT_TOKEN=... (fungerar endast för standardkontot).
Stöd för flera konton: använd channels.zalo.accounts med per-konto-token och valfri name.
- Starta om gatewayn. Zalo startar när en token är löst (env eller config).
- DM åtkomststandard är att para. Godkänn koden när botten först kontaktas.
Hur det fungerar (beteende)
- Inkommande meddelanden normaliseras till det delade kanalhöljet med medieplatshållare.
- Svar routas alltid tillbaka till samma Zalo-chatt.
- Long-polling som standard; webhook-läge finns med
channels.zalo.webhookUrl.
Begränsningar
- Utgående text delas upp i 2000 tecken (Zalo API-gräns).
- Nedladdning/uppladdning av media begränsas av
channels.zalo.mediaMaxMb(standard 5). - Streaming blockeras som standard eftersom 2000-teckensgränsen gör streaming mindre användbar.
Åtkomstkontroll (DM)
DM-åtkomst
- Standard:
channels.zalo.dmPolicy = "pairing". Okända avsändare får en parningskod; meddelanden ignoreras tills de godkänts (koder upphör efter 1 timme). - Godkänn via:
openclaw pairing list zaloopenclaw pairing approve zalo <CODE>
- Parkoppling är standard token exchange. Detaljer: Pairing
channels.zalo.allowFromaccepterar numeriska användar-ID:n (ingen uppslagning av användarnamn finns).
Long-polling kontra webhook
- Standard: long-polling (ingen publik URL krävs).
- Webhook-läge: sätt
channels.zalo.webhookUrlochchannels.zalo.webhookSecret.- Webhook-hemligheten måste vara 8–256 tecken.
- Webhook-URL måste använda HTTPS.
- Zalo skickar händelser med rubriken
X-Bot-Api-Secret-Tokenför verifiering. - Gateway HTTP hanterar webhook-förfrågningar på
channels.zalo.webhookPath(standard är webhook-URL:ens sökväg).
Stödda meddelandetyper
- Textmeddelanden: Fullt stöd med uppdelning i 2000 tecken.
- Bildmeddelanden: Ladda ned och bearbeta inkommande bilder; skicka bilder via
sendPhoto. - Dekaler: Loggas men bearbetas inte fullt ut (ingen agentrespons).
- Icke stödda typer: Loggas (t.ex. meddelanden från skyddade användare).
Funktioner
| Funktion | Status |
|---|---|
| Direktmeddelanden | ✅ Stöds |
| Grupper | ❌ Kommer snart (enligt Zalo-dokumentationen) |
| Media (bilder) | ✅ Stöds |
| Reaktioner | ❌ Stöds inte |
| Trådar | ❌ Stöds inte |
| Omröstningar | ❌ Stöds inte |
| Inbyggda kommandon | ❌ Stöds inte |
| Streaming | ⚠️ Blockerad (2000-teckensgräns) |
Leveransmål (CLI/cron)
- Använd ett chatt-ID som mål.
- Exempel:
openclaw message send --channel zalo --target 123456789 --message "hi".
Felsökning
Boten svarar inte:- Kontrollera att token är giltig:
openclaw channels status --probe - Verifiera att avsändaren är godkänd (parning eller allowFrom)
- Kontrollera gateway-loggar:
openclaw logs --follow
- Säkerställ att webhook-URL använder HTTPS
- Verifiera att hemlig token är 8–256 tecken
- Bekräfta att gatewayns HTTP-ändpunkt är nåbar på den konfigurerade sökvägen
- Kontrollera att getUpdates-polling inte körs (de är ömsesidigt uteslutande)
Konfigurationsreferens (Zalo)
Fullständig konfiguration: Konfiguration Leverantörsalternativ:channels.zalo.enabled: aktivera/inaktivera kanalstart.channels.zalo.botToken: bottoken från Zalo Bot Platform.channels.zalo.tokenFile: läs token från filsökväg.channels.zalo.dmPolicy:pairing | allowlist | open | disabled(standard: parning).channels.zalo.allowFrom: DM allowlist (användar-ID).openkräver"*". Guiden kommer att be om numeriska ID.channels.zalo.mediaMaxMb: gräns för inkommande/utgående media (MB, standard 5).channels.zalo.webhookUrl: aktivera webhook-läge (HTTPS krävs).channels.zalo.webhookSecret: webhook-hemlighet (8–256 tecken).channels.zalo.webhookPath: webhook-sökväg på gatewayns HTTP-server.channels.zalo.proxy: proxy-URL för API-anrop.
channels.zalo.accounts.<id>.botToken: token per konto.channels.zalo.accounts.<id>.tokenFile: tokenfil per konto.channels.zalo.accounts.<id>.name: visningsnamn.channels.zalo.accounts.<id>.enabled: aktivera/inaktivera konto.channels.zalo.accounts.<id>.dmPolicy: DM-policy per konto.channels.zalo.accounts.<id>.allowFrom: Tillåten per konto.channels.zalo.accounts.<id>.webhookUrl: webhook-URL per konto.channels.zalo.accounts.<id>.webhookSecret: hemlighet per konto.channels.zalo.accounts.<id>.webhookPath: sökväg per kontochannels.zalo.accounts.<id>.proxy: proxy per konto