Voici la deuxième leçon qui vous permettra d'enrichir votre bot en y ajoutant :
Une commande /help qui affiche une aide pour l'utilisateur
Un MessageHandler qui réagit aux messages texte ordinaires (non commandes) en renvoyant un écho du message reçu
Cette leçon vous aidera à comprendre comment gérer différents types d'interactions avec votre bot.
1. Objectifs de la leçon
Ajouter une nouvelle commande (/help) :
Vous apprendrez à créer une fonction asynchrone qui envoie un message listant les commandes disponibles.
Utiliser un MessageHandler pour les messages texte :
Vous verrez comment intercepter et répondre à tout message texte qui n'est pas une commande, grâce aux filtres fournis par python-telegram-bot.
Une commande /help qui affiche une aide pour l'utilisateur
Un MessageHandler qui réagit aux messages texte ordinaires (non commandes) en renvoyant un écho du message reçu
Cette leçon vous aidera à comprendre comment gérer différents types d'interactions avec votre bot.
1. Objectifs de la leçon
Ajouter une nouvelle commande (/help) :
Vous apprendrez à créer une fonction asynchrone qui envoie un message listant les commandes disponibles.
Utiliser un MessageHandler pour les messages texte :
Vous verrez comment intercepter et répondre à tout message texte qui n'est pas une commande, grâce aux filtres fournis par python-telegram-bot.
2. Le code complet et commenté
#Importation des classes nécessaires depuis python-telegram-bot
from telegram import Update
from telegram.ext import ApplicationBuilder, CommandHandler, MessageHandler, filters, ContextTypes
# Fonction asynchrone pour gérer la commande /start
async def start(update: Update, context: ContextTypes.DEFAULT_TYPE):
await update.message.reply_text("Bonjour ! Je suis ton bot créé avec Pydroid3 et python-telegram-bot.")
# Fonction asynchrone pour gérer la commande /help
async def help_command(update: Update, context: ContextTypes.DEFAULT_TYPE):
help_text = (
"Voici les commandes disponibles :\n"
"/start - Démarrer le bot\n"
"/help - Afficher ce message d'aide\n\n"
"Envoyez-moi un message texte et je vous répondrai automatiquement."
)
await update.message.reply_text(help_text)
# Fonction asynchrone pour gérer les messages texte non commandes
async def echo(update: Update, context: ContextTypes.DEFAULT_TYPE):
# Répondre avec un écho du message envoyé
await update.message.reply_text(f"Vous avez dit : {update.message.text}")
# Point d'entrée du programme
if __name__ == '__main__':
# Remplacez 'YOUR_BOT_TOKEN' par le token fourni par BotFather
bot_token = 'YOUR_BOT_TOKEN'
# Création de l'application (notre bot) avec ApplicationBuilder
app = ApplicationBuilder().token(bot_token).build()
# Ajout du handler pour la commande /start
app.add_handler(CommandHandler("start", start))
# Ajout du handler pour la commande /help
app.add_handler(CommandHandler("help", help_command))
# Ajout d'un MessageHandler pour répondre à tous les messages texte qui ne sont pas des commandes
app.add_handler(MessageHandler(filters.TEXT & (~filters.COMMAND), echo))
# Message pour indiquer le lancement du bot
print("Le bot est lancé. Testez-le en envoyant /start, /help ou un message texte.")
# Démarrage du bot en mode polling (vérifie régulièrement les mises à jour)
app.run_polling()
NETFLASH CODE
2. Le code complet et commenté #Importation des classes nécessaires depuis python-telegram-bot from telegram import Update from telegram.ext import ApplicationBuilder, CommandHandler, MessageHandler, filters, ContextTypes # Fonction asynchrone pour gérer…
Comme avant la même chose remplace le bot_token par le tien
This media is not supported in your browser
VIEW IN TELEGRAM
COPIE COLLÉ DU CODE ET EXÉCUTION APRÈS REMPLACEMENT DU TOKEN
3. Explications détaillées
a. Commandes et Handlers
CommandHandler("start", start)
Lie la commande /start à la fonction start. Lorsque l'utilisateur envoie /start, la fonction asynchrone start est exécutée, renvoyant un message de bienvenue.
CommandHandler("help", help_command)
Lie la commande /help à la fonction help_command qui affiche la liste des commandes et des instructions.
b. MessageHandler pour les messages texte
MessageHandler(filters.TEXT & (~filters.COMMAND), echo)
Cette ligne crée un handler pour intercepter tous les messages texte qui ne sont pas des commandes.
filters.TEXT sélectionne tous les messages texte.
~filters.COMMAND exclut les messages qui commencent par une commande (comme /start ou /help).
La fonction echo est alors appelée pour répondre en renvoyant le texte reçu.
c. Structure asynchrone
Toutes les fonctions manipulant les interactions avec le bot sont déclarées avec le mot-clé async. Cela permet d'utiliser await pour gérer les appels asynchrones, améliorant la performance en traitant plusieurs requêtes simultanément.
d. Lancement du bot
app.run_polling() démarre le bot en mode polling, c'est-à-dire qu'il vérifie régulièrement auprès de Telegram s'il y a de nouvelles mises à jour.
Le print initial permet de savoir que le bot est bien lancé.
4. Testez votre bot
Sauvegardez ce script dans Pydroid3 (par exemple, sous le nom bot2.py).
Exécutez le script.
Ouvrez Telegram, trouvez votre bot et testez les commandes :
Envoyez /start pour recevoir le message de bienvenue.
Envoyez /help pour obtenir la liste des commandes.
Envoyez un message texte simple pour voir l'effet de l'écho.
Cette leçon vous permet d'aller plus loin dans la gestion des interactions avec votre bot et de rendre son comportement plus dynamique et interactif. N'hésitez pas à expérimenter en ajoutant d'autres commandes ou en modifiant la logique de réponse du MessageHandler.
Si vous avez des questions ou souhaitez approfondir certains points, je suis là pour vous aider !
a. Commandes et Handlers
CommandHandler("start", start)
Lie la commande /start à la fonction start. Lorsque l'utilisateur envoie /start, la fonction asynchrone start est exécutée, renvoyant un message de bienvenue.
CommandHandler("help", help_command)
Lie la commande /help à la fonction help_command qui affiche la liste des commandes et des instructions.
b. MessageHandler pour les messages texte
MessageHandler(filters.TEXT & (~filters.COMMAND), echo)
Cette ligne crée un handler pour intercepter tous les messages texte qui ne sont pas des commandes.
filters.TEXT sélectionne tous les messages texte.
~filters.COMMAND exclut les messages qui commencent par une commande (comme /start ou /help).
La fonction echo est alors appelée pour répondre en renvoyant le texte reçu.
c. Structure asynchrone
Toutes les fonctions manipulant les interactions avec le bot sont déclarées avec le mot-clé async. Cela permet d'utiliser await pour gérer les appels asynchrones, améliorant la performance en traitant plusieurs requêtes simultanément.
d. Lancement du bot
app.run_polling() démarre le bot en mode polling, c'est-à-dire qu'il vérifie régulièrement auprès de Telegram s'il y a de nouvelles mises à jour.
Le print initial permet de savoir que le bot est bien lancé.
4. Testez votre bot
Sauvegardez ce script dans Pydroid3 (par exemple, sous le nom bot2.py).
Exécutez le script.
Ouvrez Telegram, trouvez votre bot et testez les commandes :
Envoyez /start pour recevoir le message de bienvenue.
Envoyez /help pour obtenir la liste des commandes.
Envoyez un message texte simple pour voir l'effet de l'écho.
Cette leçon vous permet d'aller plus loin dans la gestion des interactions avec votre bot et de rendre son comportement plus dynamique et interactif. N'hésitez pas à expérimenter en ajoutant d'autres commandes ou en modifiant la logique de réponse du MessageHandler.
Si vous avez des questions ou souhaitez approfondir certains points, je suis là pour vous aider !
Cours préparé êtes-vous prêt ?
Mais avant cela nous allons faire un test exam pour voir si vous maîtrisez les 2 leçons passées 📥 VEUILLEZ CONTACTER @DIVINMAURI POUR PARTICIPER À L'EXAMEN
N.B : Les personnes ayants participé et réussi seront affichées dans le canal
Mais avant cela nous allons faire un test exam pour voir si vous maîtrisez les 2 leçons passées 📥 VEUILLEZ CONTACTER @DIVINMAURI POUR PARTICIPER À L'EXAMEN
N.B : Les personnes ayants participé et réussi seront affichées dans le canal
❤🔥6
@MondeDeNinjasBot mis en ligne avec succès jouer à votre souffle CRÉATEUR : @GameFrench
