Bot Telegram en PHP : du début au premier bonjour
\n\nQuand on parle de créer des bots pour Telegram, la première chose qui vient à l'esprit est Python. Et c'est logique : il existe une bibliothèque élégante python-telegram-bot, des tonnes de tutoriels et une immense communauté. Mais que faire si votre stack principal est PHP ? Ou si vous voulez rapidement bricoler un bot simple pour des notifications sans déployer un serveur séparé en Python ?
Bonne nouvelle : l'API Bot Telegram n'est pas liée à un langage. C'est une interface HTTP standard, et PHP s'en sort tout aussi bien. Dans cet article, nous allons voir comment créer un bot Telegram en PHP à partir de zéro : de l'enregistrement auprès de BotFather jusqu'à un bot complet qui répond aux commandes, envoie des messages et sait traiter les requêtes callback. Le tout avec des exemples de code concrets, sans blabla.
\n\nPourquoi PHP pour un bot Telegram est une bonne idée ?
\n\nDe nombreux développeurs sont sceptiques quant à l'utilisation de PHP dans le contexte des bots. "C'est un langage pour des sites bricolés, pas pour une vraie API". En réalité, PHP excelle en tant que gestionnaire serveur : il est simple, prévisible et fonctionne sur n'importe quel hébergement. Pour un bot qui n'exige pas de super performances (et la plupart des bots sont comme ça), PHP est un choix idéal.
\n\nDe plus, si vous avez déjà un site en PHP, vous pouvez héberger le bot sur le même serveur. Pas de workers supplémentaires, de démons ou de configurations complexes. Juste un fichier bot.php qui écoute sur un webhook et traite les requêtes de Telegram.
Ce qu'il faut pour commencer
\n\n- \n
- Un hébergement avec PHP 7.4+ (n'importe lequel fera l'affaire, même l'hébergement partagé le moins cher). \n
- Un accès HTTPS — Telegram exige que le webhook fonctionne via un protocole sécurisé. Vous pouvez utiliser Let's Encrypt. \n
- Un compte Telegram — évident, mais indispensable. \n
- Des bases en PHP — comprendre comment fonctionnent les fonctions, les tableaux et cURL suffit. \n
Si tout est en place, c'est parti.
\n\nÉtape 1. Enregistrer le bot auprès de BotFather
\n\nLancez une discussion Telegram avec @BotFather — c'est le principal "éleveur" de bots. Envoyez la commande :
\n\n/newbot\n\nOn vous demandera de saisir le nom du bot (il apparaîtra dans les contacts) et un nom d'utilisateur (doit se terminer par bot). Ensuite, vous recevrez un token — une longue chaîne de caractères comme :
1234567890:ABCdefGhIJKlmNoPQRsTUVwXYZ\n\nC'est la clé d'accès à votre bot. Ne la montrez à personne — quiconque connaît le token peut contrôler le bot.
\n\nJe recommande également de définir immédiatement une photo de profil et une description avec les commandes /setuserpic et /setdescription. Ce n'est pas obligatoire, mais cela rend le bot plus convivial.
Étape 2. Choisir la méthode de réception des mises à jour
\n\nL'API Bot Telegram propose deux options :
\n\n- \n
- Polling (long polling) — vous interrogez constamment le serveur Telegram en demandant "Y a-t-il de nouveaux messages ?". Cela fonctionne, mais nécessite une exécution continue du script (par exemple, via cron). \n
- Webhook — Telegram envoie lui-même une requête POST à votre serveur lorsqu'un nouveau message arrive. C'est plus pratique et plus rapide. \n
Nous allons utiliser le webhook. Pour commencer, vérifions que votre serveur est accessible depuis Internet via HTTPS. Si vous n'avez pas de certificat SSL, utilisez Cloudflare (ils offrent un SSL gratuit) ou achetez un certificat pour quelques centimes.
\n\nConfigurer le webhook
\n\nEnvoyez une requête GET à l'URL (vous pouvez simplement l'ouvrir dans un navigateur) :
\n\nhttps://api.telegram.org/bot<TOKEN>/setWebhook?url=https://votre_site/bot.php\n\nRemplacez <TOKEN> par votre vrai token, et https://votre_site/bot.php par le chemin réel vers votre script. En réponse, vous devriez obtenir un JSON :
{"ok": true, "result": true, "description": "Webhook was set"}