Status: experimenteel. Deze integratie automatiseert een persoonlijk Zalo-account via nativeDocumentation Index
Fetch the complete documentation index at: https://docs2.openclaw.ai/llms.txt
Use this file to discover all available pages before exploring further.
zca-js binnen OpenClaw.
Gebundelde Plugin
Zalo Personal wordt als gebundelde Plugin meegeleverd in huidige OpenClaw-releases, dus normale gepackageerde builds hebben geen afzonderlijke installatie nodig. Als je een oudere build gebruikt of een aangepaste installatie die Zalo Personal uitsluit, installeer dan het npm-pakket rechtstreeks:- Installeren via CLI:
openclaw plugins install @openclaw/zalouser - Vastgezette versie:
openclaw plugins install @openclaw/zalouser@2026.5.2 - Of vanuit een source-checkout:
openclaw plugins install ./path/to/local/zalouser-plugin - Details: Plugins
zca/openzca CLI-binary vereist.
Snelle setup (beginner)
- Zorg dat de Zalo Personal-Plugin beschikbaar is.
- Huidige gepackageerde OpenClaw-releases bundelen deze al.
- Oudere/aangepaste installaties kunnen deze handmatig toevoegen met de bovenstaande commando’s.
- Inloggen (QR, op de Gateway-machine):
openclaw channels login --channel zalouser- Scan de QR-code met de mobiele Zalo-app.
- Schakel het kanaal in:
- Herstart de Gateway (of rond de setup af).
- DM-toegang gebruikt standaard koppelen; keur de koppelcode goed bij het eerste contact.
Wat het is
- Draait volledig in-process via
zca-js. - Gebruikt native eventlisteners om inkomende berichten te ontvangen.
- Stuurt antwoorden rechtstreeks via de JS-API (tekst/media/link).
- Ontworpen voor gebruikssituaties met een “persoonlijk account” waarin de Zalo Bot API niet beschikbaar is.
Naamgeving
De kanaal-id iszalouser om expliciet te maken dat dit een persoonlijk Zalo-gebruikersaccount automatiseert (onofficieel). We houden zalo gereserveerd voor een mogelijke toekomstige officiële Zalo API-integratie.
ID’s vinden (directory)
Gebruik de directory-CLI om peers/groepen en hun ID’s te ontdekken:Limieten
- Uitgaande tekst wordt opgedeeld in stukken van ongeveer 2000 tekens (limieten van de Zalo-client).
- Streaming is standaard geblokkeerd.
Toegangscontrole (DM’s)
channels.zalouser.dmPolicy ondersteunt: pairing | allowlist | open | disabled (standaard: pairing).
channels.zalouser.allowFrom moet stabiele Zalo-gebruikers-ID’s gebruiken. Het kan ook verwijzen naar statische afzenderstoegangsgroepen (accessGroup:<name>). Tijdens interactieve setup kunnen ingevoerde namen worden omgezet naar ID’s via de in-process contactlookup van de Plugin.
Als er een ruwe naam in de configuratie blijft staan, wordt die bij het opstarten alleen omgezet wanneer channels.zalouser.dangerouslyAllowNameMatching: true is ingeschakeld. Zonder die opt-in zijn runtime-afzendercontroles uitsluitend op ID gebaseerd en worden ruwe namen genegeerd voor autorisatie.
Goedkeuren via:
openclaw pairing list zalouseropenclaw pairing approve zalouser <code>
Groepstoegang (optioneel)
- Standaard:
channels.zalouser.groupPolicy = "open"(groepen toegestaan). Gebruikchannels.defaults.groupPolicyom de standaardwaarde te overschrijven wanneer deze niet is ingesteld. - Beperk tot een allowlist met:
channels.zalouser.groupPolicy = "allowlist"channels.zalouser.groups(sleutels moeten stabiele groeps-ID’s zijn; namen worden bij het opstarten alleen naar ID’s omgezet wanneerchannels.zalouser.dangerouslyAllowNameMatching: trueis ingeschakeld)channels.zalouser.groupAllowFrom(bepaalt welke afzenders in toegestane groepen de bot kunnen activeren; statische afzenderstoegangsgroepen kunnen worden gerefereerd metaccessGroup:<name>)
- Alle groepen blokkeren:
channels.zalouser.groupPolicy = "disabled". - De configuratiewizard kan vragen om allowlists voor groepen.
- Bij het opstarten zet OpenClaw groeps-/gebruikersnamen in allowlists om naar ID’s en logt de mapping alleen wanneer
channels.zalouser.dangerouslyAllowNameMatching: trueis ingeschakeld. - Matching van groeps-allowlists is standaard uitsluitend op ID gebaseerd. Niet-opgeloste namen worden genegeerd voor auth, tenzij
channels.zalouser.dangerouslyAllowNameMatching: trueis ingeschakeld. channels.zalouser.dangerouslyAllowNameMatching: trueis een break-glass-compatibiliteitsmodus die veranderlijke naamresolutie bij het opstarten en runtime-matching op groepsnaam opnieuw inschakelt.- Als
groupAllowFromniet is ingesteld, valt runtime terug opallowFromvoor afzendercontroles in groepen. - Afzendercontroles gelden voor zowel normale groepsberichten als controlecommando’s (bijvoorbeeld
/new,/reset).
Gate voor groepsvermeldingen
channels.zalouser.groups.<group>.requireMentionbepaalt of groepsantwoorden een vermelding vereisen.- Resolutievolgorde: exacte groeps-id/naam -> genormaliseerde groepsslug ->
*-> standaard (true). - Dit geldt zowel voor groepen in de allowlist als voor de open groepsmodus.
- Het citeren van een botbericht telt als een impliciete vermelding voor groepsactivatie.
- Geautoriseerde controlecommando’s (bijvoorbeeld
/new) kunnen de vermeldingsgate omzeilen. - Wanneer een groepsbericht wordt overgeslagen omdat een vermelding vereist is, slaat OpenClaw het op als wachtende groepsgeschiedenis en neemt het op in het volgende verwerkte groepsbericht.
- De limiet voor groepsgeschiedenis is standaard
messages.groupChat.historyLimit(fallback50). Je kunt dit per account overschrijven metchannels.zalouser.historyLimit.
Meerdere accounts
Accounts mappen naarzalouser-profielen in de OpenClaw-status. Voorbeeld:
Typen, reacties en ontvangstbevestigingen
- OpenClaw stuurt een typgebeurtenis voordat een antwoord wordt verzonden (best-effort).
- De berichtreactieactie
reactwordt ondersteund voorzalouserin kanaalacties.- Gebruik
remove: trueom een specifieke reactie-emoji uit een bericht te verwijderen. - Reactiesemantiek: Reacties
- Gebruik
- Voor inkomende berichten die eventmetadata bevatten, stuurt OpenClaw afgeleverd- en gezien-bevestigingen (best-effort).
Problemen oplossen
Inloggen blijft niet behouden:openclaw channels status --probe- Opnieuw inloggen:
openclaw channels logout --channel zalouser && openclaw channels login --channel zalouser
- Gebruik numerieke ID’s in
allowFrom/groupAllowFromen stabiele groeps-ID’s ingroups. Als je bewust exacte vriend-/groepsnamen nodig hebt, schakel danchannels.zalouser.dangerouslyAllowNameMatching: truein.
- Verwijder alle oude aannames over externe
zca-processen. - Het kanaal draait nu volledig in OpenClaw zonder externe CLI-binaries.
Gerelateerd
- Overzicht van kanalen — alle ondersteunde kanalen
- Koppelen — DM-authenticatie en koppelingsflow
- Groepen — gedrag van groepschats en vermeldingsgate
- Kanaalroutering — sessieroutering voor berichten
- Beveiliging — toegangsmodel en hardening