Créer un bot Python avec telegram-bot-api : guide complet

Formateur Python en ligne pour débutants

Apprenez Python facilement sans surcharge théorique. Résolvez des tâches pratiques avec vérification automatique et écrivez du code directement dans le navigateur.

Start Course

Comment créer un bot en Python avec telegram-bot-api ? Guide complet

Introduction aux bots Telegram

Dans le monde moderne, les messageries sont devenues essentielles, et les bots sont des outils pratiques pour automatiser des tâches, interagir avec les utilisateurs, voire gérer une activité. Si vous souhaitez créer rapidement et simplement votre propre bot pour Telegram, le langage Python et la bibliothèque python-telegram-bot sont le choix idéal.

Étape 1. Obtenir un token d'accès auprès de BotFather

Avant d'écrire du code, vous devez enregistrer votre bot sur Telegram. Pour cela :

  1. Ouvrez Telegram et recherchez l'utilisateur @BotFather.
  2. Entrez la commande /start, puis /newbot.
  3. Donnez un nom et un nom d'utilisateur unique à votre bot (par exemple, MonPremierBotPython).
  4. Après l'enregistrement, BotFather vous fournira un token API. Copiez-le : il vous sera nécessaire dans le code.

Étape 2. Installation des bibliothèques nécessaires

Pour interagir avec l'API Telegram, nous utiliserons la bibliothèque python-telegram-bot. Installez-la via pip :

pip install python-telegram-bot --upgrade

Étape 3. Structure de base du bot

Créons maintenant un bot simple qui répond à la commande /start :

from telegram import Update
from telegram.ext import ApplicationBuilder, CommandHandler, ContextTypes

async def start(update: Update, context: ContextTypes.DEFAULT_TYPE):
    await update.message.reply_text("Bonjour ! Je suis ton premier bot en Python !")

if __name__ == '__main__':
    app = ApplicationBuilder().token("VOTRE_TOKEN_ICI").build()
    app.add_handler(CommandHandler("start", start))
    app.run_polling()

Explications :

  • ApplicationBuilder et CommandHandler sont les outils de base pour gérer les commandes.
  • La fonction start réagit à la commande /start et envoie un message texte à l'utilisateur.
  • La méthode run_polling() lance le bot et commence à vérifier les nouveaux messages.

Étape 4. Gestion des messages utilisateur

Ajoutons la gestion des messages texte classiques :

from telegram.ext import MessageHandler, filters

async def echo(update: Update, context: ContextTypes.DEFAULT_TYPE):
    received_text = update.message.text
    await update.message.reply_text(f"Vous avez écrit : {received_text}")

if __name__ == '__main__':
    app = ApplicationBuilder().token("VOTRE_TOKEN_ICI").build()
    app.add_handler(CommandHandler("start", start))
    app.add_handler(MessageHandler(filters.TEXT & ~filters.COMMAND, echo))
    app.run_polling()

Désormais, le bot répond à tout message texte en répétant votre texte.

Étape 5. Ajout de boutons et d'un menu interactif

Les bots deviennent bien plus pratiques avec des boutons :

from telegram import InlineKeyboardButton, InlineKeyboardMarkup

async def menu(update: Update, context: ContextTypes.DEFAULT_TYPE):
    keyboard = [
        [InlineKeyboardButton("Bouton 1", callback_data='button1')],
        [InlineKeyboardButton("Bouton 2", callback_data='button2')]
    ]
    reply_markup = InlineKeyboardMarkup(keyboard)
    await update.message.reply_text('Choisissez une option :', reply_markup=reply_markup)

async def button_handler(update: Update, context: ContextTypes.DEFAULT_TYPE):
    query = update.callback_query
    await query.answer()
    await query.edit_message_text(text=f"Vous avez cliqué sur : {query.data}")

if __name__ == '__main__':
    from telegram.ext import CallbackQueryHandler
    app = ApplicationBuilder().token("VOTRE_TOKEN_ICI").build()
    app.add_handler(CommandHandler("start", start))
    app.add_handler(CommandHandler("menu", menu))
    app.add_handler(CallbackQueryHandler(button_handler))
    app.add_handler                

Blogs

Book Recommendations