Pourquoi PHP est un excellent langage pour un chatbot ?
\nQuand il s'agit de créer des chatbots, beaucoup pensent immédiatement à Python ou Node.js. Mais PHP, sur lequel fonctionne pythonlib.ru et une grande partie d'Internet, n'est pas en reste pour cette tâche. PHP a trois atouts majeurs : la simplicité de déploiement sur n'importe quel hébergement, une multitude de bibliothèques prêtes à l'emploi et une syntaxe claire. Si vous connaissez déjà PHP, vous pourrez écrire votre premier chatbot en une soirée. Dans cet article, nous allons détailler la création d'un chatbot en PHP à partir de zéro, depuis l'inscription sur Telegram jusqu'au traitement de commandes complexes.
\nNous n'utiliserons pas de frameworks – seulement du PHP pur et une bibliothèque officielle. Cela vous permettra de comprendre comment tout fonctionne « sous le capot ». Ensuite, vous pourrez facilement passer à n'importe quel framework moderne (Laravel, Symfony) pour la mise à l'échelle.
\n\nDe quoi avez-vous besoin pour commencer ?
\nAvant d'écrire du code, préparons l'environnement de travail. Pour le développement d'un bot en PHP, vous aurez besoin de :
\n- \n
- Serveur web (Apache ou Nginx) avec PHP 7.4 ou supérieur – n'importe quel hébergement ou OpenServer en local fera l'affaire. \n
- Accès HTTPS – Telegram nécessite une connexion sécurisée pour le Webhook (vous pouvez utiliser ngrok pour le développement local). \n
- Composer – le gestionnaire de paquets PHP (installation en une commande). \n
- Compte Telegram – pour enregistrer le bot et le tester. \n
Si vous avez déjà un site en PHP, comme pythonlib.ru, vous pouvez ajouter le bot directement sur son sous-domaine – c'est pratique et ne nécessite pas de frais supplémentaires.
\n\nEnregistrement du bot sur Telegram
\nOuvrez Telegram, cherchez BotFather (le bot officiel pour créer des bots) et envoyez la commande :
\n/newbot\nBotFather vous demandera de choisir un nom et un nom d'utilisateur (username) pour votre bot. Le username doit se terminer par bot, par exemple : MyFirstPHPBot. Après l'enregistrement réussi, vous recevrez un token – une longue chaîne de caractères comme :
1234567890:AAHdqTcvCH1vGWJxfSeofSAs0K5PALDsaw\nConservez ce token – il sera nécessaire pour toutes les requêtes à l'API. Ne le communiquez à personne, sinon votre bot pourrait être piraté.
\n\nArchitecture du chatbot : Long Polling vs Webhook
\nIl existe deux façons de faire recevoir des messages à un bot :
\n- \n
- Long Polling – le bot « interroge » constamment le serveur Telegram en demandant : « Y a-t-il de nouveaux messages ? ». Plus simple pour le débogage, mais sollicite le serveur. \n
- Webhook – Telegram envoie lui-même une requête POST à votre URL lorsque quelqu'un écrit au bot. Plus rapide et plus fiable, nécessite HTTPS. \n
Dans ce guide pratique, nous utiliserons le Webhook, car c'est la norme moderne pour les bots en production. Vous pouvez le configurer en une seule commande via le navigateur.
\n\nÉtape 1 : Installer la bibliothèque pour l'API Telegram
\nPour éviter d'écrire manuellement l'analyse JSON et l'envoi de requêtes, installons la bibliothèque PHP officielle de Telegram. Ouvrez un terminal dans le dossier de votre projet et exécutez :
\ncomposer require telegram-bot/api\nCette bibliothèque prend en charge toutes les méthodes de l'API et est mise à jour avec Telegram. Après l'installation, le dossier contiendra vendor et le fichier composer.json.
Étape 2 : Script de base pour traiter les messages entrants
\nCréez un fichier bot.php – ce sera le point d'entrée pour le Webhook. Voici le code minimal qui répond « Bonjour ! » à tout message :
<?php\nrequire_once __DIR__ . '/vendor/autoload.php';\n\nuse Telegram\\Bot\\Api;\n\n$token = 'VOTRE_TOKEN_ICI';\n$telegram = new Api($token);\n\n// Récupérer la mise à jour entrante\n$update = $telegram->getWebhookUpdate();\n\n// Extraire le texte du message et l'ID du chat\n$message = $update->getMessage();\n$chatId