OpenClaw

Canal Zalo OpenClaw

Messagerie
Moyen

Connectez OpenClaw à Zalo via la Zalo Bot Platform. Cette intégration permet à votre assistant IA d'envoyer et de recevoir des messages sur l'application de messagerie la plus populaire du Vietnam. Configurez un Bot Token, définissez votre politique de DM, et commencez à discuter — avec prise en charge du long-polling et du webhook.

Info rapide
DifficultéMoyen
CatégorieMessagerie
Fonctionnalités prises en charge1 / 6

Zalo Fonctionnalités prises en charge

Messages texte

Pris en charge

Médias et fichiers

Non pris en charge

Réactions

Non pris en charge

Fils de discussion

Non pris en charge

Messages vocaux

Non pris en charge

Discussion de groupe

Non pris en charge

Zalo Prérequis

  • Un compte Zalo avec accès à la Zalo Bot Platform (bot.zaloplatforms.com)
  • Un Bot Token obtenu depuis le tableau de bord de la Zalo Bot Platform
  • OpenClaw Gateway en cours d'exécution et configuré
  • Pour le mode webhook : un point de terminaison HTTPS accessible publiquement

Zalo Configuration rapide

1

Créer un Bot Zalo et obtenir votre Token

Rendez-vous sur bot.zaloplatforms.com, connectez-vous avec votre compte Zalo et créez un nouveau bot. Copiez le Bot Token (format : 12345689:abc-xyz) depuis le tableau de bord.

2

Ajouter la configuration du canal Zalo

Ajoutez la configuration du canal Zalo dans ~/.openclaw/openclaw.json. Définissez le botToken, la dmPolicy (pairing, allowlist, open ou disabled), et configurez éventuellement les paramètres webhook.

3

Démarrer le Gateway et tester

Démarrez le Gateway avec 'openclaw start'. Le bot se connectera par défaut en mode long-polling. Envoyez un message à votre bot sur Zalo pour vérifier que la connexion fonctionne.

Zalo Exemple de configuration

config.json
{
  "channels": {
    "zalo": {
      "enabled": true,
      "botToken": "12345689:abc-xyz",
      "dmPolicy": "pairing"
    }
  }
}

Zalo Documentation Détaillée

Aperçu de l'architecture

OpenClaw se connecte à l'API Zalo Bot Platform pour envoyer et recevoir des messages. Le Gateway communique avec les serveurs Zalo en utilisant le long-polling (par défaut) ou le mode webhook. En mode long-polling, le Gateway vérifie périodiquement les nouveaux messages — aucune URL publique ni certificat HTTPS requis. En mode webhook, Zalo pousse les événements directement vers votre serveur, ce qui nécessite un point de terminaison HTTPS accessible publiquement. Les messages des utilisateurs Zalo sont reçus par le Gateway, traités par votre IA, et les réponses sont renvoyées via l'API Zalo Bot. Chaque conversation est suivie par utilisateur, permettant à plusieurs utilisateurs d'interagir indépendamment avec le même bot.
Le long-polling fonctionne directement sans configuration réseau. Utilisez-le pour le développement ou lorsque vous n'avez pas d'URL publique.
Le mode webhook offre une latence plus faible et est recommandé pour les déploiements de production avec un point de terminaison HTTPS stable.

Création de votre Bot Zalo

Pour connecter OpenClaw à Zalo, vous avez besoin d'un Bot Token de la Zalo Bot Platform : 1. Rendez-vous sur bot.zaloplatforms.com et connectez-vous avec votre compte Zalo. 2. Cliquez sur « Créer un Bot » et remplissez les informations requises (nom, description, catégorie). 3. Une fois créé, accédez aux paramètres du bot et copiez le Bot Token. Le Bot Token est le seul identifiant nécessaire pour la connexion. Vous pouvez le fournir via le fichier de configuration, une variable d'environnement (ZALO_BOT_TOKEN), ou le lire depuis un fichier avec l'option tokenFile.
openclaw.json
{
  "channels": {
    "zalo": {
      "enabled": true,
      "botToken": "12345689:abc-xyz"
    }
  }
}
Stockez votre Bot Token dans une variable d'environnement (ZALO_BOT_TOKEN) ou un fichier séparé (tokenFile) pour éviter de commettre des secrets dans le contrôle de version.

Politiques de DM

Les politiques de DM (Message Direct) contrôlent qui peut interagir avec votre assistant IA. OpenClaw prend en charge quatre politiques : • pairing (par défaut) — Les nouveaux utilisateurs reçoivent un code de jumelage lors de leur premier message. Vous les approuvez ou les refusez via 'openclaw pairing approve zalo <code>'. Les codes expirent après 1 heure. • allowlist — Seuls les identifiants utilisateur numériques listés dans allowFrom peuvent communiquer avec le bot. Les autres sont silencieusement ignorés. • open — Toute personne qui envoie un message au bot reçoit une réponse. À utiliser avec précaution. • disabled — Le traitement des DM est entièrement désactivé.
openclaw.json
{
  "channels": {
    "zalo": {
      "dmPolicy": "allowlist",
      "allowFrom": ["123456789", "987654321"]
    }
  }
}
La politique 'open' permet à quiconque d'interagir avec votre bot. Cela peut consommer un quota IA important si votre bot est publiquement découvrable sur Zalo.

Configuration Webhook

Par défaut, OpenClaw utilise le long-polling pour recevoir les messages. Pour passer en mode webhook, définissez le webhookUrl dans votre configuration. Cela nécessite un point de terminaison HTTPS accessible publiquement. Lorsque le mode webhook est activé, le long-polling est automatiquement désactivé. Zalo envoie les événements de messages directement à votre URL webhook. La vérification utilise un jeton secret — Zalo l'inclut dans l'en-tête HTTP X-Bot-Api-Secret-Token de chaque requête. L'option webhookPath vous permet de personnaliser le chemin sur le serveur HTTP du Gateway où les événements Zalo sont reçus.
openclaw.json
{
  "channels": {
    "zalo": {
      "botToken": "12345689:abc-xyz",
      "webhookUrl": "https://your-server.com/zalo/webhook",
      "webhookSecret": "your-secret-string-8-to-256-chars",
      "webhookPath": "/zalo/webhook"
    }
  }
}
Le webhookSecret doit contenir entre 8 et 256 caractères.
Le webhook et le long-polling sont mutuellement exclusifs — définir un webhookUrl désactive automatiquement le polling.

Traitement des messages

OpenClaw prend en charge les messages texte et image sur Zalo. Les messages texte sont automatiquement découpés à 2 000 caractères par message conformément aux limites de Zalo. Les images entrantes des utilisateurs sont téléchargées et traitées. Les images sortantes sont envoyées via l'API sendPhoto de Zalo. Les messages autocollants des utilisateurs sont enregistrés mais non traités par l'IA. Le paramètre mediaMaxMb contrôle la taille maximale des fichiers multimédia entrants (par défaut : 5 Mo).
Les longues réponses IA sont automatiquement divisées en plusieurs messages à la limite de 2 000 caractères.
Les réponses en streaming ne sont pas prises en charge sur Zalo en raison de la limite de caractères.

Configuration multi-comptes

OpenClaw prend en charge l'exécution simultanée de plusieurs comptes de bots Zalo. Chaque compte possède son propre Bot Token, sa politique de DM et une configuration webhook optionnelle. Cela est utile si vous souhaitez exécuter des bots à différentes fins (par exemple, support client vs. équipe interne) sous la même instance Gateway.
openclaw.json
{
  "channels": {
    "zalo": {
      "accounts": {
        "support-bot": {
          "botToken": "token-for-support-bot",
          "dmPolicy": "open"
        },
        "team-bot": {
          "botToken": "token-for-team-bot",
          "dmPolicy": "allowlist",
          "allowFrom": ["111222333"]
        }
      }
    }
  }
}

Envoi de messages sortants

Vous pouvez envoyer des messages à des utilisateurs Zalo spécifiques via la CLI. Les messages sont routés de manière déterministe vers le chat Zalo d'origine, de sorte que les réponses vont toujours au bon utilisateur. Pour envoyer un message manuel à un utilisateur spécifique, utilisez l'option target avec son identifiant utilisateur Zalo numérique.
terminal
openclaw message send --channel zalo --target 123456789

Configuration du proxy

Si votre serveur nécessite un proxy pour les connexions sortantes, vous pouvez en configurer un pour le canal Zalo. L'URL du proxy est utilisée pour toutes les requêtes API vers les serveurs Zalo. Cela est utile dans les environnements d'entreprise ou les régions où l'accès direct aux points de terminaison de l'API Zalo peut être restreint.
openclaw.json
{
  "channels": {
    "zalo": {
      "proxy": "http://proxy.example.com:8080"
    }
  }
}

Zalo Référence de Configuration

enabled
Type: booleanDefault: false

Activer ou désactiver le canal Zalo

botToken
Type: stringDefault: ""

Bot Token de la Zalo Bot Platform (bot.zaloplatforms.com)

tokenFile
Type: stringDefault: ""

Lire le Bot Token depuis un chemin de fichier au lieu de la configuration en ligne

dmPolicy
Type: stringDefault: "pairing"

Contrôle qui peut envoyer des DM au bot. Options : pairing, allowlist, open, disabled

allowFrom
Type: string[]Default: []

Identifiants utilisateur Zalo numériques autorisés à communiquer avec le bot (lorsque dmPolicy est allowlist)

mediaMaxMb
Type: numberDefault: 5

Taille maximale des fichiers multimédia entrants en mégaoctets

webhookUrl
Type: stringDefault: ""

URL HTTPS pour le mode webhook. Lorsque défini, le long-polling est désactivé

webhookSecret
Type: stringDefault: ""

Chaîne secrète (8-256 caractères) pour la vérification webhook via l'en-tête X-Bot-Api-Secret-Token

webhookPath
Type: stringDefault: ""

Chemin webhook personnalisé sur le serveur HTTP du Gateway

proxy
Type: stringDefault: ""

URL du proxy pour les requêtes API sortantes vers Zalo

accounts.<id>.botToken
Type: stringDefault: ""

Bot Token pour un compte spécifique en mode multi-comptes

accounts.<id>.dmPolicy
Type: stringDefault: "pairing"

Politique de DM personnalisée pour un compte spécifique

accounts.<id>.webhookUrl
Type: stringDefault: ""

URL webhook personnalisée pour un compte spécifique

Zalo Questions Fréquentes

Zalo Dépannage

Le bot ne reçoit aucun message

Le Bot Token peut être invalide, expiré, ou le Gateway n'est pas en cours d'exécution. En mode webhook, le point de terminaison HTTPS peut être inaccessible.

Vérifiez votre Bot Token sur bot.zaloplatforms.com. Consultez les journaux du Gateway pour les erreurs de connexion. Si vous utilisez les webhooks, confirmez que le point de terminaison est accessible publiquement via HTTPS et que le webhookSecret correspond.
Les messages sont retardés ou arrivent par lots

Le long-polling a une latence inhérente par rapport au mode webhook. L'instabilité du réseau peut également provoquer le regroupement des messages.

Passez en mode webhook pour une latence plus faible. Assurez-vous que votre serveur dispose d'une connexion Internet stable. Vérifiez les journaux du Gateway pour les informations sur l'intervalle de polling.
Les codes de jumelage ne sont pas envoyés aux nouveaux utilisateurs

La dmPolicy n'est peut-être pas définie sur 'pairing', ou le bot n'est pas correctement connecté à Zalo.

Vérifiez que dmPolicy est défini sur 'pairing' dans votre configuration. Consultez les journaux du Gateway pour confirmer que le canal Zalo est en ligne. Exécutez 'openclaw pairing list zalo' pour voir les demandes de jumelage en attente.
L'envoi de messages image échoue

Le fichier image peut dépasser la limite mediaMaxMb, ou l'API Zalo peut être temporairement indisponible.

Vérifiez que la taille du fichier image est inférieure à la limite mediaMaxMb (par défaut : 5 Mo). Consultez les journaux du Gateway pour les messages d'erreur API spécifiques. Essayez d'abord d'envoyer un message texte pour confirmer que la connexion fonctionne.
La vérification webhook échoue

Le webhookSecret dans votre configuration ne correspond pas à ce que Zalo attend, ou le point de terminaison ne renvoie pas la bonne réponse.

Assurez-vous que votre webhookSecret contient entre 8 et 256 caractères. Vérifiez que le certificat HTTPS est valide (les certificats auto-signés ne sont pas acceptés). Vérifiez que le webhookPath correspond à la configuration de routage de votre serveur.