OpenClaw

Canal Telegram OpenClaw

Messagerie
Facile

Connectez OpenClaw à Telegram via le framework grammY Bot API. Créez un bot Telegram via @BotFather, récupérez le token, et votre assistant IA est opérationnel sur Telegram en quelques minutes. Utilise le long-polling par défaut avec mode Webhook optionnel. L'un des canaux les plus faciles à configurer, avec des fonctionnalités riches incluant boutons inline, stickers, réactions et support des groupes.

Info rapide
DifficultéFacile
CatégorieMessagerie
Fonctionnalités prises en charge6 / 6

Telegram Fonctionnalités prises en charge

Messages texte

Pris en charge

Médias et fichiers

Pris en charge

Réactions

Pris en charge

Fils de discussion

Pris en charge

Messages vocaux

Pris en charge

Discussion de groupe

Pris en charge

Telegram Prérequis

  • Un compte Telegram
  • Un Token de Bot de @BotFather (envoyez /newbot à @BotFather)
  • OpenClaw Gateway en fonctionnement et configuré
  • Node.js 18+ installé sur votre serveur

Telegram Configuration rapide

1

Créer un bot avec @BotFather

Ouvrez Telegram, recherchez @BotFather et envoyez /newbot. Suivez les instructions pour nommer votre bot et obtenir le token API. Conservez ce token précieusement — vous en aurez besoin pour la configuration.

2

Ajouter la configuration du canal Telegram

Ajoutez la configuration du canal Telegram dans ~/.openclaw/openclaw.json. Collez le token du bot de @BotFather dans le champ botToken. Définissez le dmPolicy (pairing, allowlist ou open) pour contrôler qui peut communiquer avec votre assistant.

3

Démarrer le Gateway et tester

Lancez le processus Gateway. Recherchez votre bot sur Telegram et envoyez-lui un message. Si vous utilisez la politique pairing par défaut, approuvez l'expéditeur via 'openclaw pairing approve telegram <code>'. OpenClaw devrait répondre via l'assistant IA.

Telegram Exemple de configuration

config.json
{
  "channels": {
    "telegram": {
      "enabled": true,
      "botToken": "YOUR_BOT_TOKEN_FROM_BOTFATHER",
      "dmPolicy": "pairing"
    }
  }
}

Telegram Documentation Détaillée

Aperçu de l'architecture

OpenClaw se connecte à Telegram via le framework grammY — une bibliothèque Telegram Bot API moderne et TypeScript-first. Le bot utilise le long-polling par défaut, interrogeant périodiquement les serveurs Telegram pour les nouvelles mises à jour. Cela fonctionne immédiatement sans configuration supplémentaire. Vous pouvez également passer en mode Webhook pour les déploiements en production. En mode Webhook, Telegram pousse les mises à jour directement vers votre endpoint serveur, ce qui est plus efficace et réduit la latence.
Le long-polling fonctionne derrière les NAT et pare-feu sans configuration. Le mode Webhook nécessite un endpoint HTTPS accessible publiquement.
Stockez votre token de bot via la variable d'environnement TELEGRAM_BOT_TOKEN ou dans votre config sous channels.telegram.botToken.

Créer votre bot avec @BotFather

BotFather est l'outil officiel de Telegram pour créer et gérer les bots. Voici les étapes : 1. Ouvrez Telegram et recherchez @BotFather 2. Envoyez /newbot pour commencer la création 3. Choisissez un nom d'affichage (ex: « Mon Assistant IA ») 4. Choisissez un nom d'utilisateur se terminant par 'bot' (ex: "mon_assistant_ia_bot") 5. BotFather vous donnera un token API — conservez-le en sécurité Après la création, personnalisez davantage avec les commandes BotFather : • /setdescription — Définir la description du profil • /setabouttext — Définir le texte « À propos » • /setuserpic — Télécharger une photo de profil • /setprivacy — Basculer le mode confidentialité pour les messages de groupe
Gardez votre token secret. Toute personne possédant le token peut contrôler votre bot. En cas de compromission, utilisez /revoke dans BotFather pour en générer un nouveau.

Politiques DM

Les politiques DM (Messages Directs) contrôlent qui peut interagir avec votre assistant IA en chat privé. OpenClaw supporte trois politiques : • pairing (par défaut) — Les nouveaux utilisateurs doivent passer par un flux de jumelage. Ils envoient un message, reçoivent un code de jumelage (valide 1 heure), et vous approuvez ou refusez via le CLI. • allowlist — Seuls les ID utilisateur numériques listés dans allowFrom peuvent contacter le bot. Les autres sont ignorés silencieusement. • open — Quiconque envoie un message au bot reçoit une réponse. À utiliser avec précaution en production.
openclaw.json
{
  "channels": {
    "telegram": {
      "dmPolicy": "pairing",
      "allowFrom": [123456789, 987654321]
    }
  }
}
Pour trouver l'ID numérique Telegram d'un utilisateur, utilisez @userinfobot ou consultez les logs du Gateway quand il envoie un message.

Gestion des groupes

OpenClaw supporte les groupes Telegram avec un contrôle d'accès flexible via deux mécanismes indépendants : 1. Liste de groupes autorisés — Tous les groupes ou seulement ceux listés dans channels.telegram.groups. 2. Politique de groupe — Contrôle des permissions des expéditeurs : • open — Tout membre peut déclencher le bot • allowlist — Seuls les expéditeurs approuvés peuvent interagir • disabled — Les messages de groupe sont ignorés Par défaut, le bot nécessite une @mention dans les groupes. Vous pouvez changer ce comportement : • Commande /activation always (session uniquement) • Paramètre requireMention: false dans la config pour un effet permanent
openclaw.json
{
  "channels": {
    "telegram": {
      "groupPolicy": "open",
      "requireMention": false,
      "groups": ["-1001234567890"]
    }
  }
}
Pour les groupes de type forum (sujets), OpenClaw isole chaque sujet par son ID de thread et peut appliquer des configurations spécifiques par sujet.
Pour que le bot voie tous les messages du groupe sans être admin, désactivez le mode confidentialité via /setprivacy dans BotFather, puis retirez et réajoutez le bot au groupe.

Formatage et streaming des messages

OpenClaw offre plusieurs options de formatage et de livraison des messages : Formatage : Le texte sortant utilise le parseur HTML de Telegram avec conversion automatique depuis le format Markdown. En cas d'échec du parsing HTML, le message est renvoyé en texte brut. Streaming : Les bulles de brouillon supportent le streaming partiel des réponses en DM. Deux modes disponibles : • partial (par défaut) — Mise à jour progressive d'un seul message • block — Envoi par blocs complets Le texte est découpé par défaut à 4 000 caractères (limite Telegram). Activez chunkMode: "newline" pour découper aux limites de paragraphe.
openclaw.json
{
  "channels": {
    "telegram": {
      "streamMode": "partial",
      "chunkMode": "newline"
    }
  }
}

Boutons inline

OpenClaw supporte les boutons clavier inline interactifs de Telegram. Lorsqu'activés, l'IA peut présenter des boutons sous les messages. Cliquer sur un bouton renvoie les données de callback à l'agent. Modes disponibles : • off — Boutons désactivés (par défaut) • dm — Activé en chat privé uniquement • group — Activé en groupe uniquement • all — Activé partout • allowlist — Restreint par autorisation
openclaw.json
{
  "channels": {
    "telegram": {
      "capabilities": {
        "inlineButtons": "all"
      }
    }
  }
}

Stickers et médias

OpenClaw gère les stickers et fichiers média Telegram : Stickers : Les stickers statiques sont téléchargés et analysés visuellement. Les descriptions sont mises en cache. Les stickers animés et vidéo sont ignorés. L'agent peut envoyer des stickers via les ID de fichier et rechercher dans le cache. Médias : La limite d'upload/download est de 5 Mo par défaut. Le bot supporte l'envoi et la réception d'images, documents, fichiers audio et vidéos.
Activez l'action sticker dans la config de l'agent pour permettre l'envoi de stickers par ID de fichier ou recherche en cache.

Réactions

OpenClaw supporte le système de réactions Telegram pour la réception et l'envoi d'émojis : Les réactions reçues génèrent des événements système ajoutés au contexte de l'agent : • off — Pas de notifications • own — Réactions aux messages du bot uniquement • all — Toutes les réactions Niveau de réaction du bot : • off — Pas de réactions • ack — Réaction de confirmation pendant le traitement (par défaut) • minimal — Réactions basiques • extensive — Gamme complète d'émojis
openclaw.json
{
  "channels": {
    "telegram": {
      "reactionNotifications": "own",
      "reactionLevel": "ack"
    }
  }
}

Commandes et outils

Les commandes natives du bot (/status, /reset, etc.) sont automatiquement enregistrées dans le menu de commandes Telegram. Les commandes personnalisées peuvent être ajoutées mais fonctionnent uniquement comme entrées de menu. L'agent supporte également les actions d'outils : • Envoyer des messages à des chats spécifiques • Réagir avec des émojis • Supprimer des messages • Répondre à des messages spécifiques via [[reply_to:<id>]]
Utilisez [[reply_to_current]] dans la réponse de l'agent pour répondre directement au message actuel.
Incluez [[audio_as_voice]] dans les réponses ou définissez asVoice: true pour forcer le format note vocale.

Mode Webhook

Pour les déploiements en production, le mode Webhook est recommandé plutôt que le long-polling. Telegram pousse les mises à jour directement vers votre serveur, réduisant la latence et la consommation de ressources. Définissez webhookUrl et webhookSecret dans votre config. L'endpoint local se lie par défaut à 0.0.0.0:8787.
openclaw.json
{
  "channels": {
    "telegram": {
      "webhookUrl": "https://your-domain.com/telegram/webhook",
      "webhookSecret": "your-random-secret-string"
    }
  }
}
Lors du passage du polling au Webhook, le Gateway enregistre automatiquement l'URL du Webhook auprès de Telegram au démarrage.
Le mode Webhook nécessite un endpoint HTTPS accessible publiquement. Assurez-vous que votre serveur dispose d'un certificat SSL valide.

Telegram Référence de Configuration

enabled
Type: booleanDefault: true

Activer ou désactiver le canal Telegram

botToken
Type: stringDefault: ""

Token Bot API Telegram de @BotFather. Variable env TELEGRAM_BOT_TOKEN aussi supportée

dmPolicy
Type: stringDefault: "pairing"

Contrôle l'accès DM. Options : pairing, allowlist, open

allowFrom
Type: number[]Default: []

ID utilisateur Telegram autorisés (quand dmPolicy est allowlist)

groupPolicy
Type: stringDefault: "disabled"

Politique de groupe. Options : disabled, open, allowlist

groups
Type: string[]Default: []

Liste des ID de groupes autorisés

requireMention
Type: booleanDefault: true

Exiger une @mention dans les groupes

streamMode
Type: stringDefault: "partial"

Mode streaming. Options : partial, block

chunkMode
Type: stringDefault: "split"

Découpage des réponses longues. Options : split, newline

webhookUrl
Type: stringDefault: ""

URL HTTPS pour le mode Webhook

webhookSecret
Type: stringDefault: ""

Token secret pour la vérification Webhook

reactionNotifications
Type: stringDefault: "off"

Notifications de réactions. Options : off, own, all

reactionLevel
Type: stringDefault: "ack"

Capacité de réaction du bot. Options : off, ack, minimal, extensive

capabilities.inlineButtons
Type: stringDefault: "off"

Mode boutons inline. Options : off, dm, group, all, allowlist

configWrites
Type: booleanDefault: true

Migration auto des ID lors de la mise à niveau en supergroupe

Telegram Questions Fréquentes

Telegram Dépannage

Le bot ignore les messages sans mention dans les groupes

Le mode confidentialité est activé par défaut. Le bot ne reçoit que les @mentions et commandes slash.

Désactivez le mode confidentialité dans BotFather (/setprivacy → Disable). Retirez et réajoutez le bot au groupe. Définissez requireMention: false dans la config OpenClaw.
Le bot ne répond à aucun message

Token incorrect, Gateway non démarré, ou problème réseau.

Vérifiez le token : curl https://api.telegram.org/bot<token>/getMe. Consultez les logs Gateway. Pour les problèmes IPv6, forcez la résolution IPv4 pour api.telegram.org.
Le Webhook ne reçoit pas les mises à jour

URL Webhook inaccessible, certificat SSL invalide, ou Webhook mal enregistré.

Vérifiez l'accessibilité de l'URL (curl). Validez le certificat SSL. Vérifiez le statut : curl https://api.telegram.org/bot<token>/getWebhookInfo. Redémarrez le Gateway.
Messages tronqués ou mal découpés

Telegram a une limite de 4 096 caractères. Les longues réponses sont automatiquement découpées.

Utilisez chunkMode: 'newline' pour découper aux limites de paragraphe au lieu de la limite de caractères.