
Security News
Attackers Are Hunting High-Impact Node.js Maintainers in a Coordinated Social Engineering Campaign
Multiple high-impact npm maintainers confirm they have been targeted in the same social engineering campaign that compromised Axios.
node-telegram-bot-api-temp
Advanced tools
 
Node.js module to interact with official Telegram Bot API. A bot token is needed, to obtain one, talk to @botfather and create a new bot.
npm install node-telegram-bot-api
var TelegramBot = require('node-telegram-bot-api');
var token = 'YOUR_TELEGRAM_BOT_TOKEN';
// Setup polling way
var bot = new TelegramBot(token, {polling: true});
// Matches /echo [whatever]
bot.onText(/\/echo (.+)/, function (msg, match) {
var fromId = msg.from.id;
var resp = match[1];
bot.sendMessage(fromId, resp);
});
// Any kind of message
bot.on('message', function (msg) {
var chatId = msg.chat.id;
// photo can be: a file path, a stream or a Telegram file_id
var photo = 'cats.png';
bot.sendPhoto(chatId, photo, {caption: 'Lovely kittens'});
});
There are some other examples on examples.
Every time TelegramBot receives a message, it emits a message. Depending on which message was received, emits an event from this ones: text, audio, document, photo, sticker, video, voice, contact, location, new_chat_participant, left_chat_participant, new_chat_title, new_chat_photo, delete_chat_photo, group_chat_created. Its much better to listen a specific event rather than a message in order to stay safe from the content.
TelegramBot emits inline_query when receives an Inline Query and chosen_inline_result when receives a ChosenInlineResult. Bot must be enabled on inline mode
Telegram only supports HTTPS connections to WebHooks, in order to set a WebHook a private key file and public certificate must be used. Since August 29, 2015 Telegram supports self signed ones, to generate them:
# Our private cert will be key.pem, keep in private this file.
openssl genrsa -out key.pem 2048
# Our public certificate will be crt.pem
openssl req -new -sha256 -key key.pem -out crt.pem
Once they are generated, the crt.pem can be provided to telegramBot.setWebHook(url, crt) as crt.
TelegramBot
Kind: global class
See: https://core.telegram.org/bots/api
PromisePromisePromisePromisePromisePromisePromisePromisePromisePromisePromisePromisePromisePromisePromisePromisePromiseBoth request method to obtain messages are implemented. To use standard polling, set polling: true
on options. Notice that webHook will need a SSL certificate.
Emits message when a message arrives.
| Param | Type | Default | Description |
|---|---|---|---|
| token | String | Bot Token | |
| [options] | Object | ||
| [options.polling] | Boolean | Object | false | Set true to enable polling or set options |
| [options.polling.timeout] | String | Number | 10 | Polling time in seconds |
| [options.polling.interval] | String | Number | 2000 | Interval between requests in miliseconds |
| [options.webHook] | Boolean | Object | false | Set true to enable WebHook or set options |
| [options.webHook.key] | String | PEM private key to webHook server. | |
| [options.webHook.cert] | String | PEM certificate (public) to webHook server. |
PromiseReturns basic information about the bot in form of a User object.
Kind: instance method of TelegramBot
See: https://core.telegram.org/bots/api#getme
Specify an url to receive incoming updates via an outgoing webHook.
Kind: instance method of TelegramBot
See: https://core.telegram.org/bots/api#setwebhook
| Param | Type | Description |
|---|---|---|
| url | String | URL where Telegram will make HTTP Post. Leave empty to delete webHook. |
| [cert] | String | stream.Stream | PEM certificate key (public). |
PromiseUse this method to receive incoming updates using long polling
Kind: instance method of TelegramBot
Returns: Promise - Updates
See: https://core.telegram.org/bots/api#getupdates
| Param | Type | Description |
|---|---|---|
| [timeout] | Number | String | Timeout in seconds for long polling. |
| [limit] | Number | String | Limits the number of updates to be retrieved. |
| [offset] | Number | String | Identifier of the first update to be returned. |
PromiseSend text message.
Kind: instance method of TelegramBot
See: https://core.telegram.org/bots/api#sendmessage
| Param | Type | Description |
|---|---|---|
| chatId | Number | String | Unique identifier for the message recipient |
| text | String | Text of the message to be sent |
| [options] | Object | Additional Telegram query options |
PromiseSend answers to an inline query.
Kind: instance method of TelegramBot
See: https://core.telegram.org/bots/api#answerinlinequery
| Param | Type | Description |
|---|---|---|
| inlineQueryId | String | Unique identifier of the query |
| results | Array.<InlineQueryResult> | An array of results for the inline query |
| [options] | Object | Additional Telegram query options |
PromiseForward messages of any kind.
Kind: instance method of TelegramBot
| Param | Type | Description |
|---|---|---|
| chatId | Number | String | Unique identifier for the message recipient |
| fromChatId | Number | String | Unique identifier for the chat where the original message was sent |
| messageId | Number | String | Unique message identifier |
PromiseSend photo
Kind: instance method of TelegramBot
See: https://core.telegram.org/bots/api#sendphoto
| Param | Type | Description |
|---|---|---|
| chatId | Number | String | Unique identifier for the message recipient |
| photo | String | stream.Stream | Buffer | A file path or a Stream. Can also be a file_id previously uploaded |
| [options] | Object | Additional Telegram query options |
PromiseSend audio
Kind: instance method of TelegramBot
See: https://core.telegram.org/bots/api#sendaudio
| Param | Type | Description |
|---|---|---|
| chatId | Number | String | Unique identifier for the message recipient |
| audio | String | stream.Stream | Buffer | A file path, Stream or Buffer. Can also be a file_id previously uploaded. |
| [options] | Object | Additional Telegram query options |
PromiseSend Document
Kind: instance method of TelegramBot
See: https://core.telegram.org/bots/api#sendDocument
| Param | Type | Description |
|---|---|---|
| chatId | Number | String | Unique identifier for the message recipient |
| doc | String | stream.Stream | Buffer | A file path, Stream or Buffer. Can also be a file_id previously uploaded. |
| [options] | Object | Additional Telegram query options |
PromiseSend .webp stickers.
Kind: instance method of TelegramBot
See: https://core.telegram.org/bots/api#sendsticker
| Param | Type | Description |
|---|---|---|
| chatId | Number | String | Unique identifier for the message recipient |
| sticker | String | stream.Stream | Buffer | A file path, Stream or Buffer. Can also be a file_id previously uploaded. Stickers are WebP format files. |
| [options] | Object | Additional Telegram query options |
PromiseUse this method to send video files, Telegram clients support mp4 videos (other formats may be sent as Document).
Kind: instance method of TelegramBot
See: https://core.telegram.org/bots/api#sendvideo
| Param | Type | Description |
|---|---|---|
| chatId | Number | String | Unique identifier for the message recipient |
| video | String | stream.Stream | Buffer | A file path or Stream. Can also be a file_id previously uploaded. |
| [options] | Object | Additional Telegram query options |
PromiseSend voice
Kind: instance method of TelegramBot
See: https://core.telegram.org/bots/api#sendvoice
| Param | Type | Description |
|---|---|---|
| chatId | Number | String | Unique identifier for the message recipient |
| voice | String | stream.Stream | Buffer | A file path, Stream or Buffer. Can also be a file_id previously uploaded. |
| [options] | Object | Additional Telegram query options |
PromiseSend chat action.
typing for text messages,
upload_photo for photos, record_video or upload_video for videos,
record_audio or upload_audio for audio files, upload_document for general files,
find_location for location data.
Kind: instance method of TelegramBot
See: https://core.telegram.org/bots/api#sendchataction
| Param | Type | Description |
|---|---|---|
| chatId | Number | String | Unique identifier for the message recipient |
| action | String | Type of action to broadcast. |
PromiseUse this method to get a list of profile pictures for a user. Returns a UserProfilePhotos object.
Kind: instance method of TelegramBot
See: https://core.telegram.org/bots/api#getuserprofilephotos
| Param | Type | Description |
|---|---|---|
| userId | Number | String | Unique identifier of the target user |
| [offset] | Number | Sequential number of the first photo to be returned. By default, all photos are returned. |
| [limit] | Number | Limits the number of photos to be retrieved. Values between 1—100 are accepted. Defaults to 100. |
PromiseSend location. Use this method to send point on the map.
Kind: instance method of TelegramBot
See: https://core.telegram.org/bots/api#sendlocation
| Param | Type | Description |
|---|---|---|
| chatId | Number | String | Unique identifier for the message recipient |
| latitude | Float | Latitude of location |
| longitude | Float | Longitude of location |
| [options] | Object | Additional Telegram query options |
PromiseGet file. Use this method to get basic info about a file and prepare it for downloading. Attention: link will be valid for 1 hour.
Kind: instance method of TelegramBot
See: https://core.telegram.org/bots/api#getfile
| Param | Type | Description |
|---|---|---|
| fileId | String | File identifier to get info about |
PromiseGet link for file. Use this method to get link for file for subsequent use. Attention: link will be valid for 1 hour.
This method is a sugar extension of the (getFile)[#getfilefileid] method, which returns just path to file on remote server (you will have to manually build full uri after that).
Kind: instance method of TelegramBot
Returns: Promise - promise Promise which will have fileURI in resolve callback
See: https://core.telegram.org/bots/api#getfile
| Param | Type | Description |
|---|---|---|
| fileId | String | File identifier to get info about |
PromiseDownloads file in the specified folder. This is just a sugar for (getFile)[#getfilefiled] method
Kind: instance method of TelegramBot
Returns: Promise - promise Promise, which will have filePath of downloaded file in resolve callback
| Param | Type | Description |
|---|---|---|
| fileId | String | File identifier to get info about |
| downloadDir | String | Absolute path to the folder in which file will be saved |
Register a RegExp to test against an incomming text message.
Kind: instance method of TelegramBot
| Param | Type | Description |
|---|---|---|
| regexp | RegExp | RegExp to be executed with exec. |
| callback | function | Callback will be called with 2 parameters, the msg and the result of executing regexp.exec on message text. |
Register a reply to wait for a message response.
Kind: instance method of TelegramBot
| Param | Type | Description |
|---|---|---|
| chatId | Number | String | The chat id where the message cames from. |
| messageId | Number | String | The message id to be replied. |
| callback | function | Callback will be called with the reply message. |
FAQs
Telegram Bot API
We found that node-telegram-bot-api-temp demonstrated a not healthy version release cadence and project activity because the last version was released a year ago. It has 1 open source maintainer collaborating on the project.
Did you know?

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Security News
Multiple high-impact npm maintainers confirm they have been targeted in the same social engineering campaign that compromised Axios.

Security News
Axios compromise traced to social engineering, showing how attacks on maintainers can bypass controls and expose the broader software supply chain.

Security News
Node.js has paused its bug bounty program after funding ended, removing payouts for vulnerability reports but keeping its security process unchanged.