DEV Community

ilhamsabir
ilhamsabir

Posted on

Send Message BOT Telegram NodeJs

Send Message BOT Telegram NodeJs

Intruduction

Create telegram bot to send message from NODEJS Apps.

Create BOT Telegram

  • Goto BotFather
  • Open it from mobile device or web.telegram.org
  • type
 \newbot 
Enter fullscreen mode Exit fullscreen mode
  • Follow instruction
  • When completed youll get API Token, copy it to somewhere saved.

Test BOT

  • Open Postman/Insomnia or anything like that.
  • Create GET request sample.
 # HTTP request format # https://api.telegram.org/bot<token>/METHOD_NAME # our first method /getMe https://api.telegram.org/bot123456:ABC-DEF1234ghIkl-zyx57W2v1u123ew11/getMe 
Enter fullscreen mode Exit fullscreen mode
  • Now you can see your user data

Building NodeJS

  • Init nodejs app
 # configure as needed npm init; # install dependencies npm i express axios body-parser --save; # create main file touch index.js; 
Enter fullscreen mode Exit fullscreen mode
  • Create index.js
 // Dependencies const express = require('express'); const app = express(); const axios = require('axios'); const bodyParser = require('body-parser'); const port = 80; const url = 'https://api.telegram.org/bot'; const apiToken = '{api-token-given-by-BotFather}'; // Configurations app.use(bodyParser.json()); // Endpoints app.post('/', (req, res) => { // console.log(req.body); const chatId = req.body.message.chat.id; const sentMessage = req.body.message.text; // Regex for hello if (sentMessage.match(/hello/gi)) { axios.post(`${url}${apiToken}/sendMessage`, { chat_id: chatId, text: 'hello back 👋' }) .then((response) => { res.status(200).send(response); }).catch((error) => { res.send(error); }); } else { // if no hello present, just respond with 200 res.status(200).send({}); } }); // Listening app.listen(port, () => { console.log(`Listening on port ${port}`); }); 
Enter fullscreen mode Exit fullscreen mode
  • Try access route and it will send notif to your telegram

Reference

Top comments (0)