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
- 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
- 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;
- 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}`);
});
- Try access route and it will send notif to your telegram
Top comments (0)