Comment créer un bot Telegram avec BotFather pour automatiser des tâches ?

Créer un bot Telegram avec BotFather : guide complet pour automatiser vos tâches
Automatiser les tâches répétitives sur Telegram commence souvent par la création d’un bot. Le premier outil à connaître est BotFather, le bot officiel de Telegram qui gère et configure les bots. Ce guide vous explique comment créer un bot Telegram avec BotFather, depuis l’enregistrement jusqu’à l’automatisation de commandes, en passant par les bonnes pratiques de sécurité et d’hébergement. Que vous soyez débutant ou développeur expérimenté, vous trouverez ici les étapes clés, les pièges à éviter et des conseils pour passer à l’échelle.
Qu’est-ce que BotFather et pourquoi l’utiliser ?
BotFather est le bot officiel de Telegram qui permet de créer, modifier et supprimer des bots. Il agit comme un tableau de bord central : en dialoguant avec lui, vous définissez le nom, le username, la description, les commandes, la photo de profil, et surtout, vous générez le jeton (token) indispensable pour interagir avec l’API Telegram. Sans BotFather, il est impossible d’obtenir un token valide.
L’automatisation de tâches – modération de groupes, envoi de rappels, recherche d’informations ou gestion de fichiers – repose sur ce token. Chaque bot est lié à un seul token, qu’il faut garder secret. BotFather permet également de régler des paramètres comme le privacy mode (pour que le bot ne voie que les messages qui le mentionnent) ou l’intégration de commandes personnalisées.
⚠️ Attention :
Ne partagez jamais votre token. Quiconque le possède peut contrôler votre bot. En cas de fuite, utilisez immédiatement la commande /revoke dans BotFather pour en générer un nouveau.
Prérequis avant de commencer
Avant de créer votre bot, assurez-vous de disposer des éléments suivants :
- Un compte Telegram actif (disponible sur mobile et desktop).
- La version la plus récente de l’application Telegram (vérifiez dans les paramètres de votre application).
- Un environnement de développement pour héberger le code du bot (ordinateur local, serveur VPS, ou service cloud comme Heroku, Railway, etc.).
- Des connaissances de base en programmation (Python, PHP, Node.js, etc.) pour écrire le code qui consomme l’API Telegram.
Si vous n’avez jamais codé, vous pouvez tout de même suivre les premières étapes pour créer le bot et configurer ses commandes via BotFather. L’automatisation nécessitera ensuite un peu d’apprentissage ou l’utilisation de plateformes « no-code » ; ce guide se concentre cependant sur l’approche programmatique, qui offre plus de flexibilité.
Étape 1 : Créer un nouveau bot avec BotFather
Ouvrez Telegram et recherchez le contact officiel @BotFather. Cliquez sur « Démarrer » ou envoyez la commande /start. Vous verrez une liste de commandes disponibles. Pour créer un bot, envoyez la commande /newbot.
BotFather vous demandera alors deux informations :
- Le nom du bot (affiché dans les conversations) – par exemple « Mon Assistant Tâches ».
- Le username du bot (doit se terminer par
bot) – par exemple « MonAssistantTachesBot ». Ce username doit être unique sur Telegram.
Une fois validé, BotFather confirme la création et vous fournit le token HTTP API. Ce token est une chaîne de caractères comme 123456:ABC-DEF1234ghIkl-zyx57W2v1u123ew11. Copiez-le et conservez-le précieusement ; vous en aurez besoin pour coder.
💡 Astuce :
Si vous perdez le token, utilisez la commande /token dans BotFather pour le réafficher. Pour des raisons de sécurité, ne stockez jamais le token en clair dans votre code source ; utilisez plutôt des variables d’environnement ou un gestionnaire de secrets.
Étape 2 : Configurer les commandes du bot
Une fois le bot créé, vous pouvez définir une liste de commandes que les utilisateurs pourront invoquer. Ces commandes apparaîtront dans le menu de saisie lorsque l’utilisateur tape /. Pour cela, utilisez la commande /setcommands dans BotFather, puis sélectionnez votre bot.
BotFather attend une liste au format suivant :
commande2 - Description courte
…
commandeN - Description courte
Par exemple :
rappel - Programme un rappel pour une tâche spécifique
aide - Affiche l’aide complète
Ces commandes sont visibles par tous les utilisateurs, même si le bot n’a pas encore été ajouté à un groupe. Gardez vos descriptions concises (max 256 caractères). La commande /start sert généralement de point d’entrée initial.
Étape 3 : Choisir entre polling et webhook
Pour que votre bot réponde aux messages, vous devez exécuter un code qui interroge régulièrement l’API Telegram (long polling) ou configurer un webhook (notifications push). Le choix dépend de votre architecture et de vos besoins de réactivité.
- Polling : votre script effectue des requêtes répétées à
getUpdatespour récupérer les nouveaux messages. Simple à mettre en œuvre, adapté aux bots peu sollicités ou en développement, mais consomme des ressources inutiles si le trafic est faible. - Webhook : vous définissez une URL publique (HTTPS) vers laquelle Telegram enverra les mises à jour en temps réel. Plus efficace, nécessite un certificat SSL. Recommandé pour les bots en production.
Pour configurer un webhook, envoyez une requête HTTP POST à https://api.telegram.org/bot<VOTRE_TOKEN>/setWebhook?url=.... Vous pouvez aussi utiliser des bibliothèques comme python-telegram-bot qui gèrent cela automatiquement.
Notez que vous ne pouvez utiliser qu’un seul mode à la fois. Si vous passez au webhook, les appels à getUpdates ne fonctionneront plus (et vice versa). En cas d’erreur, vérifiez que votre serveur est accessible depuis l’extérieur et que le certificat SSL est valide.
⚠️ Erreur courante :
Si vous hébergez sur un serveur local, un webhook ne fonctionnera pas sans exposition publique (serveur dédié ou service de tunneling comme ngrok). En développement, préférez le polling.
Étape 4 : Gérer les autorisations et le mode privé
Lorsque vous ajoutez votre bot à un groupe, vous choisissez s’il lit tous les messages ou seulement ceux qui le mentionnent. Par défaut, le privacy mode est activé : le bot ne voit que les messages qui commencent par une barre oblique (/) ou qui mentionnent son username. Pour désactiver ce mode (par exemple pour un bot de modération qui doit analyser chaque message), utilisez la commande /setprivacy dans BotFather.
D’autres paramètres complémentaires sont disponibles :
/setjoingroups: autoriser ou non l’ajout du bot à des groupes./setinline: activer le mode inline pour que le bot puisse être invoqué depuis n’importe quelle conversation via@username_bot./setuserpic: définir une photo de profil pour votre bot.
Une gestion fine de ces autorisations permet de contrôler la visibilité et l’impact de votre bot. Par exemple, un bot de sondage inline sera utile dans des canaux, tandis qu’un bot de modération devra voir tous les messages.
Exemple concret d’automatisation : un bot de rappel de tâches
Imaginons que vous souhaitiez créer un bot qui envoie un rappel quotidien à une heure précise dans un groupe de travail. Voici les grandes lignes avec Python et la bibliothèque python-telegram-bot (version récente) :
from telegram.ext import Application, CommandHandler, ContextTypes
from datetime import time
import asyncio
TOKEN = "VOTRE_TOKEN"
CHAT_ID = -123456789 # ID du groupe
async def demarrer(update, context):
await update.message.reply_text("Bonjour ! Je suis votre assistant de rappel.")
async def tache_quotidienne(context: ContextTypes.DEFAULT_TYPE):
await context.bot.send_message(chat_id=CHAT_ID, text="Pensez à mettre à jour vos tâches aujourd'hui !")
def main():
app = Application.builder().token(TOKEN).build()
app.add_handler(CommandHandler("start", demarrer))
# Planifier un rappel à 9h00 UTC chaque jour
app.job_queue.run_daily(tache_quotidienne, time=time(9, 0))
app.run_polling()
if __name__ == "__main__":
main()
Ce script :
- Répond à la commande
/startpar un message de bienvenue. - Planifie un envoi automatique à 9h00 UTC via
job_queue.run_daily. - Utilise un intervalle de polling (pas besoin de webhook pour ce petit volume).
Pour obtenir le CHAT_ID d’un groupe, ajoutez le bot au groupe, envoyez un message, puis récupérez l’ID via getUpdates dans votre code. Une méthode courante consiste à interroger https://api.telegram.org/bot<TOKEN>/getUpdates après avoir écrit un message.
💡 Observation empirique :
Pour des tâches planifiées, préférez un service comme un cron job sur votre serveur plutôt que la bibliothèque de planification intégrée si vous utilisez un webhook. En effet, le job_queue peut être réinitialisé lors d’un redémarrage.
Sécurité et bonnes pratiques
La sécurité de votre bot repose sur la confidentialité du token et les permissions accordées. Voici quelques règles essentielles à respecter :
- Ne jamais exposer le token dans le code source, les logs, ou les messages. Utilisez des variables d’environnement ou un gestionnaire de secrets.
- Limiter les droits du bot : n’activez le mode privé désactivé que si nécessaire. Dans les groupes, restreignez les permissions du bot (ex : ne pas envoyer de messages si ce n’est pas requis).
- Valider les entrées utilisateur : un bot malveillant peut envoyer des commandes malformées ; assurez-vous de traiter les erreurs.
- HTTPS obligatoire pour les webhooks : Telegram rejette les URLs non sécurisées. Utilisez Let’s Encrypt pour un certificat gratuit.
- Rotation des tokens : si vous suspectez une fuite, exécutez
/revokedans BotFather et mettez à jour votre code.
Un aspect souvent négligé est la gestion des erreurs : l’API Telegram peut retourner des codes d’erreur (429 pour trop de requêtes, 403 pour permissions insuffisantes). Implémentez un backoff exponentiel et consignez les logs pour diagnostiquer les problèmes.
Aller plus loin : automatisations avancées
Une fois les bases maîtrisées, vous pouvez étendre votre bot pour réaliser des tâches plus complexes :
- Interagir avec des API externes : par exemple, un bot météo qui consulte un service tiers et renvoie les prévisions.
- Traiter des fichiers : réception de documents, conversion on-the-fly.
- Utiliser la ConversationHandler de la bibliothèque python-telegram-bot pour créer des dialogues en plusieurs étapes (formulaire).
- Envoyer des messages enrichis : boutons inline, clavier personnalisé, pièces jointes.
- Gérer des bases de données pour stocker l’état des utilisateurs et les tâches.
Pour les projets plus lourds, envisagez l’utilisation de files d’attente comme RabbitMQ ou Redis pour découpler la réception des messages et leur traitement. Cela devient indispensable si votre bot doit gérer des centaines de milliers d’utilisateurs.
Scénarios applicables et non applicables
| Applicable | Non applicable |
|---|---|
| Rappels et notifications programmés | Applications temps réel avec latence < 100 ms (utiliser plutôt une connexion WebSocket) |
| Modération de groupes (filtrage de mots, anti-spam) | Traitement de très gros volumes (millions de messages/jour) sans architecture distribuée |
| Interaction avec API tierces (météo, traduction) | Tâches nécessitant des paquets complexes ou des dépendances lourdes (préférez un microservice) |
| Bots simples pour équipes de 10 à 500 utilisateurs | Bots nécessitant une latence quasi nulle ou un chiffrement de bout en bout (Telegram ne chiffre pas les messages des bots) |
Dépannage des problèmes courants
Voici quelques symptômes fréquents et leurs causes possibles pour vous aider à diagnostiquer rapidement :
- Le bot ne répond pas aux commandes : vérifiez que votre code est bien en cours d’exécution, que le token est correct, et que le mode polling ou webhook est actif (pas les deux en même temps).
- Le bot ne voit pas les messages dans un groupe : le privacy mode est probablement activé. Utilisez
/setprivacydans BotFather pour le désactiver si nécessaire. - Erreur 409 : Conflict : un autre processus utilise le même token (par exemple deux instances de polling). Arrêtez toutes les instances et ne relancez qu’une seule.
- Erreur 429 : Too Many Requests : vous dépassez la limite de débit. Implémentez un système de file d’attente ou espacez les appels.
- Webhook ne répond pas : vérifiez que l’URL est bien publique, accessible en HTTPS, et que le certificat est valide. Testez avec un outil comme
curl.
Pour diagnostiquer, inspectez les logs de votre application et, si nécessaire, activez le mode verbose des bibliothèques. Les réponses de l’API Telegram incluent souvent un champ description explicatif.
FAQ
Puis-je créer un bot sans savoir programmer ?
Oui, vous pouvez utiliser des plateformes no-code comme Manybot ou BotPress, mais cet article se concentre sur la méthode programmatique qui offre plus de flexibilité. Avec BotFather, vous pouvez configurer des commandes de base sans codage, mais l’automatisation avancée nécessite du code.
Combien de bots puis-je créer avec un seul compte Telegram ?
Il n’y a pas de limite officielle annoncée par Telegram. En pratique, vous pouvez en créer plusieurs dizaines avec le même compte, chacun ayant un token distinct. Cependant, chaque bot doit avoir un username unique.
Mon bot peut-il envoyer des messages en premier (sans commande) ?
Oui, un bot peut initier une conversation avec un utilisateur s’il connaît son chat_id. Cependant, si l’utilisateur n’a jamais interagi avec le bot, celui-ci ne pourra pas lui envoyer de message avant que l’utilisateur n’ait envoyé /start. C’est une règle anti-spam de Telegram.
Comment supprimer définitivement mon bot ?
Dans BotFather, utilisez la commande /deletebot, sélectionnez le bot concerné, puis confirmez. Cette action est irréversible et libère le username.
Pourquoi mon bot ne reçoit-il pas les messages d’un canal ?
Les bots ne peuvent pas lire les messages des canaux à moins qu’ils n’en soient administrateurs. Ajoutez le bot comme administrateur du canal avec les droits de lecture des messages. De plus, le privacy mode doit être désactivé pour voir tous les messages.
Conclusion et prochaines étapes
Créer un bot Telegram avec BotFather est un processus simple mais puissant. En suivant les étapes décrites — création, configuration des commandes, choix entre polling et webhook, gestion des autorisations — vous pouvez automatiser un large éventail de tâches. L’exemple concret du bot de rappel illustre comment transformer un concept en code fonctionnel. N’oubliez pas de sécuriser votre token et de tester votre bot dans un environnement de développement avant de le déployer en production.
Pour approfondir, explorez la documentation officielle de l’API Telegram (accessible via https://core.telegram.org/bots/api) et les bibliothèques recommandées pour votre langage préféré. L’automatisation des tâches Telegram ouvre la voie à des intégrations sur mesure, que ce soit pour la productivité personnelle, la modération de communautés ou des workflows d’entreprise.
📌 Rappel :
Les versions des bibliothèques et de Telegram évoluent. Consultez toujours les ressources officielles pour les dernières mises à jour.
Date de rédaction : septembre 2026. Les captures d’écran et chemins UI sont donnés à titre indicatif ; ils peuvent légèrement varier selon votre version de l’application.