2016-01-01 22:00:41 +01:00
[](https://travis-ci.org/yagop/node-telegram-bot-api) [](https://ci.appveyor.com/project/yagop/node-telegram-bot-api/branch/master) [](https://coveralls.io/r/yagop/node-telegram-bot-api?branch=master) [](https://www.bithound.io/github/yagop/node-telegram-bot-api) [](https://telegram.me/node_telegram_bot_api) [](https://telegram.me/Yago_Perez)
2015-10-10 18:28:21 +02:00
Node.js module to interact with official [Telegram Bot API ](https://core.telegram.org/bots/api ). A bot token is needed, to obtain one, talk to [@botfather ](https://telegram.me/BotFather ) and create a new bot.
2015-06-29 22:37:38 +02:00
2015-06-29 22:19:19 +02:00
```sh
npm install node-telegram-bot-api
```
```js
var TelegramBot = require('node-telegram-bot-api');
var token = 'YOUR_TELEGRAM_BOT_TOKEN';
// Setup polling way
var bot = new TelegramBot(token, {polling: true});
2015-10-10 18:09:25 +02:00
2016-01-03 17:20:34 +01:00
// Matches /echo [whatever]
2015-10-10 18:09:25 +02:00
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) {
2015-06-29 22:19:19 +02:00
var chatId = msg.chat.id;
// photo can be: a file path, a stream or a Telegram file_id
2015-08-08 12:59:16 +02:00
var photo = 'cats.png';
bot.sendPhoto(chatId, photo, {caption: 'Lovely kittens'});
2015-06-29 22:19:19 +02:00
});
```
2015-06-29 22:37:38 +02:00
There are some other examples on [examples ](https://github.com/yagop/node-telegram-bot-api/tree/master/examples ).
2015-08-08 12:59:16 +02:00
### Events
2016-01-04 23:34:27 +01:00
Every time TelegramBot receives a message, it emits a `message` . Depending on which [message ](https://core.telegram.org/bots/api#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.
2016-03-18 01:35:28 +06:00
TelegramBot emits `inline_query` when receives an [Inline Query ](https://core.telegram.org/bots/api#inlinequery ) and `chosen_inline_result` when receives a [ChosenInlineResult ](https://core.telegram.org/bots/api#choseninlineresult ). Bot must be enabled on [inline mode ](https://core.telegram.org/bots/api#inline-mode )
2015-06-29 00:51:10 +02:00
* * *
2015-09-27 13:05:46 +02:00
### WebHooks
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:
```bash
# 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` .
2015-07-08 22:04:55 +02:00
2015-09-26 22:52:14 +02:00
## API Reference
< a name = "TelegramBot" > < / a >
2016-03-20 20:14:56 +01:00
2015-06-29 22:49:16 +02:00
## TelegramBot
2015-09-26 22:52:14 +02:00
TelegramBot
**Kind**: global class
**See**: https://core.telegram.org/bots/api
* [TelegramBot ](#TelegramBot )
2016-01-04 23:43:31 +01:00
* [new TelegramBot(token, [options])](#new_TelegramBot_new )
* [.getMe() ](#TelegramBot+getMe ) ⇒ < code > Promise</ code >
* [.setWebHook(url, [cert])](#TelegramBot +setWebHook)
* [.getUpdates([timeout], [limit], [offset])](#TelegramBot +getUpdates) ⇒ < code > Promise</ code >
* [.sendMessage(chatId, text, [options])](#TelegramBot +sendMessage) ⇒ < code > Promise</ code >
* [.answerInlineQuery(inlineQueryId, results, [options])](#TelegramBot +answerInlineQuery) ⇒ < code > Promise</ code >
* [.forwardMessage(chatId, fromChatId, messageId) ](#TelegramBot+forwardMessage ) ⇒ < code > Promise</ code >
* [.sendPhoto(chatId, photo, [options])](#TelegramBot +sendPhoto) ⇒ < code > Promise</ code >
* [.sendAudio(chatId, audio, [options])](#TelegramBot +sendAudio) ⇒ < code > Promise</ code >
* [.sendDocument(chatId, doc, [options])](#TelegramBot +sendDocument) ⇒ < code > Promise</ code >
* [.sendSticker(chatId, sticker, [options])](#TelegramBot +sendSticker) ⇒ < code > Promise</ code >
* [.sendVideo(chatId, video, [options])](#TelegramBot +sendVideo) ⇒ < code > Promise</ code >
* [.sendVoice(chatId, voice, [options])](#TelegramBot +sendVoice) ⇒ < code > Promise</ code >
* [.sendChatAction(chatId, action) ](#TelegramBot+sendChatAction ) ⇒ < code > Promise</ code >
* [.getUserProfilePhotos(userId, [offset], [limit])](#TelegramBot +getUserProfilePhotos) ⇒ < code > Promise</ code >
* [.sendLocation(chatId, latitude, longitude, [options])](#TelegramBot +sendLocation) ⇒ < code > Promise</ code >
* [.getFile(fileId) ](#TelegramBot+getFile ) ⇒ < code > Promise</ code >
* [.getFileLink(fileId) ](#TelegramBot+getFileLink ) ⇒ < code > Promise</ code >
* [.downloadFile(fileId, downloadDir) ](#TelegramBot+downloadFile ) ⇒ < code > Promise</ code >
* [.onText(regexp, callback) ](#TelegramBot+onText )
2016-01-30 18:19:39 +01:00
* [.onReplyToMessage(chatId, messageId, callback) ](#TelegramBot+onReplyToMessage )
2015-09-26 22:52:14 +02:00
< a name = "new_TelegramBot_new" > < / a >
2016-03-20 20:14:56 +01:00
2015-09-26 22:52:14 +02:00
### new TelegramBot(token, [options])
2015-06-29 22:49:16 +02:00
Both request method to obtain messages are implemented. To use standard polling, set `polling: true`
2015-09-27 13:05:46 +02:00
on `options` . Notice that [webHook ](https://core.telegram.org/bots/api#setwebhook ) will need a SSL certificate.
2015-08-08 12:59:16 +02:00
Emits `message` when a message arrives.
2015-06-29 22:49:16 +02:00
2015-06-29 00:51:10 +02:00
2015-09-26 22:52:14 +02:00
| Param | Type | Default | Description |
| --- | --- | --- | --- |
| token | < code > String< / code > | | Bot Token |
| [options] | < code > Object< / code > | | |
| [options.polling] | < code > Boolean</ code > & #124 ; < code > Object</ code > | < code > false</ code > | Set true to enable polling or set options |
2016-01-30 18:19:39 +01:00
| [options.polling.timeout] | < code > String</ code > & #124 ; < code > Number</ code > | < code > 10</ code > | Polling time in seconds |
2015-09-26 22:52:14 +02:00
| [options.polling.interval] | < code > String</ code > & #124 ; < code > Number</ code > | < code > 2000</ code > | Interval between requests in miliseconds |
| [options.webHook] | < code > Boolean</ code > & #124 ; < code > Object</ code > | < code > false</ code > | Set true to enable WebHook or set options |
2015-09-27 13:05:46 +02:00
| [options.webHook.key] | < code > String< / code > | | PEM private key to webHook server. |
| [options.webHook.cert] | < code > String< / code > | | PEM certificate (public) to webHook server. |
2015-06-29 00:51:10 +02:00
2015-09-26 22:52:14 +02:00
< a name = "TelegramBot+getMe" > < / a >
2016-03-20 20:14:56 +01:00
2015-09-26 22:52:14 +02:00
### telegramBot.getMe() ⇒ <code>Promise</code>
2015-06-29 00:51:10 +02:00
Returns basic information about the bot in form of a `User` object.
2015-09-26 22:52:14 +02:00
**Kind**: instance method of < code > [TelegramBot ](#TelegramBot )</ code >
**See**: https://core.telegram.org/bots/api#getme
< a name = "TelegramBot+setWebHook" > < / a >
2016-03-20 20:14:56 +01:00
2015-09-27 13:05:46 +02:00
### telegramBot.setWebHook(url, [cert])
2015-07-07 22:11:54 +02:00
Specify an url to receive incoming updates via an outgoing webHook.
2015-09-26 22:52:14 +02:00
**Kind**: instance method of < code > [TelegramBot ](#TelegramBot )</ code >
**See**: https://core.telegram.org/bots/api#setwebhook
2015-06-29 00:51:10 +02:00
2015-09-26 22:52:14 +02:00
| Param | Type | Description |
| --- | --- | --- |
| url | < code > String< / code > | URL where Telegram will make HTTP Post. Leave empty to delete webHook. |
2015-09-27 13:05:46 +02:00
| [cert] | < code > String</ code > & #124 ; < code > stream.Stream</ code > | PEM certificate key (public). |
2015-06-29 00:51:10 +02:00
2015-09-26 22:52:14 +02:00
< a name = "TelegramBot+getUpdates" > < / a >
2016-03-20 20:14:56 +01:00
2015-09-26 22:52:14 +02:00
### telegramBot.getUpdates([timeout], [limit], [offset]) ⇒ <code>Promise</code>
2015-06-29 00:51:10 +02:00
Use this method to receive incoming updates using long polling
2015-09-26 22:52:14 +02:00
**Kind**: instance method of < code > [TelegramBot ](#TelegramBot )</ code >
**Returns**: < code > Promise< / code > - Updates
**See**: https://core.telegram.org/bots/api#getupdates
2015-06-29 00:51:10 +02:00
2015-09-26 22:52:14 +02:00
| Param | Type | Description |
| --- | --- | --- |
| [timeout] | < code > Number</ code > & #124 ; < code > String</ code > | Timeout in seconds for long polling. |
| [limit] | < code > Number</ code > & #124 ; < code > String</ code > | Limits the number of updates to be retrieved. |
| [offset] | < code > Number</ code > & #124 ; < code > String</ code > | Identifier of the first update to be returned. |
2015-06-29 00:51:10 +02:00
2015-09-26 22:52:14 +02:00
< a name = "TelegramBot+sendMessage" > < / a >
2016-03-20 20:14:56 +01:00
2015-09-26 22:52:14 +02:00
### telegramBot.sendMessage(chatId, text, [options]) ⇒ <code>Promise</code>
2015-06-29 00:51:10 +02:00
Send text message.
2015-09-26 22:52:14 +02:00
**Kind**: instance method of < code > [TelegramBot ](#TelegramBot )</ code >
**See**: https://core.telegram.org/bots/api#sendmessage
2015-06-29 00:51:10 +02:00
2015-09-26 22:52:14 +02:00
| Param | Type | Description |
| --- | --- | --- |
| chatId | < code > Number</ code > & #124 ; < code > String</ code > | Unique identifier for the message recipient |
| text | < code > String< / code > | Text of the message to be sent |
| [options] | < code > Object< / code > | Additional Telegram query options |
2015-06-29 00:51:10 +02:00
2016-01-04 23:34:27 +01:00
< a name = "TelegramBot+answerInlineQuery" > < / a >
2016-03-20 20:14:56 +01:00
2016-01-04 23:34:27 +01:00
### telegramBot.answerInlineQuery(inlineQueryId, results, [options]) ⇒ <code>Promise</code>
Send answers to an inline query.
**Kind**: instance method of < code > [TelegramBot ](#TelegramBot )</ code >
**See**: https://core.telegram.org/bots/api#answerinlinequery
| Param | Type | Description |
| --- | --- | --- |
| inlineQueryId | < code > String< / code > | Unique identifier of the query |
| results | < code > Array.< InlineQueryResult> < / code > | An array of results for the inline query |
| [options] | < code > Object< / code > | Additional Telegram query options |
2015-09-26 22:52:14 +02:00
< a name = "TelegramBot+forwardMessage" > < / a >
2016-03-20 20:14:56 +01:00
2015-09-26 22:52:14 +02:00
### telegramBot.forwardMessage(chatId, fromChatId, messageId) ⇒ <code>Promise</code>
2015-06-29 00:51:10 +02:00
Forward messages of any kind.
2015-09-26 22:52:14 +02:00
**Kind**: instance method of < code > [TelegramBot ](#TelegramBot )</ code >
2015-06-29 00:51:10 +02:00
2015-09-26 22:52:14 +02:00
| Param | Type | Description |
| --- | --- | --- |
| chatId | < code > Number</ code > & #124 ; < code > String</ code > | Unique identifier for the message recipient |
| fromChatId | < code > Number</ code > & #124 ; < code > String</ code > | Unique identifier for the chat where the original message was sent |
| messageId | < code > Number</ code > & #124 ; < code > String</ code > | Unique message identifier |
2015-06-29 00:51:10 +02:00
2015-09-26 22:52:14 +02:00
< a name = "TelegramBot+sendPhoto" > < / a >
2016-03-20 20:14:56 +01:00
2015-09-26 22:52:14 +02:00
### telegramBot.sendPhoto(chatId, photo, [options]) ⇒ <code>Promise</code>
2015-06-29 00:51:10 +02:00
Send photo
2015-09-26 22:52:14 +02:00
**Kind**: instance method of < code > [TelegramBot ](#TelegramBot )</ code >
**See**: https://core.telegram.org/bots/api#sendphoto
2015-06-29 00:51:10 +02:00
2015-09-26 22:52:14 +02:00
| Param | Type | Description |
| --- | --- | --- |
| chatId | < code > Number</ code > & #124 ; < code > String</ code > | Unique identifier for the message recipient |
2016-01-03 17:20:34 +01:00
| photo | < code > String</ code > & #124 ; < code > stream.Stream</ code > & #124 ; < code > Buffer</ code > | A file path or a Stream. Can also be a `file_id` previously uploaded |
2015-09-26 22:52:14 +02:00
| [options] | < code > Object< / code > | Additional Telegram query options |
2015-06-29 00:51:10 +02:00
2015-09-26 22:52:14 +02:00
< a name = "TelegramBot+sendAudio" > < / a >
2016-03-20 20:14:56 +01:00
2015-09-26 22:52:14 +02:00
### telegramBot.sendAudio(chatId, audio, [options]) ⇒ <code>Promise</code>
2015-06-29 00:51:10 +02:00
Send audio
2015-09-26 22:52:14 +02:00
**Kind**: instance method of < code > [TelegramBot ](#TelegramBot )</ code >
**See**: https://core.telegram.org/bots/api#sendaudio
2015-06-29 00:51:10 +02:00
2015-09-26 22:52:14 +02:00
| Param | Type | Description |
| --- | --- | --- |
| chatId | < code > Number</ code > & #124 ; < code > String</ code > | Unique identifier for the message recipient |
2016-01-03 17:20:34 +01:00
| audio | < code > String</ code > & #124 ; < code > stream.Stream</ code > & #124 ; < code > Buffer</ code > | A file path, Stream or Buffer. Can also be a `file_id` previously uploaded. |
2015-09-26 22:52:14 +02:00
| [options] | < code > Object< / code > | Additional Telegram query options |
2015-07-07 22:11:54 +02:00
2015-09-26 22:52:14 +02:00
< a name = "TelegramBot+sendDocument" > < / a >
2016-03-20 20:14:56 +01:00
2016-01-03 17:20:34 +01:00
### telegramBot.sendDocument(chatId, doc, [options]) ⇒ <code>Promise</code>
2015-07-07 22:11:54 +02:00
Send Document
2015-09-26 22:52:14 +02:00
**Kind**: instance method of < code > [TelegramBot ](#TelegramBot )</ code >
**See**: https://core.telegram.org/bots/api#sendDocument
2015-07-06 01:40:54 +02:00
2015-09-26 22:52:14 +02:00
| Param | Type | Description |
| --- | --- | --- |
| chatId | < code > Number</ code > & #124 ; < code > String</ code > | Unique identifier for the message recipient |
2016-01-03 17:20:34 +01:00
| doc | < code > String</ code > & #124 ; < code > stream.Stream</ code > & #124 ; < code > Buffer</ code > | A file path, Stream or Buffer. Can also be a `file_id` previously uploaded. |
2015-09-26 22:52:14 +02:00
| [options] | < code > Object< / code > | Additional Telegram query options |
2015-07-08 22:04:55 +02:00
2015-09-26 22:52:14 +02:00
< a name = "TelegramBot+sendSticker" > < / a >
2016-03-20 20:14:56 +01:00
2016-01-03 17:20:34 +01:00
### telegramBot.sendSticker(chatId, sticker, [options]) ⇒ <code>Promise</code>
2015-07-08 22:04:55 +02:00
Send .webp stickers.
2015-09-26 22:52:14 +02:00
**Kind**: instance method of < code > [TelegramBot ](#TelegramBot )</ code >
**See**: https://core.telegram.org/bots/api#sendsticker
2015-07-08 22:04:55 +02:00
2015-09-26 22:52:14 +02:00
| Param | Type | Description |
| --- | --- | --- |
| chatId | < code > Number</ code > & #124 ; < code > String</ code > | Unique identifier for the message recipient |
2016-01-03 17:20:34 +01:00
| sticker | < code > String</ code > & #124 ; < code > stream.Stream</ code > & #124 ; < code > Buffer</ code > | A file path, Stream or Buffer. Can also be a `file_id` previously uploaded. Stickers are WebP format files. |
2015-09-26 22:52:14 +02:00
| [options] | < code > Object< / code > | Additional Telegram query options |
2015-07-08 22:36:28 +02:00
2015-09-26 22:52:14 +02:00
< a name = "TelegramBot+sendVideo" > < / a >
2016-03-20 20:14:56 +01:00
2016-01-03 17:20:34 +01:00
### telegramBot.sendVideo(chatId, video, [options]) ⇒ <code>Promise</code>
2015-08-08 12:59:16 +02:00
Use this method to send video files, Telegram clients support mp4 videos (other formats may be sent as Document).
2015-07-08 22:36:28 +02:00
2015-09-26 22:52:14 +02:00
**Kind**: instance method of < code > [TelegramBot ](#TelegramBot )</ code >
**See**: https://core.telegram.org/bots/api#sendvideo
2015-07-08 22:36:28 +02:00
2015-09-26 22:52:14 +02:00
| Param | Type | Description |
| --- | --- | --- |
| chatId | < code > Number</ code > & #124 ; < code > String</ code > | Unique identifier for the message recipient |
2016-01-04 23:34:27 +01:00
| video | < code > String</ code > & #124 ; < code > stream.Stream</ code > & #124 ; < code > Buffer</ code > | A file path or Stream. Can also be a `file_id` previously uploaded. |
2015-09-26 22:52:14 +02:00
| [options] | < code > Object< / code > | Additional Telegram query options |
2015-09-15 17:55:02 -03:00
2015-09-26 22:52:14 +02:00
< a name = "TelegramBot+sendVoice" > < / a >
2016-03-20 20:14:56 +01:00
2015-09-26 22:52:14 +02:00
### telegramBot.sendVoice(chatId, voice, [options]) ⇒ <code>Promise</code>
Send voice
2015-09-15 17:55:02 -03:00
2015-09-26 22:52:14 +02:00
**Kind**: instance method of < code > [TelegramBot ](#TelegramBot )</ code >
**See**: https://core.telegram.org/bots/api#sendvoice
2015-09-15 17:55:02 -03:00
2015-09-26 22:52:14 +02:00
| Param | Type | Description |
| --- | --- | --- |
| chatId | < code > Number</ code > & #124 ; < code > String</ code > | Unique identifier for the message recipient |
2016-01-03 17:20:34 +01:00
| voice | < code > String</ code > & #124 ; < code > stream.Stream</ code > & #124 ; < code > Buffer</ code > | A file path, Stream or Buffer. Can also be a `file_id` previously uploaded. |
2015-09-26 22:52:14 +02:00
| [options] | < code > Object< / code > | Additional Telegram query options |
2015-07-06 01:40:54 +02:00
2015-09-26 22:52:14 +02:00
< a name = "TelegramBot+sendChatAction" > < / a >
2016-03-20 20:14:56 +01:00
2015-09-26 22:52:14 +02:00
### telegramBot.sendChatAction(chatId, action) ⇒ <code>Promise</code>
2015-07-07 22:11:54 +02:00
Send 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.
2015-07-06 01:40:54 +02:00
2015-09-26 22:52:14 +02:00
**Kind**: instance method of < code > [TelegramBot ](#TelegramBot )</ code >
**See**: https://core.telegram.org/bots/api#sendchataction
2015-07-08 22:04:55 +02:00
2015-09-26 22:52:14 +02:00
| Param | Type | Description |
| --- | --- | --- |
| chatId | < code > Number</ code > & #124 ; < code > String</ code > | Unique identifier for the message recipient |
| action | < code > String< / code > | Type of action to broadcast. |
2015-07-09 23:15:05 +02:00
2015-09-26 22:52:14 +02:00
< a name = "TelegramBot+getUserProfilePhotos" > < / a >
2016-03-20 20:14:56 +01:00
2015-09-26 22:52:14 +02:00
### telegramBot.getUserProfilePhotos(userId, [offset], [limit]) ⇒ <code>Promise</code>
2015-07-09 23:15:05 +02:00
Use this method to get a list of profile pictures for a user.
Returns a [UserProfilePhotos ](https://core.telegram.org/bots/api#userprofilephotos ) object.
2015-09-26 22:52:14 +02:00
**Kind**: instance method of < code > [TelegramBot ](#TelegramBot )</ code >
**See**: https://core.telegram.org/bots/api#getuserprofilephotos
2015-07-09 23:15:05 +02:00
2015-09-26 22:52:14 +02:00
| Param | Type | Description |
| --- | --- | --- |
| userId | < code > Number</ code > & #124 ; < code > String</ code > | Unique identifier of the target user |
| [offset] | < code > Number< / code > | Sequential number of the first photo to be returned. By default, all photos are returned. |
| [limit] | < code > Number< / code > | Limits the number of photos to be retrieved. Values between 1—100 are accepted. Defaults to 100. |
2015-07-09 13:40:11 +02:00
2015-09-26 22:52:14 +02:00
< a name = "TelegramBot+sendLocation" > < / a >
2016-03-20 20:14:56 +01:00
2015-09-26 22:52:14 +02:00
### telegramBot.sendLocation(chatId, latitude, longitude, [options]) ⇒ <code>Promise</code>
2015-07-09 23:15:05 +02:00
Send location.
2015-07-09 13:40:11 +02:00
Use this method to send point on the map.
2015-09-26 22:52:14 +02:00
**Kind**: instance method of < code > [TelegramBot ](#TelegramBot )</ code >
**See**: https://core.telegram.org/bots/api#sendlocation
2015-07-09 13:40:11 +02:00
2015-09-26 22:52:14 +02:00
| Param | Type | Description |
| --- | --- | --- |
| chatId | < code > Number</ code > & #124 ; < code > String</ code > | Unique identifier for the message recipient |
| latitude | < code > Float< / code > | Latitude of location |
| longitude | < code > Float< / code > | Longitude of location |
| [options] | < code > Object< / code > | Additional Telegram query options |
2015-09-26 17:46:06 +03:00
2015-09-26 22:52:14 +02:00
< a name = "TelegramBot+getFile" > < / a >
2016-03-20 20:14:56 +01:00
2015-09-26 22:52:14 +02:00
### telegramBot.getFile(fileId) ⇒ <code>Promise</code>
2015-09-26 17:46:06 +03:00
Get file.
Use this method to get basic info about a file and prepare it for downloading.
Attention: link will be valid for 1 hour.
2015-09-26 22:52:14 +02:00
**Kind**: instance method of < code > [TelegramBot ](#TelegramBot )</ code >
**See**: https://core.telegram.org/bots/api#getfile
2015-09-26 17:46:06 +03:00
2015-09-26 22:52:14 +02:00
| Param | Type | Description |
| --- | --- | --- |
| fileId | < code > String< / code > | File identifier to get info about |
2015-09-26 18:45:20 +03:00
2015-09-26 22:52:14 +02:00
< a name = "TelegramBot+getFileLink" > < / a >
2016-03-20 20:14:56 +01:00
2015-09-26 22:52:14 +02:00
### telegramBot.getFileLink(fileId) ⇒ <code>Promise</code>
2015-09-26 18:45:20 +03:00
Get link for file.
Use this method to get link for file for subsequent use.
Attention: link will be valid for 1 hour.
2016-03-20 20:14:56 +01:00
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).
2015-09-26 18:45:20 +03:00
2015-09-26 22:52:14 +02:00
**Kind**: instance method of < code > [TelegramBot ](#TelegramBot )</ code >
**Returns**: < code > Promise</ code > - promise Promise which will have *fileURI* in resolve callback
**See**: https://core.telegram.org/bots/api#getfile
2015-09-26 18:45:20 +03:00
2015-09-26 22:52:14 +02:00
| Param | Type | Description |
| --- | --- | --- |
| fileId | < code > String< / code > | File identifier to get info about |
2015-09-26 19:52:17 +03:00
2015-09-26 22:52:14 +02:00
< a name = "TelegramBot+downloadFile" > < / a >
2016-03-20 20:14:56 +01:00
2015-09-26 22:52:14 +02:00
### telegramBot.downloadFile(fileId, downloadDir) ⇒ <code>Promise</code>
2015-09-26 19:52:17 +03:00
Downloads file in the specified folder.
This is just a sugar for (getFile)[#getfilefiled ] method
2015-09-26 22:52:14 +02:00
**Kind**: instance method of < code > [TelegramBot ](#TelegramBot )</ code >
**Returns**: < code > Promise</ code > - promise Promise, which will have *filePath* of downloaded file in resolve callback
2015-09-26 19:52:17 +03:00
2015-09-26 22:52:14 +02:00
| Param | Type | Description |
| --- | --- | --- |
| fileId | < code > String< / code > | File identifier to get info about |
| downloadDir | < code > String< / code > | Absolute path to the folder in which file will be saved |
2015-09-26 19:52:17 +03:00
2015-10-10 18:09:25 +02:00
< a name = "TelegramBot+onText" > < / a >
2016-03-20 20:14:56 +01:00
2015-10-10 18:09:25 +02:00
### telegramBot.onText(regexp, callback)
Register a RegExp to test against an incomming text message.
**Kind**: instance method of < code > [TelegramBot ](#TelegramBot )</ code >
| Param | Type | Description |
| --- | --- | --- |
| regexp | < code > RegExp</ code > | RegExp to be executed with `exec` . |
| callback | < code > function</ code > | Callback will be called with 2 parameters, the `msg` and the result of executing `regexp.exec` on message text. |
2016-01-30 18:06:04 +01:00
< a name = "TelegramBot+onReplyToMessage" > < / a >
2016-03-20 20:14:56 +01:00
2016-01-30 18:19:39 +01:00
### telegramBot.onReplyToMessage(chatId, messageId, callback)
2016-01-30 18:06:04 +01:00
Register a reply to wait for a message response.
**Kind**: instance method of < code > [TelegramBot ](#TelegramBot )</ code >
| Param | Type | Description |
| --- | --- | --- |
2016-01-30 18:19:39 +01:00
| chatId | < code > Number</ code > & #124 ; < code > String</ code > | The chat id where the message cames from. |
| messageId | < code > Number</ code > & #124 ; < code > String</ code > | The message id to be replied. |
2016-03-20 20:14:56 +01:00
| callback | < code > function< / code > | Callback will be called with the reply message. |
2016-01-30 18:06:04 +01:00
2015-09-26 22:52:14 +02:00
* * *