Dans cet article, nous allons vous montrer comment créer un bot Telegram en utilisant PHP. Telegram est une messagerie très populaire et ses API permettent de créer des bots pour automatiser des tâches ou interagir avec les utilisateurs. Nous allons passer par les étapes de création d’un bot et de configuration pour qu’il fonctionne avec votre code PHP.
Pré-requis
Avant de commencer, assurez-vous d’avoir :
- Un compte Telegram.
- Un serveur web avec PHP.
Étape 1 : Créer le Bot avec BotFather
- Ouvrez Telegram et recherchez
BotFather
. - Tapez
/start
pour commencer une nouvelle conversation avec BotFather. - Envoyez la commande
/newbot
pour créer un nouveau bot. - BotFather vous demandera de donner un nom à votre bot, choisissez un nom (ex. : « MonBotTest »).
- Ensuite, vous devez fournir un nom d’utilisateur pour votre bot, qui doit se terminer par
bot
(ex. : « monbottest_bot »). - Une fois le nom validé, BotFather vous fournira un token. Ce token est essentiel, car il permet à votre bot d’interagir avec l’API Telegram.
Note : Gardez ce token confidentiel, il ne doit jamais être partagé.
Étape 2 : Configurer votre serveur PHP
Assurez-vous que votre serveur PHP fonctionne correctement. Vous pouvez tester en créant un simple fichier PHP avec du code comme :
<?php
echo "Le serveur fonctionne !";
?>
Placez ce fichier dans le répertoire public de votre serveur et vérifiez qu’il s’affiche correctement dans le navigateur.
Étape 3 : Créer le fichier PHP pour gérer les requêtes du bot
Nous allons maintenant créer un script PHP pour interagir avec l’API Telegram. Créez un fichier bot.php
dans votre serveur et ajoutez le code suivant :
<?php
// Remplacez par le token de votre bot
$botToken = "VOTRE_TOKEN_ICI";
$website = "https://api.telegram.org/bot" . $botToken;
// Recevoir les mises à jour envoyées par Telegram
$update = file_get_contents("php://input");
$updateArray = json_decode($update, TRUE);
$chatId = $updateArray["message"]["chat"]["id"];
$message = $updateArray["message"]["text"];
// Fonction pour envoyer un message
function sendMessage($chatId, $message) {
global $website;
$url = $website . "/sendMessage?chat_id=" . $chatId . "&text=" . urlencode($message);
file_get_contents($url);
}
// Répondre en fonction du message reçu
if($message == "/start") {
sendMessage($chatId, "Bienvenue sur mon bot Telegram !");
} else {
sendMessage($chatId, "Vous avez dit : " . $message);
}
?>
Explication du code :
- Nous définissons le token de notre bot et l’URL de base pour les requêtes API.
- Nous recevons les mises à jour de Telegram en utilisant
file_get_contents("php://input")
, qui capture la requête POST envoyée par Telegram. - Le message de l’utilisateur est ensuite récupéré et traité. Si le message est
/start
, le bot envoie un message de bienvenue. Sinon, il répond avec le texte envoyé par l’utilisateur.
Étape 4 : Configurer le Webhook
Telegram envoie les mises à jour via des Webhooks, nous devons donc configurer un Webhook pour notre bot afin que Telegram puisse envoyer les messages à notre serveur.
Utilisez l’URL suivante pour définir votre Webhook :
https://api.telegram.org/botVOTRE_TOKEN_ICI/setWebhook?url=URL_DE_VOTRE_SERVEUR/bot.php
Remplacez VOTRE_TOKEN_ICI
par le token de votre bot et URL_DE_VOTRE_SERVEUR/bot.php
par l’URL complète de votre fichier bot.php
.
Si tout fonctionne bien, vous recevrez une réponse indiquant que le Webhook a été défini avec succès.
Étape 5 : Tester votre Bot
Maintenant que le Webhook est configuré et que votre script PHP est prêt, ouvrez Telegram et envoyez /start
à votre bot. Il devrait répondre avec le message « Bienvenue sur mon bot Telegram ! ». Essayez d’envoyer d’autres messages et voyez comment il réagit.
Vous avez maintenant créé un bot Telegram basique en PHP. Vous pouvez personnaliser et améliorer votre bot pour effectuer des tâches plus complexes, comme des requêtes API externes, des réponses conditionnelles, ou même intégrer des bases de données pour stocker des informations utilisateur.
N’oubliez pas de consulter la documentation officielle de l’API Telegram pour explorer toutes les fonctionnalités disponibles.