Les bots Telegram sont une porte d’entrée magnifique vers l’automation : notifications push gratuites, alertes en temps réel, mini-applications intégrées au chat. Contrairement à Discord, Telegram propose une API HTTP simple qui fonctionne en quelques lignes de Python ou Node.js, sans authentification complexe. Hébergé sur un VPS, votre bot Telegram tourne 24/7 pour moins de 5 € par mois. Voici la méthode complète 2026 pour créer, coder et héberger un bot Telegram pas à pas.
À quoi sert un bot Telegram ?
Un bot Telegram est un compte utilisateur spécial géré par du code. Il peut recevoir des messages, en envoyer, réagir à des commandes, lancer des actions sur des serveurs distants et même proposer des interfaces interactives via des mini-apps web. Contrairement à Discord, Telegram met aussi en avant les notifications push gratuites et illimitées, ce qui rend ses bots très populaires pour l’alerting personnel.
Les cas d’usage les plus fréquents :
- Notifications personnelles : alertes prix Amazon, surveillance d’un site web, météo au lever
- Monitoring serveur : alertes CPU/RAM/disque depuis votre VPS vers votre téléphone
- Domotique : commander Home Assistant, Domoticz ou Jeedom depuis un chat
- Petits services communautaires : sondages, planning de raid jeu, FAQ automatisées
- Crypto-trading et alertes financières : pings sur seuils, signaux DeFi
Comment créer un bot Telegram avec BotFather ?
Telegram ne dispose pas d’un portail développeur web comme Discord. Toute la création et la configuration des bots passent par un bot officiel appelé BotFather, accessible directement dans Telegram.
- Dans l’app Telegram, recherchez @BotFather et lancez la conversation
- Tapez la commande
/newbot - BotFather vous demande un nom d’affichage (par exemple « Mon Bot Perso »)
- Puis un username unique finissant obligatoirement par
bot(par exemplemonPersoBot) - BotFather vous envoie le token HTTP API du bot, sous la forme
123456789:ABCdefGHIjklMNO_pqrSTUvwxYZ - Copiez ce token et stockez-le en sécurité (fichier
.env)
BotFather propose d’autres commandes utiles pour personnaliser votre bot :
/setdescription: description visible quand on ouvre la conversation/setabouttext: texte court affiché dans le profil/setuserpic: avatar du bot/setcommands: liste de commandes proposées dans l’autocomplétion/setprivacy: choisir si le bot voit tous les messages ou seulement ceux qui commencent par/
Webhooks ou long polling : quelle méthode choisir ?
Telegram propose deux méthodes pour que votre bot reçoive les messages. Le choix dépend de vos compétences et de votre infrastructure.
| Méthode | Principe | Avantages | Limites |
|---|---|---|---|
| Long polling | Votre code interroge l’API Telegram en continu | Très simple, aucune configuration HTTPS | Trafic constant, légèrement plus lent |
| Webhook | Telegram envoie les messages vers votre URL HTTPS | Plus rapide, instantané, économe en CPU | Requiert un VPS avec certificat SSL valide |
Pour un bot perso et un début tranquille, le long polling est largement suffisant. Pour un bot à fort trafic ou des notifications instantanées critiques, basculez sur webhook avec un certificat Let’s Encrypt sur votre VPS.
Comment coder son bot Telegram en Python ?
Python est le langage le plus utilisé pour les bots Telegram grâce à la librairie python-telegram-bot, simple et très bien documentée.
- Connectez-vous à votre VPS en SSH et vérifiez Python 3.11+ :
python3 --version - Installez pip et venv si manquants :
sudo apt install python3-pip python3-venv -y - Créez un dossier pour le bot :
mkdir mon-bot-tg && cd mon-bot-tg - Créez un environnement virtuel :
python3 -m venv venvpuissource venv/bin/activate - Installez la librairie :
pip install python-telegram-bot python-dotenv - Créez un fichier
.envavec :TELEGRAM_TOKEN=votre_token_ici - Créez un fichier
bot.pyavec le code minimal (voir ci-dessous)
Code minimal pour un bot qui répond « Bonjour ! » à la commande /start :
import os
from dotenv import load_dotenv
from telegram import Update
from telegram.ext import Application, CommandHandler, ContextTypes
load_dotenv()
async def start(update: Update, context: ContextTypes.DEFAULT_TYPE):
await update.message.reply_text("Bonjour ! Je suis ton bot Telegram.")
app = Application.builder().token(os.getenv("TELEGRAM_TOKEN")).build()
app.add_handler(CommandHandler("start", start))
app.run_polling()
Lancez le bot avec python3 bot.py. Ouvrez Telegram, recherchez votre bot par son username, lancez la conversation et tapez /start : il répond immédiatement.
Comment garder le bot Telegram en ligne 24/7 ?
Sur Linux, la méthode pro est de créer un service systemd. Cela permet à votre bot de démarrer automatiquement au boot du VPS et de redémarrer en cas de crash.
- Créez un fichier service :
sudo nano /etc/systemd/system/telegram-bot.service - Collez le contenu suivant en adaptant les chemins :
[Unit] Description=Bot Telegram 24/7 After=network.target [Service] Type=simple User=ubuntu WorkingDirectory=/home/ubuntu/mon-bot-tg ExecStart=/home/ubuntu/mon-bot-tg/venv/bin/python3 bot.py Restart=always RestartSec=10 [Install] WantedBy=multi-user.target
- Rechargez systemd :
sudo systemctl daemon-reload - Activez le service au boot :
sudo systemctl enable telegram-bot - Démarrez-le immédiatement :
sudo systemctl start telegram-bot - Vérifiez son statut :
sudo systemctl status telegram-bot
Quelques commandes systemd utiles au quotidien :
sudo journalctl -u telegram-bot -f: suivi des logs en temps réelsudo systemctl restart telegram-bot: redémarrer après modification du codesudo systemctl stop telegram-bot: arrêt temporairesudo systemctl disable telegram-bot: désactiver le lancement au boot
Avec Restart=always dans la configuration, votre bot redémarre automatiquement 10 secondes après n’importe quel crash. Combinaison parfaite pour un 24/7 fiable.
Sur quel VPS héberger son bot Telegram ?
Un bot Telegram simple consomme environ 50 à 100 Mo de RAM et très peu de CPU. Toute offre VPS basique convient.
| VPS | Prix / mois | RAM | OS | Particularité |
|---|---|---|---|---|
| Hostinger KVM 1 | ~ 4 € | 4 Go | Ubuntu 22.04 | Setup en 5 minutes, support FR |
| OVH VPS Starter | ~ 3,50 € | 2 Go | Ubuntu / Debian | Datacenter Roubaix / Gravelines |
| Contabo Cloud VPS S | ~ 5 € | 8 Go | Ubuntu / Debian | Meilleur rapport RAM / prix |
| Scaleway DEV1-S | ~ 6 € | 2 Go | Ubuntu | Datacenter Paris, facturé à l’heure |
Hostinger reste le choix le plus simple : Ubuntu pré-installé, console web intégrée si le SSH bug, support francophone. Pour les profils plus techniques, OVH ou Scaleway offrent plus de contrôle à prix équivalent.
Erreurs courantes et solutions
« Unauthorized » au premier lancement
Le token est invalide ou mal copié. Solution : retournez sur BotFather, tapez /mybots, sélectionnez votre bot, API Token, puis Revoke current token. Copiez le nouveau token et mettez-le dans .env sans aucun espace ni guillemet.
Mon bot ne répond pas dans les groupes
Telegram active par défaut le mode privacy : le bot ne voit que les messages commençant par / dans un groupe. Solution : envoyez à BotFather la commande /setprivacy, sélectionnez votre bot, puis Disable. Après avoir désactivé le mode privacy, retirez et réajoutez le bot dans le groupe pour appliquer le changement.
Le service systemd ne démarre pas
Vérifiez les logs avec sudo journalctl -u telegram-bot --no-pager. Causes fréquentes : chemin de Python virtuel mauvais (utilisez le chemin absolu /home/ubuntu/mon-bot-tg/venv/bin/python3), utilisateur incorrect dans le fichier service, ou dépendances Python manquantes (relancer pip install dans le venv).
Conflict: terminated by other getUpdates request
Vous avez deux instances de votre bot qui tournent simultanément, ou un webhook actif en parallèle du long polling. Solution : tuez tous les processus Python lancés manuellement avec pkill -f bot.py avant de redémarrer le service systemd. Si vous avez déjà configuré un webhook, supprimez-le avec curl https://api.telegram.org/botVOTRE_TOKEN/deleteWebhook.
Mon bot est lent ou met du temps à répondre
Le long polling impose une légère latence (1 à 3 secondes). Pour des réponses instantanées, passez en webhook : votre bot doit être derrière une URL HTTPS avec certificat valide. Utilisez Caddy ou Nginx + Let’s Encrypt sur votre VPS pour gérer le SSL en quelques commandes.
📱 Pour aller plus loin avec votre VPS et vos bots :

