Création d'un chatbot en PHP : de la théorie au code fonctionnel

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

Pourquoi PHP est un excellent langage pour un chatbot ?

\n

Quand 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.

\n

Nous 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\n

De quoi avez-vous besoin pour commencer ?

\n

Avant 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
\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\n

Enregistrement du bot sur Telegram

\n

Ouvrez Telegram, cherchez BotFather (le bot officiel pour créer des bots) et envoyez la commande :

\n
/newbot
\n

BotFather 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 :

\n
1234567890:AAHdqTcvCH1vGWJxfSeofSAs0K5PALDsaw
\n

Conservez ce token – il sera nécessaire pour toutes les requêtes à l'API. Ne le communiquez à personne, sinon votre bot pourrait être piraté.

\n\n

Architecture du chatbot : Long Polling vs Webhook

\n

Il 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
\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

\n

Pour é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 :

\n
composer require telegram-bot/api
\n

Cette 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.

\n\n

Étape 2 : Script de base pour traiter les messages entrants

\n

Cré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 :

\n\n
<?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                

Blogs

Book Recommendations