NOUVEAU 📢 Offre de lancement limitée : jusqu'à 70 % de remise sur votre premier mois, pour tous les jeux !Voir les offres

Comment héberger un bot Telegram

Hébergement de bots DiscordUpdated Oct 29, 202610 min read

Pour héberger un bot Telegram 24h/24, faites-le tourner sur un serveur qui reste allumé plutôt que sur votre PC : créez le bot avec @BotFather, commandez une offre bot pour Telegram, collez le token sur la page Bot et lancez votre code. Sur une offre bot PlayNHost (dès 1,99 $US par mois), le panel vérifie le token auprès de Telegram, donne le token à votre code sous les noms que la plupart des bibliothèques utilisent, et propose un bot de départ prêt en Python ou Node.js si vous n’avez pas encore de code. Les étapes :

  1. Dans Telegram, ouvrez @BotFather, envoyez /newbot, choisissez un nom et un nom d’utilisateur qui finit par bot, et copiez le token qu’il vous donne.
  2. Sur la page hébergement de bot Telegram, cliquez sur Créer un serveur sur une offre. Dans la fenêtre de commande, répondez Pour quelle plateforme est votre bot ? par Telegram et choisissez le langage dans lequel votre bot est écrit.
  3. Ouvrez votre serveur dans le panel. Sur la carte Configurer votre bot de l’Aperçu, vérifiez Ce qui tourne et cliquez sur Continuer.
  4. À l’étape Connexion à Telegram, collez le token et cliquez sur Connecter. Vérifiez le nom du bot affiché et cliquez sur Oui, continuer.
  5. À l’étape Votre code, cliquez sur Créer un bot de départ, ou téléversez vos propres fichiers ou connectez Git.
  6. Cliquez sur Démarrer le bot et attendez Votre bot est en ligne sur Telegram. Envoyez-lui /start pour l’essayer.
  7. Sur la page Bot, volet Telegram, cliquez sur Ouvrir dans Telegram et envoyez /start à votre bot.

Chaque étape est expliquée plus bas.

1. Créer le bot avec @BotFather

  1. Dans Telegram, cherchez @BotFather et ouvrez la discussion.
  2. Envoyez /newbot. @BotFather demande un nom, que les gens voient dans les discussions, puis un nom d’utilisateur. Le nom d’utilisateur doit finir par bot, par exemple tetris_bot ou TetrisBot.
  3. @BotFather répond avec le token, une ligne comme 110201543:AAHdqTcvCH1vGWJxfSeofSAs0K5PALDsaw. Copiez-la. Quiconque la possède contrôle votre bot : ne la partagez pas et ne la mettez pas dans votre code.

Vous avez perdu le token ? Dans @BotFather, envoyez /mybots, choisissez votre bot, puis API Token.

2. Commander une offre pour Telegram

Toutes les offres font tourner un bot Telegram, à partir de STARTER (0.5 GB). Cliquez sur Créer un serveur sur l’offre que vous voulez. La fenêtre de commande demande Pour quelle plateforme est votre bot ? : choisissez Telegram. Vous choisissez ensuite le langage de votre bot : Node.js, Python, Java, C# (.NET), Bun, Deno, Go ou Rust. Vous ne savez pas quelle offre prendre ? python-telegram-bot vs aiogram sur PlayNHost donne la mémoire que nous avons mesurée pour chaque bibliothèque.

La fenêtre de commande de l’offre STARTER, étape 1 sur 2 : Pour quelle plateforme est votre bot ? avec Telegram sélectionné, et les huit tuiles de langage Node.js, Python, Java, C# (.NET), Bun, Deno, Go et Rust.

Vous avez déjà une offre bot configurée pour Discord ? Inutile d’en prendre une nouvelle. Sur la page Bot, volet Discord, repérez la carte À quoi sert ce bot ?, choisissez Telegram et confirmez avec Basculer. Rien n’est supprimé : un token Discord reste enregistré et revient si vous rebasculez. Si vous aviez déjà enregistré votre token sous Environnement en tant que TELEGRAM_BOT_TOKEN, il devient le token Telegram, sans rien à recoller.

3. Coller le token

Ouvrez votre serveur dans le panel. La carte Configurer votre bot de l’Aperçu vous guide en trois étapes : Ce qui tourne, Connexion à Telegram et Votre code.

  1. Ce qui tourne indique le langage de votre serveur, par exemple Ce bot fait tourner Python Bot. Cliquez sur Continuer, ou sur Changer ce qui tourne si ce n’est pas le bon.
  2. Connexion à Telegram : collez le token sous Collez le token de votre bot et cliquez sur Connecter. Le panel affiche Vérification auprès de Telegram..., puis le nom et le @nom d’utilisateur de votre bot avec Est-ce votre bot?. Cliquez sur Oui, continuer.

Vous pouvez aussi le coller sur la page Bot, volet Telegram, sous Token. Un token que Telegram refuse n’est pas enregistré : vous voyez Telegram n’a pas accepté ce token. Copiez-le à nouveau depuis @BotFather.

Le token est stocké chiffré et n’est plus jamais affiché dans le panel. Votre code le reçoit comme variable d’environnement sous cinq noms, si bien que la plupart des exemples tournent sans modification :

NomUtilisé par
TELEGRAM_BOT_TOKENNos bots de départ
BOT_TOKENLes exemples d’aiogram, de Telegraf et de node-telegram-bot-api
TOKENLe texte à remplacer dans les exemples de python-telegram-bot et de pyTelegramBotAPI
TELEGRAM_TOKENFréquent dans les tutoriels
TELOXIDE_TOKENteloxide (Rust), lu par Bot::from_env()

En Python, lisez-le avec os.environ["TELEGRAM_BOT_TOKEN"], en Node.js avec process.env.TELEGRAM_BOT_TOKEN.

4. Ajouter votre code

À l’étape Votre code, la carte propose ce qui convient à votre serveur :

  • Créer un bot de départ (serveurs Node.js et Python sans code pour l’instant) : un petit bot qui fonctionne et répond à /start. En Python, il écrit bot.py et requirements.txt avec python-telegram-bot 22 ; en Node.js, il écrit index.js et package.json avec grammY. Il définit le fichier d’entrée pour vous. Modifiez-le comme vous voulez, puis redémarrez.
  • Téléverser des fichiers : votre propre bot, avec requirements.txt ou package.json. Laissez de côté venv, .venv, __pycache__ et node_modules. Voir Comment téléverser le code de votre bot.
  • Connecter Git : votre code depuis un dépôt Git. Voir Comment déployer et mettre à jour votre bot depuis GitHub.

Votre propre code doit utiliser le long polling : run_polling() dans python-telegram-bot, start_polling() dans aiogram, bot.start() dans grammY ou launch() dans Telegraf. Les webhooks ont besoin d’une adresse HTTPS publique, que ces offres n’incluent pas encore. Pour déplacer un bot qui utilisait un webhook : Comment déplacer un bot Telegram vers PlayNHost.

5. Le démarrer

Cliquez sur Démarrer le bot dans la carte, ou appuyez sur Démarrer, et ouvrez la Console. En Python, Node.js et Bun, le serveur installe d’abord vos paquets ; le premier démarrage est plus long pendant le téléchargement. Ensuite, ils ne s’installent à nouveau que lorsque vous les modifiez (la liste des paquets, le fichier de paquets ou la version du runtime), lorsque node_modules est absent, ou une fois par jour. Sinon, vous voyez :

[PlayNHost] Packages are up to date. They install again when you change them, or after a day.
[PlayNHost] Starting your bot

Le bot de départ affiche ensuite Logged in as @your_bot. Le panel lit cette ligne : la pastille de l’Aperçu passe à En ligne sur Telegram. Dans votre propre code, affichez une ligne de ce genre quand le bot est prêt.

6. L’ouvrir dans Telegram

Sur la page Bot, volet Telegram, cliquez sur Ouvrir dans Telegram. Cela ouvre le lien t.me de votre bot. Envoyez /start : le bot de départ répond Hello avec votre prénom et Your bot is running on PlayNHost.

Le même volet affiche le @nom d’utilisateur et l’id de votre bot, et une carte Dans les groupes avec ce que Telegram lui permet de faire dans les discussions de groupe.

Le volet Telegram de la page Bot : token vérifié et Valide, le nom du bot et @playnhost_demo_bot, un lien Ouvrir dans Telegram, et la carte Dans les groupes avec Confidentialité activée.

S’il ne répond pas

Le panel lit la console et place au-dessus un bandeau avec la cause et un bouton pour la corriger :

  • Telegram n’a pas accepté le token de votre bot : le token a été révoqué dans @BotFather ou mal copié. Cliquez sur Remplacer le token.
  • Votre bot tourne aussi ailleurs : une autre copie utilise le même token, souvent sur votre PC ou chez votre ancien hébergeur.
  • Un webhook est défini sur votre bot : cliquez sur Retirer le webhook.

Certaines bibliothèques continuent de réessayer dans ces cas, si bien que le bot semble tourner alors que rien ne répond : le bandeau est le moyen de le savoir. Détails : Corriger l’erreur 409 Conflict d’un bot Telegram.

Questions fréquentes

Mon bot reste-t-il en ligne quand j’éteins mon PC ?

Oui. Il tourne sur le serveur, pas sur votre PC ni dans votre navigateur. S’il plante, il est relancé en moins d’une minute environ ; s’il replante dans la minute qui suit, il reste arrêté et la Console en donne la raison.

Puis-je utiliser un webhook plutôt que le polling ?

Pas encore. Un webhook a besoin d’une adresse HTTPS publique, que ces offres n’incluent pas encore. Le polling n’a besoin d’aucune adresse : votre bot demande à Telegram les nouveaux messages. Si un webhook est défini sur votre bot, le volet Telegram l’affiche avec Retirer le webhook, qui garde les messages en attente.

Puis-je faire tourner le même bot sur mon PC pendant mes tests ?

Pas avec le même token en même temps. Telegram n’autorise qu’une seule copie d’un bot à demander des messages : l’autre reçoit donc 409 Conflict. Arrêtez la copie sur votre PC, ou créez un deuxième bot dans @BotFather pour les tests.

Pourquoi mon bot ne voit-il pas les messages d’un groupe ?

Le mode confidentialité de Telegram est activé par défaut : dans les groupes, votre bot voit les commandes qui lui sont destinées et les réponses à ses messages, pas tous les messages, sauf s’il est administrateur du groupe. La carte Dans les groupes affiche Confidentialité activée ou Confidentialité désactivée. Pour lire tous les messages, envoyez /setprivacy à @BotFather, désactivez-le, puis retirez le bot du groupe et ajoutez-le à nouveau.

De quelle offre ai-je besoin ?

STARTER (0.5 GB) fait tourner un bot python-telegram-bot, aiogram, grammY ou Telegraf, avec de la marge pour votre propre code. Prenez 1 GB ou plus quand le bot garde des données en mémoire, traite des fichiers ou des images, ou fait tourner plusieurs bots dans un seul processus. Voir les offres sur hébergement de bot Telegram.

Votre bot est hébergé ailleurs ? Transférez-le chez nous

NOS DERNIERS ARTICLES