Comment déployer un bot Messenger en Python
Note: Cet article a été traduit avec Claude Code le 31 janvier 2026. La version originale est disponible ici.
Bonjour lecteur, dans cet article je vais expliquer mon approche pour déployer un chatbot en Python sur la plateforme Messenger.
Genèse du projet
Cette idée de déployer un chatbot vient de différents articles que j’ai lus sur comment des non-développeurs créent un bot de CV pour les assister pendant leur recherche d’emploi et avoir une vitrine numérique très sympa et originale.
Un des plus beaux exemples que j’ai vus était le HireElibot.

Ce chatbot que vous pouvez trouver sur Messenger est plutôt cool et je voulais en faire un pour m’assister dans ma future recherche d’emploi (ou au moins un squelette pour un futur chatbot).
Je ne suis définitivement pas un vrai développeur, mais je suis un codeur (comme un data scientist/maker peut l’être) et un amoureux de Python (beaucoup de collègues ont essayé de me pousser à utiliser node.js pour ce projet mais j’ai refusé) donc j’ai décidé d’essayer de faire mon propre chatbot en Python.
J’ai essayé différentes approches pour compléter ce projet que je vais expliquer maintenant.
Première approche : Telegram + Python
Ma première approche était d’essayer de trouver comment déployer un chatbot sur une plateforme et le rendre disponible sur différents appareils.
Ma recherche m’a conduit au cours de Gareth Dwyer sur Codementor.

Opinion : Le cours est vraiment bon et il donne un bel aperçu de l’utilisation de l’API Telegram pour faire un chatbot très simple. J’ai utilisé cette approche pour créer un chatbot météo qui utilise l’API Google Maps et l’API Dark Sky. Vous pouvez trouver le chatbot dans ce dépôt Github.
Donc j’ai décidé d’utiliser la plateforme Messenger et d’essayer de trouver le moyen de déployer le bot sur un serveur ou au moins éviter la “sale” boucle while avec une approche webhook.
Deuxième approche : Messenger + Heroku + Python
Dans cette partie ma recherche m’a conduit au blog de Hartley Brody et son post “Facebook Messenger Bot Tutorial: Step-by-Step Instructions for Building a Basic Facebook Chat Bot”.
L’article et le code sont très clairs, mais en gros l’idée est de déployer une application Flask qui peut recevoir les données envoyées par l’utilisateur (par l’utilisation de webhook) et répondre en conséquence aux interactions.
Opinion : Le cours est vraiment clair et je suis un défenseur de Flask donc c’est cool, mais l’utilisation d’Heroku dans sa version gratuite est assez limitée. Je dois pinger mon app Heroku toutes les 10 minutes pour éviter qu’elle s’endorme. Je peux payer pour continuer à utiliser une application Heroku propre mais j’ai trouvé le prix assez élevé pour juste un chatbot.
Comme la plupart de mon backend est stocké dans les services Amazon Web Services (dynamodb, RDS, S3), j’essaie de trouver une approche qui pourrait m’aider à utiliser la structure AWS et ne pas être trop chère et j’ai trouvé la solution parfaite pour moi.
Mon approche
Mes options sur AWS pour déployer l’application Flask étaient :
- Instance EC2
- Elastic beanstalk
- Lambda
Les deux premières options étaient toujours dans la même gamme de prix qu’Heroku et j’ai trouvé l’approche Elastic beanstalk très restreinte. Donc mon choix s’est porté sur le service AWS Lambda.
Pour déployer l’application Flask sur un lambda je dois trouver une dépendance qui permet ça. Amazon en a une appelée Chalice. J’ai testé cette bibliothèque pour d’autres projets d’API. C’est bien mais je dois traduire tout mon code du Framework Flask vers le framework Chalice donc…
Mais ma recherche m’a conduit à une super alternative à Chalice appelée Zappa et devinez quoi : ça marche parfaitement.
Pour déployer un chatbot Messenger dans un AWS Lambda vous pouvez suivre le processus suivant (que vous pouvez trouver dans ce dépôt github).
Processus
Étape 1 : Configurer une application Facebook
- Configurer une application Facebook dans le portail développeur
- Ajouter un produit messenger dans l’application

- Créer une page Facebook - Ajouter un bouton “envoyer un message” à la page

- Sélectionner la page que vous avez créée (et accepter que le profil ait accès blah blah blah)

- Conserver le jeton d’accès qui a été assigné pour l’application
Étape 2 : Créer votre application Flask
- Créer un environnement virtuel avec la commande virtualenv dans mon cas zappa_env
- Activer l’environnement avec
activate zappa_env - Installer les dépendances
pip install zappa flask awscli - Cloner le contenu de mon dépôt dans un dossier séparé de votre environnement

- Remplacer dans le fichier application.py par le jeton d’accès de votre application l’
access_token - Penser à un ‘verify_token’
Étape 3 : Déployer l’application sur AWS
- Utiliser la commande
zappa initdans votre dossier de projet - Dans ce tutoriel vous pouvez accepter les paramètres par défaut que zappa vous offre pour compléter le processus mais si vous voulez ajouter des spécifications allez-y
- Vérifier si dans votre dossier de projet il y a un fichier zappa_settings.json
- Votre application est maintenant initialisée donc nous pouvons déployer l’app avec la commande
zappa deploy dev - Laissez le déploiement commencer (détendez-vous).
Étape 4 : Finir de compléter la configuration de l’application Facebook
Sur la page des paramètres Messenger vous devez configurer les webhooks
- Copier coller l’url de votre app dans le champ callback url
- Ajouter le
verify_tokenauquel vous avez pensé avant - Vérifier et sauvegarder
- Abonner le webhook aux événements de votre page Facebook
Étape 5 : Mettre à jour votre application
- Pour finir vous devez mettre à jour la variable
verify_tokendans le fichier application.py avec le jeton que vous avez créé précédemment - Mettre à jour l’app avec la commande
zappa update dev
Étape 6 : Tester

Retour d’expérience
Donc avec cette approche vous pouvez avoir un chatbot Messenger que vous pouvez déployer facilement sans serveur avec un coût très limité.
J’espère que cet article qui présente mon approche pour déployer un chatbot vous aidera et si vous avez des remarques sur mes travaux contactez-moi.