Créez Votre Premier Bot Telegram avec Python : Le Guide Complet
Apprenez à créer un bot Telegram puissant et gratuit avec Python. Ce tutoriel étape par étape couvre tout, de la configuration de l'API au déploiement de votre bot Telegram personnalisé.
Créer un bot Telegram personnalisé avec Python offre une flexibilité et une puissance immenses. Que vous cherchiez à automatiser des tâches, à créer des services interactifs ou simplement à expérimenter l’API robuste de Telegram, Python est un excellent choix grâce à sa simplicité et ses nombreuses bibliothèques. Dans ce guide complet, nous vous accompagnerons à travers tout le processus de création de votre premier projet de bot Telegram en Python, de la configuration de votre environnement de développement à l’écriture de code fonctionnel et au déploiement de votre bot.
La lisibilité de Python et la communauté active qui soutient la bibliothèque python-telegram-bot en font un excellent point de départ pour les développeurs débutants comme expérimentés. À la fin de ce tutoriel, vous aurez un bot Telegram entièrement opérationnel, prêt à interagir avec les utilisateurs.
Points Clés à Retenir
- Vous apprendrez à enregistrer votre bot avec BotFather et à obtenir un jeton API.
- Nous couvrirons la configuration de votre environnement de développement Python et l’installation des bibliothèques nécessaires.
- Vous écrirez du code pour gérer les commandes et messages de base.
- Nous explorerons comment ajouter des fonctionnalités plus sophistiquées à votre bot.
- Vous comprendrez les bases du déploiement de votre application de bot Telegram en Python.
1. Configuration de Votre Bot Telegram et de l’Environnement de Développement
Avant de plonger dans le code, vous devez configurer votre bot sur Telegram et préparer votre environnement Python.
1.1 Créer Votre Bot avec BotFather
La première étape pour tout bot Telegram est de l’enregistrer auprès de BotFather, le bot officiel de Telegram pour la gestion des autres bots.
- Ouvrez Telegram et Recherchez @BotFather : Dans votre application Telegram, recherchez “@BotFather” et démarrez une conversation. Assurez-vous qu’il s’agit bien du compte officiel avec un badge bleu vérifié.
- Lancez le Processus de Création du Bot : Tapez
/newbotet envoyez le message. - Choisissez un Nom : BotFather vous demandera un nom pour votre bot. C’est le titre lisible par l’homme que les utilisateurs verront (par exemple, “Mon Super Bot”).
- Choisissez un Nom d’Utilisateur : Ensuite, choisissez un nom d’utilisateur unique pour votre bot. Celui-ci doit se terminer par “bot” (par exemple,
mon_super_bot). Si le nom d’utilisateur est déjà pris, BotFather vous demandera d’en essayer un autre. - Recevez Votre Jeton API : Une fois l’opération réussie, BotFather vous fournira un jeton API HTTP. Ce jeton est crucial, car il agit comme un mot de passe pour votre bot. Gardez-le en sécurité et ne le partagez jamais publiquement. Il ressemblera à quelque chose comme
123456:ABC-DEF1234ghIkl-zyx57W23L1qR_456.
1.2 Installation de Python et pip
Si vous n’avez pas encore Python installé, téléchargez la dernière version stable depuis le site officiel de Python (https://www.python.org/downloads/). Lors de l’installation, assurez-vous de cocher la case “Add Python to PATH” pour un accès plus facile via la ligne de commande.
pip est l’installateur de paquets de Python, et il est généralement préinstallé avec Python. Vous pouvez vérifier vos installations Python et pip en ouvrant votre terminal ou invite de commande et en tapant :
python --version
pip --version
1.3 Installation de la Bibliothèque python-telegram-bot
La bibliothèque python-telegram-bot est un wrapper populaire et robuste pour l’API Bot de Telegram. Elle simplifie les interactions avec l’API, rendant le développement de votre bot beaucoup plus facile.
Installez-la en utilisant pip :
pip install python-telegram-bot
Vous avez maintenant configuré avec succès votre bot et votre environnement de développement. Passons à l’écriture de code !
2. Votre Premier Code de Bot Telegram en Python : Le Bot Écho
Nous allons commencer par un classique : un bot écho. Ce bot répétera simplement tout message qu’il reçoit. Cet exemple simple vous enseigne les concepts fondamentaux de la gestion des messages.
2.1 Importation des Modules Nécessaires
Créez un nouveau fichier Python (par exemple, mon_bot_telegram.py) et commencez par importer les composants requis de la bibliothèque telegram.
from telegram import Update
from telegram.ext import Application, CommandHandler, MessageHandler, filters
import logging
import os
Update: Représente une mise à jour entrante de Telegram (par exemple, un nouveau message, une commande).Application: La classe principale qui gère le cycle de vie de votre bot.CommandHandler: Utilisé pour enregistrer des gestionnaires pour des commandes spécifiques (par exemple,/start,/help).MessageHandler: Utilisé pour enregistrer des gestionnaires pour différents types de messages (texte, photos, etc.).filters: Fournit des filtres pratiques pour spécifier à quels messages unMessageHandlerdoit répondre.logging: Bonne pratique pour le débogage et la compréhension du comportement de votre bot.os: Pour charger en toute sécurité votre jeton API à partir des variables d’environnement.
2.2 Configuration de la Journalisation (Logging)
La journalisation est essentielle pour le dépannage. Ajoutez les lignes suivantes à votre script :
# Activer la journalisation
logging.basicConfig(
format="%(asctime)s - %(name)s - %(levelname)s - %(message)s", level=logging.INFO
)
logger = logging.getLogger(__name__)
2.3 Définition de Nos Gestionnaires (Handlers)
Les gestionnaires sont des fonctions qui traitent les mises à jour entrantes.
Gestionnaire de commande start :
Cette fonction sera appelée lorsqu’un utilisateur envoie la commande /start.
async def start(update: Update, context):
"""Envoie un message de bienvenue lorsque la commande /start est émise."""
user = update.effective_user
await update.message.reply_html(
f"Salut {user.mention_html()}! Je suis un bot écho. Envoie-moi n'importe quoi !",
# reply_markup=ForceReply(selective=True), # Optionnel : forcer la réponse à ce message
)
Gestionnaire de message echo :
Cette fonction renverra en écho tout message texte qu’elle reçoit.
async def echo(update: Update, context):
"""Renvoie en écho le message de l'utilisateur."""
await update.message.reply_text(update.message.text)
Gestionnaire de commande help_command :
Une simple commande d’aide.
async def help_command(update: Update, context):
"""Envoie un message d'aide."""
await update.message.reply_text("Envoie-moi n'importe quel message, et je te le renverrai en écho !")
2.4 La Fonction main : Tout Rassembler
La fonction main est l’endroit où nous initialisons notre bot, enregistrons les gestionnaires et commençons à interroger les mises à jour.
def main() -> None:
"""Démarre le bot."""
# Récupère le jeton API des variables d'environnement (MEILLEURE PRATIQUE !)
# Alternativement, vous pouvez le coder en dur ici pour des tests rapides : TOKEN = "VOTRE_JETON_API_TELEGRAM_BOT"
TOKEN = os.environ.get("TELEGRAM_BOT_TOKEN")
if not TOKEN:
raise ValueError("La variable d'environnement TELEGRAM_BOT_TOKEN n'est pas définie.")
# Crée l'Application et lui passe le jeton de votre bot.
application = Application.builder().token(TOKEN).build()
# Enregistre les gestionnaires
application.add_handler(CommandHandler("start", start))
application.add_handler(CommandHandler("help", help_command))
application.add_handler(MessageHandler(filters.TEXT & ~filters.COMMAND, echo))
# Exécute le bot jusqu'à ce que l'utilisateur appuie sur Ctrl-C
application.run_polling(allowed_updates=Update.ALL_TYPES)
if __name__ == "__main__":
main()
2.5 Exécuter Votre Bot Localement
-
Définissez Votre Jeton API comme Variable d’Environnement :
- Linux/macOS :
export TELEGRAM_BOT_TOKEN="VOTRE_JETON_API_ICI" - Windows (Invite de commandes) :
set TELEGRAM_BOT_TOKEN="VOTRE_JETON_API_ICI" - Windows (PowerShell) :
$env:TELEGRAM_BOT_TOKEN="VOTRE_JETON_API_ICI"Alternativement, pour des tests locaux rapides, vous pouvez remplaceros.environ.get("TELEGRAM_BOT_TOKEN")par votre chaîne de jeton réelle directement dans le code (par exemple,TOKEN = "123456:ABCDEF..."), mais ce n’est pas recommandé pour la production.
- Linux/macOS :
-
Exécutez Votre Script Python : Naviguez vers le répertoire où vous avez enregistré
mon_bot_telegram.pydans votre terminal et exécutez :python mon_bot_telegram.py -
Interagissez avec Votre Bot : Ouvrez Telegram, recherchez le nom d’utilisateur de votre bot (par exemple,
@mon_super_bot), et démarrez une conversation. Essayez d’envoyer/start,/help, ou n’importe quel message texte. Votre bot devrait répondre !
Félicitations ! Vous venez de créer et d’exécuter votre première application de bot Telegram en Python.

3. Ajouter des Fonctionnalités Plus Avancées
Un bot écho, c’est sympa, mais rendons-le plus utile. Voici des idées pour étendre votre bot Telegram.
3.1 Gérer Différents Types de Messages
Outre le texte brut, Telegram prend en charge les photos, les vidéos, les documents et bien plus encore. Vous pouvez utiliser des filters pour gérer spécifiquement ces types.
Exemple : Répondre aux photos
async def handle_photo(update: Update, context):
"""Répond à une photo par un message de confirmation."""
# Vous pouvez accéder aux détails de la photo via update.message.photo
# La liste contient différentes tailles de la même photo ; la dernière est généralement la plus grande.
photo_file_id = update.message.photo[-1].file_id
await update.message.reply_text("Belle photo ! Je l'ai bien reçue.")
# Ajoutez ce gestionnaire dans votre fonction main
# application.add_handler(MessageHandler(filters.PHOTO, handle_photo))
3.2 Utilisation des Claviers Inline et des Claviers de Réponse
Les claviers offrent des options d’interaction structurées pour les utilisateurs.
- Claviers de Réponse (Reply Keyboards) : Apparaissent au-dessus du champ de saisie de message, remplaçant efficacement le clavier standard. Idéal pour des choix prédéfinis.
- Claviers Inline (Inline Keyboards) : Attachés directement à un message, avec des boutons qui peuvent déclencher des rappels (callbacks) ou ouvrir des URL. Idéal pour les menus interactifs.
Exemple : Clavier Inline
Modifions notre commande /start pour offrir des boutons.
from telegram import Update, InlineKeyboardButton, InlineKeyboardMarkup
from telegram.ext import Application, CommandHandler, MessageHandler, CallbackQueryHandler, filters
# ... (autres imports et journalisation) ...
async def start(update: Update, context):
"""Envoie un message de bienvenue avec un clavier inline."""
user = update.effective_user
keyboard = [
[InlineKeyboardButton("Visiter TeleClaw", url="https://teleclaw.bot")],
[InlineKeyboardButton("À propos du Bot", callback_data="about")],
]
reply_markup = InlineKeyboardMarkup(keyboard)
await update.message.reply_html(
f"Salut {user.mention_html()}! Bienvenue sur mon bot. Que souhaitez-vous faire ?",
reply_markup=reply_markup,
)
async def button_callback(update: Update, context):
"""Gère les requêtes de rappel (callback queries) des boutons de clavier inline."""
query = update.callback_query
await query.answer() # Toujours répondre aux requêtes de rappel
if query.data == "about":
await query.edit_message_text(text="Ceci est un bot de démonstration simple créé avec Python et la bibliothèque `python-telegram-bot`.")
# Ajoutez d'autres conditions pour d'autres valeurs de callback_data
Vous devrez mettre à jour votre fonction main pour inclure le CallbackQueryHandler :
# ... à l'intérieur de main() ...
application.add_handler(CommandHandler("start", start))
application.add_handler(CallbackQueryHandler(button_callback)) # Ajoutez cette ligne
application.add_handler(MessageHandler(filters.TEXT & ~filters.COMMAND, echo))
# ...
Ceci démontre comment lier à un site externe comme TeleClaw et effectuer une action au sein du bot. Vous pouvez explorer davantage les différentes options de clavier dans la documentation de python-telegram-bot (https://docs.python-telegram-bot.org/en/stable/telegram.keyboardbutton.html).
3.3 Intégration avec des API Externes
La véritable puissance du développement de bot Telegram en Python réside dans sa capacité à s’intégrer avec des services tiers. Vous pouvez récupérer des données météorologiques, des actualités, traduire du texte, ou même vous intégrer à des modèles d’IA.
Exemple : Appel API Simple (en utilisant la bibliothèque requests)
Tout d’abord, installez requests : pip install requests.
import requests
async def get_fact(update: Update, context):
"""Récupère un fait aléatoire depuis une API externe."""
try:
response = requests.get("https://uselessfacts.jsph.pl/api/v2/facts/random")
response.raise_for_status() # Lève une HTTPError pour les mauvaises réponses (4xx ou 5xx)
fact_data = response.json()
await update.message.reply_text(f"Saviez-vous que ? {fact_data['text']}")
except requests.exceptions.RequestException as e:
logger.error(f"Erreur lors de la récupération du fait : {e}")
await update.message.reply_text("Désolé, je n'ai pas pu récupérer de fait pour le moment. Veuillez réessayer plus tard.")
# Ajoutez ce gestionnaire de commande :
# application.add_handler(CommandHandler("fact", get_fact))
Ceci démontre comment un bot pourrait interagir avec des sources de données externes, tout comme @claw s’intègre à divers services pour offrir des fonctionnalités sophistiquées. Pour des interactions d’IA plus avancées, envisagez d’utiliser des plateformes comme TeleClaw, qui abstraient les complexités de l’intégration avec des modèles comme GPT-4 ou Gemini. Vous pouvez en savoir plus sur l’intégration d’outils d’IA dans notre article sur comment créer un chatbot Telegram.

4. Gestion des Données Persistantes et de l’État
Pour les bots plus complexes, vous aurez besoin d’un moyen de stocker des données entre les interactions. Par exemple, si votre bot doit se souvenir des préférences de l’utilisateur ou des conversations en cours.
4.1 Utilisation de context.user_data et context.chat_data
La bibliothèque python-telegram-bot fournit des dictionnaires context.user_data et context.chat_data (disponibles dans vos fonctions de gestionnaire) qui peuvent stocker des données temporaires associées à un utilisateur ou à une conversation. Ces données persistent pendant la durée d’exécution du bot.
async def set_favorite_color(update: Update, context):
"""Permet aux utilisateurs de définir leur couleur préférée."""
if context.args:
color = " ".join(context.args).strip()
context.user_data["favorite_color"] = color
await update.message.reply_text(f"D'accord, j'ai noté votre couleur préférée comme {color}.")
else:
await update.message.reply_text("Veuillez me dire votre couleur préférée, par exemple, /setcolor bleu")
async def get_favorite_color(update: Update, context):
"""Indique à l'utilisateur sa couleur préférée."""
color = context.user_data.get("favorite_color")
if color:
await update.message.reply_text(f"Votre couleur préférée est {color}.")
else:
await update.message.reply_text("Je ne connais pas encore votre couleur préférée. Utilisez /setcolor.")
# Ajoutez ces gestionnaires :
# application.add_handler(CommandHandler("setcolor", set_favorite_color))
# application.add_handler(CommandHandler("getcolor", get_favorite_color))
4.2 Persistance des Données Après les Redémarrages
Pour que les données persistent même lorsque votre script de bot redémarre, vous avez besoin d’une solution plus robuste, telle que :
- Fichiers (CSV, JSON) : Simple pour de petites quantités de données.
- Bases de données (SQLite, PostgreSQL, MongoDB) : Recommandé pour un stockage de données plus important et plus complexe.
SQLiteest un bon choix pour le développement local car il est basé sur des fichiers et ne nécessite pas de serveur séparé. - Solutions de stockage tierces : Bases de données cloud comme Firestore ou DynamoDB.
La bibliothèque python-telegram-bot propose également des classes BasePersistence qui peuvent être utilisées avec PicklePersistence ou DictPersistence pour sauvegarder user_data, chat_data et bot_data dans un fichier. Référez-vous aux exemples officiels de python-telegram-bot pour savoir comment utiliser la persistance (https://docs.python-telegram-bot.org/en/stable/telegram.ext.basepersistence.html).
5. Considérations de Déploiement
Exécuter votre bot sur votre machine locale est suffisant pour le développement, mais pour qu’il soit accessible 24h/24 et 7j/7, vous devez le déployer sur un serveur.
5.1 Polling vs. Webhooks
Il existe deux façons principales pour un bot Telegram de recevoir des mises à jour :
- Long Polling : Votre bot demande à plusieurs reprises aux serveurs Telegram de nouvelles mises à jour. C’est ce que nous avons utilisé avec
application.run_polling(). Simple à configurer mais peut être gourmand en ressources pour les bots très actifs. - Webhooks : Vous indiquez à Telegram l’URL de votre serveur. Lorsqu’une mise à jour se produit, Telegram envoie une requête HTTP POST à cette URL. Plus efficace pour la production, mais nécessite un serveur accessible publiquement et la gestion du HTTPS.
Pour les bots simples et le développement initial, le long polling est suffisant. Pour la production, les webhooks sont généralement préférés. La bibliothèque python-telegram-bot prend en charge les deux.
5.2 Plateformes de Déploiement
Plusieurs plateformes conviennent au déploiement de bots Python :
- Heroku : Idéal pour les projets de petite à moyenne taille, avec un niveau gratuit. Facile à déployer avec
git. - Render : Similaire à Heroku mais souvent avec des niveaux gratuits plus généreux et des fonctionnalités modernes.
- AWS (EC2, Lambda), Google Cloud (Compute Engine, Cloud Functions), Azure (App Service, Functions) : Offrent des solutions puissantes et évolutives mais ont une courbe d’apprentissage plus raide.
- Serveurs Privés Virtuels (VPS) : Des services comme DigitalOcean, Linode, Vultr vous donnent plus de contrôle, mais vous êtes responsable de la gestion du serveur.
Lors du déploiement, n’oubliez pas de :
- Sécuriser votre jeton API : Utilisez des variables d’environnement.
- Installer les dépendances : Créez un fichier
requirements.txt(pip freeze > requirements.txt) et assurez-vous que votre hôte les installe. - Configurer les gestionnaires de processus : Des outils comme
systemdoupm2peuvent maintenir votre bot en fonctionnement même s’il plante.
Pour les applications commerciales ou les bots alimentés par l’IA hautement évolutifs, des plateformes comme TeleClaw offrent un environnement robuste et géré. Elles gèrent l’infrastructure, la sécurité et la mise à l’échelle, vous permettant de vous concentrer sur la logique de votre bot et l’expérience utilisateur. Consultez notre guide détaillé sur Telegram bot pour les entreprises pour voir ce que TeleClaw propose.
Conclusion
Vous avez maintenant appris les principes fondamentaux de la création d’une application de bot Telegram en Python. De la configuration initiale avec BotFather et l’environnement, à l’écriture de gestionnaires pour les commandes et les messages, en passant par la gestion de différents types de données et la prise en compte des stratégies de déploiement, vous disposez d’une base solide. La bibliothèque python-telegram-bot rend l’interaction avec l’API Telegram étonnamment simple, ouvrant un monde de possibilités pour l’automatisation et l’interaction.
À mesure que vous vous familiariserez, vous pourrez explorer des sujets avancés tels que :
- La gestion des conversations avec
ConversationHandler. - La gestion des erreurs et une journalisation robuste.
- L’intégration avec des bases de données pour un stockage de données complexe.
- L’utilisation de
filtersplus avancés. - L’implémentation du mode inline pour des capacités de recherche globale.
N’oubliez pas que la beauté de l’ouverture de Telegram et de la polyvalence de Python est que vous pouvez construire presque n’importe quoi. Si vous cherchez à élever votre bot avec une IA de pointe, une compréhension du langage naturel ou des intégrations transparentes sans le lourd fardeau du codage, des plateformes comme TeleClaw sont conçues pour vous donner les moyens.
Prêt à construire, améliorer ou gérer vos bots Telegram avec une automatisation intelligente ?
Découvrez TeleClaw dès aujourd’hui et suralimentez votre bot Telegram ! ou essayez notre bot directement sur Telegram : @claw
FAQ
Questions fréquemment posées
Quelles sont les étapes de base pour créer un bot Telegram avec Python ?
Ai-je besoin d'expérience en codage pour suivre ce tutoriel de bot Telegram en Python ?
Comment TeleClaw peut-il m'aider dans mon projet de bot Telegram en Python ?
Continuer la lecture
Les meilleurs agents IA pour les entreprises en 2026 : un guide par catégorie
La manière la plus claire de comparer les agents IA pour les entreprises en 2026 : six catégories concrètes, des choix honnêtes et la place réelle d'un agent natif de Telegram comme TeleClaw.
Agents Cloud TeleClaw : Exécutez un agent de codage depuis Telegram
TeleClaw est répertorié dans la catégorie des agents cloud d'OpenRouter. Découvrez ce qu'est un agent cloud, comment 2026 a transformé le domaine et comment en exécuter un depuis Telegram.