Comment créer un bot Telegram avec Node.js

Créer un bot Telegram avec Node.js est un processus relativement simple grâce à l’API Telegram Bot et à des bibliothèques comme node-telegram-bot-api. Voici un guide détaillé pour vous aider à créer et configurer votre propre bot Telegram en utilisant Node.js.

Étape 1 : Créer un bot Telegram

  1. Ouvrir Telegram : Utilisez l’application Telegram sur votre téléphone ou votre ordinateur.
  2. Chercher le BotFather : Tapez « BotFather » dans la barre de recherche. Le BotFather est un bot officiel de Telegram qui permet de créer et de gérer d’autres bots.
  3. Créer un nouveau bot :
    • Démarrez une conversation avec le BotFather et envoyez la commande /newbot.
    • Il vous demandera de donner un nom à votre bot (celui que verront les utilisateurs).
    • Ensuite, il vous demandera de choisir un nom d’utilisateur pour votre bot. Ce nom doit se terminer par « bot » (par exemple, my_awesome_bot).
  4. Obtenir le Token API : Après avoir créé le bot, le BotFather vous fournira un « token » d’API. Ce token est nécessaire pour interagir avec l’API Telegram.

Étape 2 : Installer Node.js et la bibliothèque Telegram

  1. Installer Node.js : Si vous n’avez pas encore installé Node.js, vous pouvez le télécharger et l’installer depuis le site officiel nodejs.org.
  2. Créer un projet Node.js : Dans votre terminal, créez un dossier pour votre bot et initialisez un projet Node.js :bashCopierModifiermkdir my-telegram-bot cd my-telegram-bot npm init -y
  3. Installer la bibliothèque node-telegram-bot-api : Cette bibliothèque facilite la communication avec l’API Telegram.bashCopierModifiernpm install node-telegram-bot-api

Étape 3 : Écrire le code du bot

Dans le dossier de votre projet, créez un fichier index.js (ou tout autre nom de votre choix).

Exemple de code pour un bot Telegram simple :

javascriptCopierModifier// Importer la bibliothèque node-telegram-bot-api
const TelegramBot = require('node-telegram-bot-api');

// Remplacez par le token que vous avez obtenu de BotFather
const token = 'VOTRE_TOKEN_API';

// Créer une instance du bot
const bot = new TelegramBot(token, { polling: true });

// Message de bienvenue
bot.onText(/\/start/, (msg) => {
  const chatId = msg.chat.id;
  const welcomeMessage = 'Bonjour! Je suis votre bot Telegram. Que puis-je faire pour vous ?';
  bot.sendMessage(chatId, welcomeMessage);
});

// Répondre aux messages avec "echo"
bot.on('message', (msg) => {
  const chatId = msg.chat.id;
  const text = msg.text;

  // Si le message n'est pas une commande, on répond avec le même texte (echo)
  if (text !== '/start') {
    bot.sendMessage(chatId, `Vous avez dit: ${text}`);
  }
});

Explication du code :

  • Importation de la bibliothèque : Nous importons node-telegram-bot-api et créons une instance du bot en lui passant le token que vous avez obtenu.
  • Polling : Le bot fonctionne en mode « polling », ce qui signifie qu’il attend de nouveaux messages (vous pouvez aussi utiliser des webhooks pour des cas plus avancés).
  • Commandes : Nous avons un gestionnaire d’événements pour la commande /start, qui envoie un message de bienvenue au démarrage.
  • Echo : Nous avons un autre gestionnaire pour répondre à tous les messages par un simple écho (répétition du message).

Étape 4 : Lancer le bot

Une fois que vous avez écrit le code, vous pouvez démarrer votre bot en exécutant la commande suivante dans votre terminal :

bashCopierModifiernode index.js

Étape 5 : Tester le bot

  • Ouvrez Telegram et cherchez votre bot (utilisez le nom d’utilisateur que vous avez choisi pour le bot).
  • Démarrez une conversation avec lui en envoyant la commande /start. Il devrait répondre avec un message de bienvenue.
  • Essayez d’envoyer n’importe quel message et le bot devrait répondre par un écho avec votre texte.

Étape 6 : Ajouter des fonctionnalités avancées

Maintenant que vous avez un bot de base, vous pouvez ajouter des fonctionnalités plus avancées. Par exemple :

a. Réponses personnalisées

Vous pouvez configurer le bot pour répondre à des commandes spécifiques ou à des messages spécifiques :

javascriptCopierModifierbot.onText(/\/hello/, (msg) => {
  const chatId = msg.chat.id;
  bot.sendMessage(chatId, 'Salut! Comment puis-je t’aider ?');
});

b. Envoyer des images ou des fichiers

Pour envoyer des fichiers, vous pouvez utiliser les méthodes comme sendPhoto() ou sendDocument() :

javascriptCopierModifierbot.onText(/\/image/, (msg) => {
  const chatId = msg.chat.id;
  bot.sendPhoto(chatId, 'https://example.com/image.jpg');
});

c. Clavier personnalisé

Vous pouvez créer un clavier personnalisé pour offrir des choix aux utilisateurs :

javascriptCopierModifierconst options = {
  reply_markup: {
    keyboard: [['Option 1', 'Option 2'], ['Option 3']],
    resize_keyboard: true,
    one_time_keyboard: true
  }
};

bot.onText(/\/menu/, (msg) => {
  const chatId = msg.chat.id;
  bot.sendMessage(chatId, 'Choisissez une option:', options);
});

Étape 7 : Déployer le bot

Une fois que votre bot est fonctionnel, vous pouvez le déployer sur un serveur pour le rendre accessible en permanence. Voici quelques options populaires pour le déploiement :

  • Heroku : Offre un déploiement facile pour des applications Node.js.
  • DigitalOcean / AWS : Vous pouvez déployer votre bot sur une machine virtuelle pour plus de contrôle.
  • Glitch / Replit : Pour des déploiements rapides et gratuits, ces services sont parfaits pour des projets de petite envergure.

Conclusion

Vous avez maintenant un bot Telegram fonctionnel avec Node.js. Ce bot peut être personnalisé pour répondre à diverses commandes, interagir avec des utilisateurs de manière avancée, et même intégrer des API tierces pour fournir des services supplémentaires. Les bibliothèques comme node-telegram-bot-api simplifient énormément le processus de création de bots sur Telegram.

carle
carle