examples: Express webhook (#287)
Feature: A webhook integration with an express app. References: * Feature request: https://github.com/yagop/node-telegram-bot-api/issues/282 * PR: https://github.com/yagop/node-telegram-bot-api/pull/287 * Requested-by: @kamikazechaser * PR-by: @kamikazechaserexperimental
parent
a44eb7f1ee
commit
9c60068122
@ -0,0 +1,39 @@ |
||||
/** |
||||
* This example demonstrates setting up a webook, and receiving |
||||
* updates in your express app |
||||
*/ |
||||
|
||||
const TOKEN = process.env.TELEGRAM_TOKEN || 'YOUR_TELEGRAM_BOT_TOKEN'; |
||||
const url = 'https://<PUBLIC-URL>'; |
||||
const port = process.env.PORT; |
||||
|
||||
const TelegramBot = require('..'); |
||||
const express = require('express'); |
||||
const bodyParser = require('body-parser'); |
||||
|
||||
// No need to pass any parameters as we will handle the updates with Express
|
||||
const bot = new TelegramBot(TOKEN); |
||||
|
||||
// This informs the Telegram servers of the new webhook.
|
||||
bot.setWebHook(`${url}/bot${TOKEN}`); |
||||
|
||||
const app = express(); |
||||
|
||||
// parse the updates to JSON
|
||||
app.use(bodyParser.json()); |
||||
|
||||
// We are receiving updates at the route below!
|
||||
app.post(`/bot${TOKEN}`, (req, res) => { |
||||
bot.processUpdate(req.body); |
||||
res.sendStatus(200); |
||||
}); |
||||
|
||||
// Start Express Server
|
||||
app.listen(port, () => { |
||||
console.log(`Express server is listening on ${port}`); |
||||
}); |
||||
|
||||
// Just to ping!
|
||||
bot.on('message', msg => { |
||||
bot.sendMessage(msg.chat.id, 'I am alive!'); |
||||
}); |
||||
Loading…
Reference in new issue