UNPKG

vvlad1973-telegram-framework

Version:
179 lines (141 loc) 3.67 kB
# Telegram Bot API implementation Current version: *7.9.5* This package partially implements interaction with Telegram as a bot. Supported version of Telegram Bot API - 5.6 ## Description This package provides: - data exchange with Telegram in webhook mode - work in asynchronous mode - control of the load on the Telegram Bot API - prioritization of method calls of Telegram Bot API depending on the type of call - control of size of the send queue - preprocessing of received data ## Installation ```sh npm install vvlad1973-telegram-framework ``` ## Usage ```javascript import TelegramBot from 'vvlad1973-telegram-framework'; /** * Express or any other HTTP/HTTPS service can be used to process * webhook requests */ import express from 'express'; import bodyParser from 'body-parser'; let chatId = 90844863, text = 'Test message', token = '2039667923:AAHwlugV92qBNXrn_XrTGaQjFPuCJAtUnfs', webhookUrl = 'https://some.url.for.webhook/', response; /** * Creating an instance of TelegramBot */ const bot = new TelegramBot(token); /** * Creating instance of HTTP-server and starting listening */ const app = express(); app.use(bodyParser.json()); app.listen(port); /** * Subscription on POST-queries to HTTP-server */ app.post(`/${token}/`, function (request, response) { response.sendStatus(200); // Sending response on POST-query ... bot.processUpdate(request.body); // ... and start processing received data }); /** * Subscription on incoming updates from Telegram */ bot.on('*', function (userId, chatId, senderData, properties, contents) { console.log(`[userId=${userId}] Received update:`); console.log(`\t chat=[${JSON.stringify(chatId, 0, '\t')}]`); console.log(`\t senderData=[${JSON.stringify(senderData, 0, '\t')}]`); console.log(`\t properties=[${JSON.stringify(properties, 0, '\t')}]`); console.log(`\t contents=[${JSON.stringify(contents, 0, '\t')}]`); /** * Sending response message */ bot.sendMessage(chatId, 'OK') .then(response => { console.log(response); }) .catch(error => { console.error(error); }); }); /** * Getting info about bot from Telegram */ response = await bot.getMe(); console.log(response); /** * Setting webhook */ response = await bot.setWebhook(webhookUrl); console.log(response); /** * Getting webhook info from Telegram */ response = await bot.getWebhookInfo(); console.log(response); /** * Sending a message to Telegram chat */ response = await bot.sendMessage(chatId, text); console.log(response); ``` ## Implemented methods ### Bot control methods - getMe - getMyCommands - setMyCommands - deleteMyCommands ### Webhook control methods - getWebhookInfo - setWebhook - deleteWebhook ### Sending data methods - sendMessage - sendPhoto - sendVideo - sendVideoNote - sendAudio - sendVoice - sendDocument - sendAnimation - forwardMessage - copyMessage - answerCallbackQuery - sendChatAction - sendSticker - sendDice - sendPoll - sendMediaGroup - sendContact ### Modifying messages - editMessageText - editMessageCaption - editMessageReplyMarkup - editMessageMedia - stopPoll ### Control messages in chat - deleteMessage - pinChatMessage - unpinChatMessage - unpinAllChatMessages ### Chat manageement - getChat - getChatMember - getChatMemberCount - getChatAdministrators - banChatMember - unbanChatMember - restrictChatMember - promoteChatMember - approveChatJoinRequest - declineChatJoinRequest ### Getting info - getFile