Introduction : pourquoi PHP est un excellent choix pour un chatbot ?
\nAvez-vous déjà réfléchi au fonctionnement de ces assistants intelligents qui répondent aux questions dans Telegram, VK ou sur un site web ? Beaucoup pensent que pour créer un chatbot, il faut connaître Python ou Node.js. Mais la vérité est qu'un chatbot en PHP est non seulement réalisable, mais aussi très pratique. PHP est un langage mature avec une immense communauté, et il est parfait pour le prototypage rapide et le déploiement de bots.
\nDans ce guide, nous passerons du zéro absolu à un bot Telegram en PHP fonctionnel. Nous aborderons deux approches : un simple echo-bot sur Localhost et un bot avec connexion à une base de données. Spoiler : il y aura beaucoup de code que vous pourrez copier et exécuter immédiatement.
\n\nQu'est-ce qu'un chatbot et comment fonctionne-t-il ?
\nAvant d'écrire du code, comprenons l'architecture. Un chatbot est un programme qui reçoit un message d'un utilisateur, le traite et envoie une réponse. Dans le contexte de Telegram (la plateforme la plus populaire pour les bots), le schéma est le suivant :
\n- \n
- L'utilisateur écrit au bot dans Telegram. \n
- Telegram envoie une requête POST à votre serveur (Webhook) ou vous interrogez constamment le serveur (Long Polling). \n
- Votre script PHP traite la requête et envoie une réponse via l'API Telegram. \n
Nous utiliserons le Webhook — une méthode moderne et rapide. Imaginez que Telegram frappe à la porte de votre serveur à chaque nouveau message. Pratique, n'est-ce pas ?
\n\nPréparation : de quoi avez-vous besoin pour commencer ?
\nPour créer un chatbot simple en PHP, vous aurez besoin de :
\n- \n
- Un hébergement ou un serveur local (OpenServer, XAMPP, MAMP) avec PHP 7.4+. \n
- Un accès à Internet (pour enregistrer le bot dans Telegram). \n
- Des connaissances de base en PHP (variables, fonctions, travail avec JSON). \n
Si vous n'avez pas d'hébergement, pas de souci — pendant la phase de test, vous pouvez utiliser Localhost avec l'utilitaire ngrok, qui crée une URL publique temporaire. Mais nous en reparlerons plus tard.
Étape 1. Enregistrement du bot dans Telegram
\nAllez dans Telegram, trouvez BotFather (le bot officiel pour créer des bots) et tapez la commande /newbot. Répondez aux questions : donnez un nom (par exemple, MyTestBot) et un username (doit obligatoirement se terminer par bot, par exemple my_test_pythonlib_bot).
Après une inscription réussie, BotFather vous donnera un token — c'est la clé d'accès à l'API. Il ressemble à ceci : 123456:ABC-DEF1234ghIkl-zyx57W2v1u123ew11. Conservez-le dans un endroit sûr (de préférence dans un fichier .env, mais pour simplifier, nous le coderons en dur pour l'instant).
Important : Ne montrez jamais votre token à personne ! C'est le mot de passe de votre bot.
\n\nÉtape 2. Echo-bot très simple en PHP (Webhook)
\nCréons un fichier bot.php à la racine de votre site. Ce script recevra les requêtes de Telegram et répondra avec le même texte (echo).
<?php\n// Récupération des données de Telegram\n$content = file_get_contents("php://input");\n$update = json_decode($content, true);\n\n// Vérification de la présence d'un message\nif (!$update) {\n exit;\n}\n\n// Extraction de l'ID du chat et du texte du message\n$chat_id = $update['message']['chat']['id'];\n$text = $update['message']['text'];\n\n// Token de votre bot\n$token = "VOTRE_TOKEN_ICI";\n\n// Envoi de la réponse (echo)\n$url = "https://api.telegram.org/bot{$token}/sendMessage";\n$data = [\n 'chat_id' => $chat_id,\n 'text' => "Vous avez écrit : " . $text\n];\n\n// Utilisation de cURL pour envoyer la requête\n$ch = curl_init();\ncurl_setopt($ch, CURLOPT_URL, $url);\ncurl_setopt($ch, CURLOPT_POST, 1);\ncurl_setopt($ch, CURLOPT_POSTFIELDS, $data);\ncurl_setopt($ch, CURLOPT_RETURNTRANSFER, true);\n$result = curl_exec($ch);\ncurl_close($ch);\n?>\n\nComment cela fonctionne-t-il ?
\n- \n
- Telegram envoie une requête POST à votre fichier
bot.php. \n - Nous lisons l'entrée