From 8cff652e05da2b1bff532c13c50f791fb365532f Mon Sep 17 00:00:00 2001 From: Ismail Bin Mujeeb Date: Wed, 16 Apr 2025 14:24:56 +0530 Subject: [PATCH] feat: save prepared inline message v8.0 (#1248) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * Add support for savePreparedInlineMessage in bot api v8.0 #1243 * run `npm run doc` command --------- Co-authored-by: Daniel Pérez Fernández --- doc/api.md | 5126 ++++++++++++++++++++++++----------------------- src/telegram.js | 15 + 2 files changed, 2587 insertions(+), 2554 deletions(-) diff --git a/doc/api.md b/doc/api.md index 593478e..dbf08da 100644 --- a/doc/api.md +++ b/doc/api.md @@ -1,2554 +1,2572 @@ -# API Reference - -**Note:** If you are looking for available [events](usage.md#events) or usage of api, please refer [`usage.md`](usage.md). - - - -## TelegramBot -TelegramBot - -**Kind**: global class -**See**: https://core.telegram.org/bots/api - -* [TelegramBot](#TelegramBot) - * [new TelegramBot(token, [options])](#new_TelegramBot_new) - * _instance_ - * [.on(event, listener)](#TelegramBot+on) - * [.startPolling([options])](#TelegramBot+startPolling) ⇒ Promise - * ~~[.initPolling([options])](#TelegramBot+initPolling) ⇒ Promise~~ - * [.stopPolling([options])](#TelegramBot+stopPolling) ⇒ Promise - * [.getFileLink(fileId, [options])](#TelegramBot+getFileLink) ⇒ Promise - * [.getFileStream(fileId, [options])](#TelegramBot+getFileStream) ⇒ stream.Readable - * [.downloadFile(fileId, downloadDir, [options])](#TelegramBot+downloadFile) ⇒ Promise - * [.onText(regexpRexecuted, callback)](#TelegramBot+onText) - * [.removeTextListener(regexp)](#TelegramBot+removeTextListener) ⇒ Object - * [.clearTextListeners()](#TelegramBot+clearTextListeners) - * [.onReplyToMessage(chatId, messageId, callback)](#TelegramBot+onReplyToMessage) ⇒ Number - * [.removeReplyListener(replyListenerId)](#TelegramBot+removeReplyListener) ⇒ Object - * [.clearReplyListeners()](#TelegramBot+clearReplyListeners) ⇒ Array - * [.isPolling()](#TelegramBot+isPolling) ⇒ Boolean - * [.openWebHook()](#TelegramBot+openWebHook) ⇒ Promise - * [.closeWebHook()](#TelegramBot+closeWebHook) ⇒ Promise - * [.hasOpenWebHook()](#TelegramBot+hasOpenWebHook) ⇒ Boolean - * [.processUpdate(update)](#TelegramBot+processUpdate) - * [.getUpdates([options])](#TelegramBot+getUpdates) ⇒ Promise - * [.setWebHook(url, [options], [fileOptions])](#TelegramBot+setWebHook) ⇒ Promise - * [.deleteWebHook([options])](#TelegramBot+deleteWebHook) ⇒ Promise - * [.getWebHookInfo([options])](#TelegramBot+getWebHookInfo) ⇒ Promise - * [.getMe([options])](#TelegramBot+getMe) ⇒ Promise - * [.logOut([options])](#TelegramBot+logOut) ⇒ Promise - * [.close([options])](#TelegramBot+close) ⇒ Promise - * [.sendMessage(chatId, text, [options])](#TelegramBot+sendMessage) ⇒ Promise - * [.forwardMessage(chatId, fromChatId, messageId, [options])](#TelegramBot+forwardMessage) ⇒ Promise - * [.forwardMessages(chatId, fromChatId, messageIds, [options])](#TelegramBot+forwardMessages) ⇒ Promise - * [.copyMessage(chatId, fromChatId, messageId, [options])](#TelegramBot+copyMessage) ⇒ Promise - * [.copyMessages(chatId, fromChatId, messageIds, [options])](#TelegramBot+copyMessages) ⇒ Promise - * [.sendPhoto(chatId, photo, [options], [fileOptions])](#TelegramBot+sendPhoto) ⇒ Promise - * [.sendAudio(chatId, audio, [options], [fileOptions])](#TelegramBot+sendAudio) ⇒ Promise - * [.sendDocument(chatId, doc, [options], [fileOptions])](#TelegramBot+sendDocument) ⇒ Promise - * [.sendVideo(chatId, video, [options], [fileOptions])](#TelegramBot+sendVideo) ⇒ Promise - * [.sendAnimation(chatId, animation, [options], [fileOptions])](#TelegramBot+sendAnimation) ⇒ Promise - * [.sendVoice(chatId, voice, [options], [fileOptions])](#TelegramBot+sendVoice) ⇒ Promise - * [.sendVideoNote(chatId, videoNote, [options], [fileOptions])](#TelegramBot+sendVideoNote) ⇒ Promise - * [.sendPaidMedia(chatId, starCount, media, [options])](#TelegramBot+sendPaidMedia) ⇒ Promise - * [.sendMediaGroup(chatId, media, [options])](#TelegramBot+sendMediaGroup) ⇒ Promise - * [.sendLocation(chatId, latitude, longitude, [options])](#TelegramBot+sendLocation) ⇒ Promise - * [.editMessageLiveLocation(latitude, longitude, [options])](#TelegramBot+editMessageLiveLocation) ⇒ Promise - * [.stopMessageLiveLocation([options])](#TelegramBot+stopMessageLiveLocation) ⇒ Promise - * [.sendVenue(chatId, latitude, longitude, title, address, [options])](#TelegramBot+sendVenue) ⇒ Promise - * [.sendContact(chatId, phoneNumber, firstName, [options])](#TelegramBot+sendContact) ⇒ Promise - * [.sendPoll(chatId, question, pollOptions, [options])](#TelegramBot+sendPoll) ⇒ Promise - * [.sendDice(chatId, [options])](#TelegramBot+sendDice) ⇒ Promise - * [.sendChatAction(chatId, action, [options])](#TelegramBot+sendChatAction) ⇒ Promise - * [.setMessageReaction(chatId, messageId, [options])](#TelegramBot+setMessageReaction) ⇒ [ 'Promise' ].<Boolean> - * [.getUserProfilePhotos(userId, [options])](#TelegramBot+getUserProfilePhotos) ⇒ Promise - * [.getFile(fileId, [options])](#TelegramBot+getFile) ⇒ Promise - * [.banChatMember(chatId, userId, [options])](#TelegramBot+banChatMember) ⇒ Promise - * [.unbanChatMember(chatId, userId, [options])](#TelegramBot+unbanChatMember) ⇒ Promise - * [.restrictChatMember(chatId, userId, [options])](#TelegramBot+restrictChatMember) ⇒ Promise - * [.promoteChatMember(chatId, userId, [options])](#TelegramBot+promoteChatMember) ⇒ Promise - * [.setChatAdministratorCustomTitle(chatId, userId, customTitle, [options])](#TelegramBot+setChatAdministratorCustomTitle) ⇒ Promise - * [.banChatSenderChat(chatId, senderChatId, [options])](#TelegramBot+banChatSenderChat) ⇒ Promise - * [.unbanChatSenderChat(chatId, senderChatId, [options])](#TelegramBot+unbanChatSenderChat) ⇒ Promise - * [.setChatPermissions(chatId, chatPermissions, [options])](#TelegramBot+setChatPermissions) ⇒ Promise - * [.exportChatInviteLink(chatId, [options])](#TelegramBot+exportChatInviteLink) ⇒ Promise - * [.createChatInviteLink(chatId, [options])](#TelegramBot+createChatInviteLink) ⇒ Object - * [.editChatInviteLink(chatId, inviteLink, [options])](#TelegramBot+editChatInviteLink) ⇒ Promise - * [.createChatSubscriptionInviteLink(chatId, subscriptionPeriod, subscriptionPrice, [options])](#TelegramBot+createChatSubscriptionInviteLink) ⇒ Promise - * [.editChatSubscriptionInviteLink(chatId, inviteLink, [options])](#TelegramBot+editChatSubscriptionInviteLink) ⇒ Promise - * [.revokeChatInviteLink(chatId, inviteLink, [options])](#TelegramBot+revokeChatInviteLink) ⇒ Promise - * [.approveChatJoinRequest(chatId, userId, [options])](#TelegramBot+approveChatJoinRequest) ⇒ Promise - * [.declineChatJoinRequest(chatId, userId, [options])](#TelegramBot+declineChatJoinRequest) ⇒ Promise - * [.setChatPhoto(chatId, photo, [options], [fileOptions])](#TelegramBot+setChatPhoto) ⇒ Promise - * [.deleteChatPhoto(chatId, [options])](#TelegramBot+deleteChatPhoto) ⇒ Promise - * [.setChatTitle(chatId, title, [options])](#TelegramBot+setChatTitle) ⇒ Promise - * [.setChatDescription(chatId, description, [options])](#TelegramBot+setChatDescription) ⇒ Promise - * [.pinChatMessage(chatId, messageId, [options])](#TelegramBot+pinChatMessage) ⇒ Promise - * [.unpinChatMessage(chatId, [options])](#TelegramBot+unpinChatMessage) ⇒ Promise - * [.unpinAllChatMessages(chatId, [options])](#TelegramBot+unpinAllChatMessages) ⇒ Promise - * [.leaveChat(chatId, [options])](#TelegramBot+leaveChat) ⇒ Promise - * [.getChat(chatId, [options])](#TelegramBot+getChat) ⇒ Promise - * [.getChatAdministrators(chatId, [options])](#TelegramBot+getChatAdministrators) ⇒ Promise - * [.getChatMemberCount(chatId, [options])](#TelegramBot+getChatMemberCount) ⇒ Promise - * [.getChatMember(chatId, userId, [options])](#TelegramBot+getChatMember) ⇒ Promise - * [.setChatStickerSet(chatId, stickerSetName, [options])](#TelegramBot+setChatStickerSet) ⇒ Promise - * [.deleteChatStickerSet(chatId, [options])](#TelegramBot+deleteChatStickerSet) ⇒ Promise - * [.getForumTopicIconStickers(chatId, [options])](#TelegramBot+getForumTopicIconStickers) ⇒ Promise - * [.createForumTopic(chatId, name, [options])](#TelegramBot+createForumTopic) - * [.editForumTopic(chatId, messageThreadId, [options])](#TelegramBot+editForumTopic) ⇒ Promise - * [.closeForumTopic(chatId, messageThreadId, [options])](#TelegramBot+closeForumTopic) ⇒ Promise - * [.reopenForumTopic(chatId, messageThreadId, [options])](#TelegramBot+reopenForumTopic) ⇒ Promise - * [.deleteForumTopic(chatId, messageThreadId, [options])](#TelegramBot+deleteForumTopic) ⇒ Promise - * [.unpinAllForumTopicMessages(chatId, messageThreadId, [options])](#TelegramBot+unpinAllForumTopicMessages) ⇒ Promise - * [.editGeneralForumTopic(chatId, name, [options])](#TelegramBot+editGeneralForumTopic) ⇒ Promise - * [.closeGeneralForumTopic(chatId, [options])](#TelegramBot+closeGeneralForumTopic) ⇒ Promise - * [.reopenGeneralForumTopic(chatId, [options])](#TelegramBot+reopenGeneralForumTopic) ⇒ Promise - * [.hideGeneralForumTopic(chatId, [options])](#TelegramBot+hideGeneralForumTopic) ⇒ Promise - * [.unhideGeneralForumTopic(chatId, [options])](#TelegramBot+unhideGeneralForumTopic) ⇒ Promise - * [.unpinAllGeneralForumTopicMessages(chatId, [options])](#TelegramBot+unpinAllGeneralForumTopicMessages) ⇒ Promise - * [.answerCallbackQuery(callbackQueryId, [options])](#TelegramBot+answerCallbackQuery) ⇒ Promise - * [.getUserChatBoosts(chatId, userId, [options])](#TelegramBot+getUserChatBoosts) ⇒ Promise - * [.getBusinessConnection(businessConnectionId, [options])](#TelegramBot+getBusinessConnection) ⇒ Promise - * [.setMyCommands(commands, [options])](#TelegramBot+setMyCommands) ⇒ Promise - * [.deleteMyCommands([options])](#TelegramBot+deleteMyCommands) ⇒ Promise - * [.getMyCommands([options])](#TelegramBot+getMyCommands) ⇒ Promise - * [.setMyName([options])](#TelegramBot+setMyName) ⇒ Promise - * [.getMyName([options])](#TelegramBot+getMyName) ⇒ Promise - * [.setMyDescription([options])](#TelegramBot+setMyDescription) ⇒ Promise - * [.getMyDescription([options])](#TelegramBot+getMyDescription) ⇒ Promise - * [.setMyShortDescription([options])](#TelegramBot+setMyShortDescription) ⇒ Promise - * [.getMyShortDescription([options])](#TelegramBot+getMyShortDescription) ⇒ Promise - * [.setChatMenuButton([options])](#TelegramBot+setChatMenuButton) ⇒ Promise - * [.getChatMenuButton([options])](#TelegramBot+getChatMenuButton) ⇒ Promise - * [.setMyDefaultAdministratorRights([options])](#TelegramBot+setMyDefaultAdministratorRights) ⇒ Promise - * [.getMyDefaultAdministratorRights([options])](#TelegramBot+getMyDefaultAdministratorRights) ⇒ Promise - * [.editMessageText(text, [options])](#TelegramBot+editMessageText) ⇒ Promise - * [.editMessageCaption(caption, [options])](#TelegramBot+editMessageCaption) ⇒ Promise - * [.editMessageMedia(media, [options])](#TelegramBot+editMessageMedia) ⇒ Promise - * [.editMessageReplyMarkup(replyMarkup, [options])](#TelegramBot+editMessageReplyMarkup) ⇒ Promise - * [.stopPoll(chatId, pollId, [options])](#TelegramBot+stopPoll) ⇒ Promise - * [.sendSticker(chatId, sticker, [options], [fileOptions])](#TelegramBot+sendSticker) ⇒ Promise - * [.getStickerSet(name, [options])](#TelegramBot+getStickerSet) ⇒ Promise - * [.getCustomEmojiStickers(custom_emoji_ids, [options])](#TelegramBot+getCustomEmojiStickers) ⇒ Promise - * [.uploadStickerFile(userId, sticker, stickerFormat, [options], [fileOptions])](#TelegramBot+uploadStickerFile) ⇒ Promise - * [.createNewStickerSet(userId, name, title, pngSticker, emojis, [options], [fileOptions])](#TelegramBot+createNewStickerSet) ⇒ Promise - * [.addStickerToSet(userId, name, sticker, emojis, stickerType, [options], [fileOptions])](#TelegramBot+addStickerToSet) ⇒ Promise - * [.setStickerPositionInSet(sticker, position, [options])](#TelegramBot+setStickerPositionInSet) ⇒ Promise - * [.deleteStickerFromSet(sticker, [options])](#TelegramBot+deleteStickerFromSet) ⇒ Promise - * [.replaceStickerInSet(user_id, name, sticker, [options])](#TelegramBot+replaceStickerInSet) ⇒ Promise - * [.setStickerEmojiList(sticker, emojiList, [options])](#TelegramBot+setStickerEmojiList) ⇒ Promise - * [.setStickerKeywords(sticker, [options])](#TelegramBot+setStickerKeywords) ⇒ Promise - * [.setStickerMaskPosition(sticker, [options])](#TelegramBot+setStickerMaskPosition) ⇒ Promise - * [.setStickerSetTitle(name, title, [options])](#TelegramBot+setStickerSetTitle) ⇒ Promise - * [.setStickerSetThumbnail(userId, name, thumbnail, [options], [fileOptions])](#TelegramBot+setStickerSetThumbnail) ⇒ Promise - * [.setCustomEmojiStickerSetThumbnail(name, [options])](#TelegramBot+setCustomEmojiStickerSetThumbnail) ⇒ Promise - * [.deleteStickerSet(name, [options])](#TelegramBot+deleteStickerSet) ⇒ Promise - * [.answerInlineQuery(inlineQueryId, results, [options])](#TelegramBot+answerInlineQuery) ⇒ Promise - * [.answerWebAppQuery(webAppQueryId, result, [options])](#TelegramBot+answerWebAppQuery) ⇒ Promise - * [.sendInvoice(chatId, title, description, payload, providerToken, currency, prices, [options])](#TelegramBot+sendInvoice) ⇒ Promise - * [.createInvoiceLink(title, description, payload, providerToken, currency, prices, [options])](#TelegramBot+createInvoiceLink) ⇒ Promise - * [.answerShippingQuery(shippingQueryId, ok, [options])](#TelegramBot+answerShippingQuery) ⇒ Promise - * [.answerPreCheckoutQuery(preCheckoutQueryId, ok, [options])](#TelegramBot+answerPreCheckoutQuery) ⇒ Promise - * [.getStarTransactions([options])](#TelegramBot+getStarTransactions) ⇒ Promise - * [.refundStarPayment(userId, telegramPaymentChargeId, [options])](#TelegramBot+refundStarPayment) ⇒ Promise - * [.sendGame(chatId, gameShortName, [options])](#TelegramBot+sendGame) ⇒ Promise - * [.setGameScore(userId, score, [options])](#TelegramBot+setGameScore) ⇒ Promise - * [.getGameHighScores(userId, [options])](#TelegramBot+getGameHighScores) ⇒ Promise - * [.deleteMessage(chatId, messageId, [options])](#TelegramBot+deleteMessage) ⇒ Promise - * [.deleteMessages(chatId, messageIds, [options])](#TelegramBot+deleteMessages) ⇒ [ 'Promise' ].<Boolean> - * _static_ - * [.errors](#TelegramBot.errors) : Object - * [.messageTypes](#TelegramBot.messageTypes) : [ 'Array' ].<String> - - - -### new TelegramBot(token, [options]) -Both request method to obtain messages are implemented. To use standard polling, set `polling: true` -on `options`. Notice that [webHook](https://core.telegram.org/bots/api#setwebhook) 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. If a WebHook has been set, it will be deleted automatically. | -| [options.polling.timeout] | String \| Number | 10 | *Deprecated. Use `options.polling.params` instead*. Timeout in seconds for long polling. | -| [options.testEnvironment] | Boolean | false | Set true to work with test enviroment. When working with the test environment, you may use HTTP links without TLS to test your Web App. | -| [options.polling.interval] | String \| Number | 300 | Interval between requests in miliseconds | -| [options.polling.autoStart] | Boolean | true | Start polling immediately | -| [options.polling.params] | Object | | Parameters to be used in polling API requests. See https://core.telegram.org/bots/api#getupdates for more information. | -| [options.polling.params.timeout] | Number | 10 | Timeout in seconds for long polling. | -| [options.webHook] | Boolean \| Object | false | Set true to enable WebHook or set options | -| [options.webHook.host] | String | "0.0.0.0" | Host to bind to | -| [options.webHook.port] | Number | 8443 | Port to bind to | -| [options.webHook.key] | String | | Path to file with PEM private key for webHook server. The file is read **synchronously**! | -| [options.webHook.cert] | String | | Path to file with PEM certificate (public) for webHook server. The file is read **synchronously**! | -| [options.webHook.pfx] | String | | Path to file with PFX private key and certificate chain for webHook server. The file is read **synchronously**! | -| [options.webHook.autoOpen] | Boolean | true | Open webHook immediately | -| [options.webHook.https] | Object | | Options to be passed to `https.createServer()`. Note that `options.webHook.key`, `options.webHook.cert` and `options.webHook.pfx`, if provided, will be used to override `key`, `cert` and `pfx` in this object, respectively. See https://nodejs.org/api/https.html#https_https_createserver_options_requestlistener for more information. | -| [options.webHook.healthEndpoint] | String | "/healthz" | An endpoint for health checks that always responds with 200 OK | -| [options.onlyFirstMatch] | Boolean | false | Set to true to stop after first match. Otherwise, all regexps are executed | -| [options.request] | Object | | Options which will be added for all requests to telegram api. See https://github.com/request/request#requestoptions-callback for more information. | -| [options.baseApiUrl] | String | "https://api.telegram.org" | API Base URl; useful for proxying and testing | -| [options.filepath] | Boolean | true | Allow passing file-paths as arguments when sending files, such as photos using `TelegramBot#sendPhoto()`. See [usage information][usage-sending-files-performance] for more information on this option and its consequences. | -| [options.badRejection] | Boolean | false | Set to `true` **if and only if** the Node.js version you're using terminates the process on unhandled rejections. This option is only for *forward-compatibility purposes*. | - - - -### telegramBot.on(event, listener) -Add listener for the specified [event](https://github.com/yagop/node-telegram-bot-api/blob/master/doc/usage.md#events). -This is the usual `emitter.on()` method. - -**Kind**: instance method of [TelegramBot](#TelegramBot) -**See** - -- [Available events](https://github.com/yagop/node-telegram-bot-api/blob/master/doc/usage.md#events) -- https://nodejs.org/api/events.html#events_emitter_on_eventname_listener - - -| Param | Type | -| --- | --- | -| event | String | -| listener | function | - - - -### telegramBot.startPolling([options]) ⇒ Promise -Start polling. -Rejects returned promise if a WebHook is being used by this instance. - -**Kind**: instance method of [TelegramBot](#TelegramBot) - -| Param | Type | Default | Description | -| --- | --- | --- | --- | -| [options] | Object | | | -| [options.restart] | Boolean | true | Consecutive calls to this method causes polling to be restarted | - - - -### ~~telegramBot.initPolling([options]) ⇒ Promise~~ -***Deprecated*** - -Alias of `TelegramBot#startPolling()`. This is **deprecated**. - -**Kind**: instance method of [TelegramBot](#TelegramBot) - -| Param | Type | -| --- | --- | -| [options] | Object | - - - -### telegramBot.stopPolling([options]) ⇒ Promise -Stops polling after the last polling request resolves. -Multiple invocations do nothing if polling is already stopped. -Returning the promise of the last polling request is **deprecated**. - -**Kind**: instance method of [TelegramBot](#TelegramBot) - -| Param | Type | Description | -| --- | --- | --- | -| [options] | Object | Options | -| [options.cancel] | Boolean | Cancel current request | -| [options.reason] | String | Reason for stopping polling | - - - -### telegramBot.getFileLink(fileId, [options]) ⇒ Promise -Get 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](#TelegramBot) -**Returns**: 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 | -| [options] | Object | Additional Telegram query options | - - - -### telegramBot.getFileStream(fileId, [options]) ⇒ stream.Readable -Return a readable stream for file. - -`fileStream.path` is the specified file ID i.e. `fileId`. -`fileStream` emits event `info` passing a single argument i.e. -`info` with the interface `{ uri }` where `uri` is the URI of the -file on Telegram servers. - -This method is a sugar extension of the [getFileLink](#TelegramBot+getFileLink) method, -which returns the full URI to the file on remote server. - -**Kind**: instance method of [TelegramBot](#TelegramBot) -**Returns**: stream.Readable - fileStream - -| Param | Type | Description | -| --- | --- | --- | -| fileId | String | File identifier to get info about | -| [options] | Object | Additional Telegram query options | - - - -### telegramBot.downloadFile(fileId, downloadDir, [options]) ⇒ Promise -Downloads file in the specified folder. - -This method is a sugar extension of the [getFileStream](#TelegramBot+getFileStream) method, -which returns a readable file stream. - -**Kind**: instance method of [TelegramBot](#TelegramBot) -**Returns**: 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 | -| [options] | Object | Additional Telegram query options | - - - -### telegramBot.onText(regexpRexecuted, callback) -Register a RegExp to test against an incomming text message. - -**Kind**: instance method of [TelegramBot](#TelegramBot) - -| Param | Type | Description | -| --- | --- | --- | -| regexpRexecuted | RegExp | with `exec`. | -| callback | function | Callback will be called with 2 parameters, the `msg` and the result of executing `regexp.exec` on message text. | - - - -### telegramBot.removeTextListener(regexp) ⇒ Object -Remove a listener registered with `onText()`. - -**Kind**: instance method of [TelegramBot](#TelegramBot) -**Returns**: Object - deletedListener The removed reply listener if - found. This object has `regexp` and `callback` - properties. If not found, returns `null`. - -| Param | Type | Description | -| --- | --- | --- | -| regexp | RegExp | RegExp used previously in `onText()` | - - - -### telegramBot.clearTextListeners() -Remove all listeners registered with `onText()`. - -**Kind**: instance method of [TelegramBot](#TelegramBot) - - -### telegramBot.onReplyToMessage(chatId, messageId, callback) ⇒ Number -Register a reply to wait for a message response. - -**Kind**: instance method of [TelegramBot](#TelegramBot) -**Returns**: Number - id The ID of the inserted reply listener. - -| 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. | - - - -### telegramBot.removeReplyListener(replyListenerId) ⇒ Object -Removes a reply that has been prev. registered for a message response. - -**Kind**: instance method of [TelegramBot](#TelegramBot) -**Returns**: Object - deletedListener The removed reply listener if - found. This object has `id`, `chatId`, `messageId` and `callback` - properties. If not found, returns `null`. - -| Param | Type | Description | -| --- | --- | --- | -| replyListenerId | Number | The ID of the reply listener. | - - - -### telegramBot.clearReplyListeners() ⇒ Array -Removes all replies that have been prev. registered for a message response. - -**Kind**: instance method of [TelegramBot](#TelegramBot) -**Returns**: Array - deletedListeners An array of removed listeners. - - -### telegramBot.isPolling() ⇒ Boolean -Return true if polling. Otherwise, false. - -**Kind**: instance method of [TelegramBot](#TelegramBot) - - -### telegramBot.openWebHook() ⇒ Promise -Open webhook. -Multiple invocations do nothing if webhook is already open. -Rejects returned promise if Polling is being used by this instance. - -**Kind**: instance method of [TelegramBot](#TelegramBot) - - -### telegramBot.closeWebHook() ⇒ Promise -Close webhook after closing all current connections. -Multiple invocations do nothing if webhook is already closed. - -**Kind**: instance method of [TelegramBot](#TelegramBot) -**Returns**: Promise - Promise - - -### telegramBot.hasOpenWebHook() ⇒ Boolean -Return true if using webhook and it is open i.e. accepts connections. -Otherwise, false. - -**Kind**: instance method of [TelegramBot](#TelegramBot) - - -### telegramBot.processUpdate(update) -Process an update; emitting the proper events and executing regexp -callbacks. This method is useful should you be using a different -way to fetch updates, other than those provided by TelegramBot. - -**Kind**: instance method of [TelegramBot](#TelegramBot) -**See**: https://core.telegram.org/bots/api#update - -| Param | Type | -| --- | --- | -| update | Object | - - - -### telegramBot.getUpdates([options]) ⇒ Promise -Use this method to receive incoming updates using long polling. -This method has an [older, compatible signature][getUpdates-v0.25.0] -that is being deprecated. - -**Kind**: instance method of [TelegramBot](#TelegramBot) -**See**: https://core.telegram.org/bots/api#getupdates - -| Param | Type | Description | -| --- | --- | --- | -| [options] | Object | Additional Telegram query options | - - - -### telegramBot.setWebHook(url, [options], [fileOptions]) ⇒ Promise -Specify an url to receive incoming updates via an outgoing webHook. -This method has an [older, compatible signature][setWebHook-v0.25.0] -that is being deprecated. - -**Kind**: instance method of [TelegramBot](#TelegramBot) -**See** - -- https://core.telegram.org/bots/api#setwebhook -- https://github.com/yagop/node-telegram-bot-api/blob/master/doc/usage.md#sending-files - - -| Param | Type | Description | -| --- | --- | --- | -| url | String | URL where Telegram will make HTTP Post. Leave empty to delete webHook. | -| [options] | Object | Additional Telegram query options | -| [options.certificate] | String \| stream.Stream | PEM certificate key (public). | -| [options.secret_token] | String | Optional secret token to be sent in a header `X-Telegram-Bot-Api-Secret-Token` in every webhook request. | -| [fileOptions] | Object | Optional file related meta-data | - - - -### telegramBot.deleteWebHook([options]) ⇒ Promise -Use this method to remove webhook integration if you decide to -switch back to getUpdates. Returns True on success. - -**Kind**: instance method of [TelegramBot](#TelegramBot) -**See**: https://core.telegram.org/bots/api#deletewebhook - -| Param | Type | Description | -| --- | --- | --- | -| [options] | Object | Additional Telegram query options | - - - -### telegramBot.getWebHookInfo([options]) ⇒ Promise -Use this method to get current webhook status. -On success, returns a [WebhookInfo](https://core.telegram.org/bots/api#webhookinfo) object. -If the bot is using getUpdates, will return an object with the -url field empty. - -**Kind**: instance method of [TelegramBot](#TelegramBot) -**See**: https://core.telegram.org/bots/api#getwebhookinfo - -| Param | Type | Description | -| --- | --- | --- | -| [options] | Object | Additional Telegram query options | - - - -### telegramBot.getMe([options]) ⇒ Promise -A simple method for testing your bot's authentication token. Requires no parameters. - -**Kind**: instance method of [TelegramBot](#TelegramBot) -**Returns**: Promise - basic information about the bot in form of a [User](https://core.telegram.org/bots/api#user) object. -**See**: https://core.telegram.org/bots/api#getme - -| Param | Type | Description | -| --- | --- | --- | -| [options] | Object | Additional Telegram query options | - - - -### telegramBot.logOut([options]) ⇒ Promise -This method log out your bot from the cloud Bot API server before launching the bot locally. -You must log out the bot before running it locally, otherwise there is no guarantee that the bot will receive updates. -After a successful call, you will not be able to log in again using the same token for 10 minutes. - -**Kind**: instance method of [TelegramBot](#TelegramBot) -**Returns**: Promise - True on success -**See**: https://core.telegram.org/bots/api#logout - -| Param | Type | Description | -| --- | --- | --- | -| [options] | Object | Additional Telegram query options | - - - -### telegramBot.close([options]) ⇒ Promise -This method close the bot instance before moving it from one local server to another. -This method will return error 429 in the first 10 minutes after the bot is launched. - -**Kind**: instance method of [TelegramBot](#TelegramBot) -**Returns**: Promise - True on success -**See**: https://core.telegram.org/bots/api#close - -| Param | Type | Description | -| --- | --- | --- | -| [options] | Object | Additional Telegram query options | - - - -### telegramBot.sendMessage(chatId, text, [options]) ⇒ Promise -Send text message. - -**Kind**: instance method of [TelegramBot](#TelegramBot) -**Returns**: Promise - On success, the sent [Message](https://core.telegram.org/bots/api#message) object is returned -**See**: https://core.telegram.org/bots/api#sendmessage - -| Param | Type | Description | -| --- | --- | --- | -| chatId | Number \| String | Unique identifier for the target chat or username of the target channel (in the format `@channelusername`) | -| text | String | Text of the message to be sent | -| [options] | Object | Additional Telegram query options | - - - -### telegramBot.forwardMessage(chatId, fromChatId, messageId, [options]) ⇒ Promise -Forward messages of any kind. - -**Kind**: instance method of [TelegramBot](#TelegramBot) -**See**: https://core.telegram.org/bots/api#forwardmessage - -| Param | Type | Description | -| --- | --- | --- | -| chatId | Number \| String | Unique identifier for the target chat or username of the target channel (in the format `@channelusername`) or username of the target channel (in the format `@channelusername`) | -| fromChatId | Number \| String | Unique identifier for the chat where the original message was sent (or channel username in the format `@channelusername`) | -| messageId | Number \| String | Unique message identifier in the chat specified in fromChatId | -| [options] | Object | Additional Telegram query options | - - - -### telegramBot.forwardMessages(chatId, fromChatId, messageIds, [options]) ⇒ Promise -Use this method to forward multiple messages of any kind. -If some of the specified messages can't be found or forwarded, they are skipped. - -**Kind**: instance method of [TelegramBot](#TelegramBot) -**Returns**: Promise - An array of MessageId of the sent messages on success -**See**: https://core.telegram.org/bots/api#forwardmessages - -| Param | Type | Description | -| --- | --- | --- | -| chatId | Number \| String | Unique identifier for the target chat or username of the target channel (in the format `@channelusername`) or username of the target channel (in the format `@channelusername`) | -| fromChatId | Number \| String | Unique identifier for the chat where the original message was sent (or channel username in the format `@channelusername`) | -| messageIds | [ 'Array' ].<(Number\|String)> | Identifiers of 1-100 messages in the chat from_chat_id to forward. The identifiers must be specified in a strictly increasing order. | -| [options] | Object | Additional Telegram query options | - - - -### telegramBot.copyMessage(chatId, fromChatId, messageId, [options]) ⇒ Promise -Copy messages of any kind. **Service messages and invoice messages can't be copied.** -The method is analogous to the method forwardMessages, but the copied message doesn't -have a link to the original message. -Returns the MessageId of the sent message on success. - -**Kind**: instance method of [TelegramBot](#TelegramBot) -**Returns**: Promise - The [MessageId](https://core.telegram.org/bots/api#messageid) of the sent message on success -**See**: https://core.telegram.org/bots/api#copymessage - -| Param | Type | Description | -| --- | --- | --- | -| chatId | Number \| String | Unique identifier for the target chat or username of the target channel (in the format `@channelusername`) | -| fromChatId | Number \| String | Unique identifier for the chat where the original message was sent | -| messageId | Number \| String | Unique message identifier | -| [options] | Object | Additional Telegram query options | - - - -### telegramBot.copyMessages(chatId, fromChatId, messageIds, [options]) ⇒ Promise -Use this method to copy messages of any kind. If some of the specified messages can't be found or copied, they are skipped. -Service messages, giveaway messages, giveaway winners messages, and invoice messages can't be copied. -Returns the MessageId of the sent message on success. - -**Kind**: instance method of [TelegramBot](#TelegramBot) -**Returns**: Promise - An array of MessageId of the sent messages -**See**: https://core.telegram.org/bots/api#copymessages - -| Param | Type | Description | -| --- | --- | --- | -| chatId | Number \| String | Unique identifier for the target chat | -| fromChatId | Number \| String | Unique identifier for the chat where the original message was sent | -| messageIds | Array | Identifiers of 1-100 messages in the chat from_chat_id to copy. The identifiers must be specified in a strictly increasing order. | -| [options] | Object | Additional Telegram query options | - - - -### telegramBot.sendPhoto(chatId, photo, [options], [fileOptions]) ⇒ Promise -Send photo - -**Kind**: instance method of [TelegramBot](#TelegramBot) -**Returns**: Promise - On success, the sent [Message](https://core.telegram.org/bots/api#message) object is returned -**See** - -- https://core.telegram.org/bots/api#sendphoto -- https://github.com/yagop/node-telegram-bot-api/blob/master/doc/usage.md#sending-files - - -| Param | Type | Description | -| --- | --- | --- | -| chatId | Number \| String | Unique identifier for the target chat or username of the target channel (in the format `@channelusername`) | -| 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 | -| [fileOptions] | Object | Optional file related meta-data | - - - -### telegramBot.sendAudio(chatId, audio, [options], [fileOptions]) ⇒ Promise -Send audio - -**Your audio must be in the .MP3 or .M4A format.** - -**Kind**: instance method of [TelegramBot](#TelegramBot) -**Returns**: Promise - On success, the sent [Message](https://core.telegram.org/bots/api#message) object is returned -**See** - -- https://core.telegram.org/bots/api#sendaudio -- https://github.com/yagop/node-telegram-bot-api/blob/master/doc/usage.md#sending-files - - -| Param | Type | Description | -| --- | --- | --- | -| chatId | Number \| String | Unique identifier for the target chat or username of the target channel (in the format `@channelusername`) | -| 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 | -| [fileOptions] | Object | Optional file related meta-data | - - - -### telegramBot.sendDocument(chatId, doc, [options], [fileOptions]) ⇒ Promise -Send Document - -**Kind**: instance method of [TelegramBot](#TelegramBot) -**Returns**: Promise - On success, the sent [Message](https://core.telegram.org/bots/api#message) object is returned -**See** - -- https://core.telegram.org/bots/api#sendDocument -- https://github.com/yagop/node-telegram-bot-api/blob/master/doc/usage.md#sending-files - - -| Param | Type | Description | -| --- | --- | --- | -| chatId | Number \| String | Unique identifier for the target chat or username of the target channel (in the format `@channelusername`) | -| 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 | -| [fileOptions] | Object | Optional file related meta-data | - - - -### telegramBot.sendVideo(chatId, video, [options], [fileOptions]) ⇒ Promise -Use this method to send video files, **Telegram clients support mp4 videos** (other formats may be sent as Document). - -**Kind**: instance method of [TelegramBot](#TelegramBot) -**Returns**: Promise - On success, the sent [Message](https://core.telegram.org/bots/api#message) object is returned -**See** - -- https://core.telegram.org/bots/api#sendvideo -- https://github.com/yagop/node-telegram-bot-api/blob/master/doc/usage.md#sending-files - - -| Param | Type | Description | -| --- | --- | --- | -| chatId | Number \| String | Unique identifier for the target chat or username of the target channel (in the format `@channelusername`) | -| video | String \| stream.Stream \| Buffer | A file path or Stream. Can also be a `file_id` previously uploaded. | -| [options] | Object | Additional Telegram query options | -| [fileOptions] | Object | Optional file related meta-data | - - - -### telegramBot.sendAnimation(chatId, animation, [options], [fileOptions]) ⇒ Promise -Use this method to send animation files (GIF or H.264/MPEG-4 AVC video without sound). - -**Kind**: instance method of [TelegramBot](#TelegramBot) -**Returns**: Promise - On success, the sent [Message](https://core.telegram.org/bots/api#message) object is returned -**See** - -- https://core.telegram.org/bots/api#sendanimation -- https://github.com/yagop/node-telegram-bot-api/blob/master/doc/usage.md#sending-files - - -| Param | Type | Description | -| --- | --- | --- | -| chatId | Number \| String | Unique identifier for the target chat or username of the target channel (in the format `@channelusername`) | -| animation | String \| stream.Stream \| Buffer | A file path, Stream or Buffer. Can also be a `file_id` previously uploaded. | -| [options] | Object | Additional Telegram query options | -| [fileOptions] | Object | Optional file related meta-data | - - - -### telegramBot.sendVoice(chatId, voice, [options], [fileOptions]) ⇒ Promise -Send voice - -**Your audio must be in an .OGG file encoded with OPUS**, or in .MP3 format, or in .M4A format (other formats may be sent as Audio or Document) - -**Kind**: instance method of [TelegramBot](#TelegramBot) -**Returns**: Promise - On success, the sent [Message](https://core.telegram.org/bots/api#message) object is returned -**See** - -- https://core.telegram.org/bots/api#sendvoice -- https://github.com/yagop/node-telegram-bot-api/blob/master/doc/usage.md#sending-files - - -| Param | Type | Description | -| --- | --- | --- | -| chatId | Number \| String | Unique identifier for the target chat or username of the target channel (in the format `@channelusername`) | -| 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 | -| [fileOptions] | Object | Optional file related meta-data | - - - -### telegramBot.sendVideoNote(chatId, videoNote, [options], [fileOptions]) ⇒ Promise -Use this method to send video messages -Telegram clients support **rounded square MPEG4 videos** of up to 1 minute long. - -**Kind**: instance method of [TelegramBot](#TelegramBot) -**Returns**: Promise - On success, the sent [Message](https://core.telegram.org/bots/api#message) object is returned -**Info**: The length parameter is actually optional. However, the API (at time of writing) requires you to always provide it until it is fixed. -**See** - -- https://core.telegram.org/bots/api#sendvideonote -- https://github.com/yagop/node-telegram-bot-api/blob/master/doc/usage.md#sending-files - - -| Param | Type | Description | -| --- | --- | --- | -| chatId | Number \| String | Unique identifier for the target chat or username of the target channel (in the format `@channelusername`) | -| videoNote | String \| stream.Stream \| Buffer | A file path or Stream. Can also be a `file_id` previously uploaded. | -| [options] | Object | Additional Telegram query options | -| [fileOptions] | Object | Optional file related meta-data | - - - -### telegramBot.sendPaidMedia(chatId, starCount, media, [options]) ⇒ Promise -Use this method to send paid media. - -**Kind**: instance method of [TelegramBot](#TelegramBot) -**Returns**: Promise - On success, the sent [Message](https://core.telegram.org/bots/api#message) object is returned -**See**: https://core.telegram.org/bots/api#sendpaidmedia - -| Param | Type | Description | -| --- | --- | --- | -| chatId | Number \| String | Unique identifier for the target chat or username of the target channel (in the format `@channelusername`) | -| starCount | Number | The number of Telegram Stars that must be paid to buy access to the media; 1-10000 | -| media | String \| stream.Stream \| Buffer | A file path or Stream. | -| [options] | Object | Additional Telegram query options | - - - -### telegramBot.sendMediaGroup(chatId, media, [options]) ⇒ Promise -Use this method to send a group of photos or videos as an album. - -**Documents and audio files can be only grouped in an album with messages of the same type** - -If you wish to [specify file options](https://github.com/yagop/node-telegram-bot-api/blob/master/doc/usage.md#sending-files), -add a `fileOptions` property to the target input in `media`. - -**Kind**: instance method of [TelegramBot](#TelegramBot) -**Returns**: Promise - On success, an array of the sent [Messages](https://core.telegram.org/bots/api#message) -is returned. -**See** - -- https://core.telegram.org/bots/api#sendmediagroup -- https://github.com/yagop/node-telegram-bot-api/blob/master/doc/usage.md#sending-files - - -| Param | Type | Description | -| --- | --- | --- | -| chatId | String | Unique identifier for the target chat or username of the target channel (in the format `@channelusername`) | -| media | Array | A JSON-serialized array describing photos and videos to be sent, must include 2–10 items | -| [options] | Object | Additional Telegram query options | - - - -### telegramBot.sendLocation(chatId, latitude, longitude, [options]) ⇒ Promise -Send location. -Use this method to send point on the map. - -**Kind**: instance method of [TelegramBot](#TelegramBot) -**Returns**: Promise - On success, the sent [Message](https://core.telegram.org/bots/api#message) object is returned -**See**: https://core.telegram.org/bots/api#sendlocation - -| Param | Type | Description | -| --- | --- | --- | -| chatId | Number \| String | Unique identifier for the target chat or username of the target channel (in the format `@channelusername`) | -| latitude | Float | Latitude of location | -| longitude | Float | Longitude of location | -| [options] | Object | Additional Telegram query options | - - - -### telegramBot.editMessageLiveLocation(latitude, longitude, [options]) ⇒ Promise -Use this method to edit live location messages sent by -the bot or via the bot (for inline bots). - - A location **can be edited until its live_period expires or editing is explicitly disabled by a call to [stopMessageLiveLocation](https://core.telegram.org/bots/api#stopmessagelivelocation)** - -Note that you must provide one of chat_id, message_id, or -inline_message_id in your request. - -**Kind**: instance method of [TelegramBot](#TelegramBot) -**Returns**: Promise - On success, if the edited message is not an inline message, the edited [Message](https://core.telegram.org/bots/api#message) is returned, otherwise True is returned. -**See**: https://core.telegram.org/bots/api#editmessagelivelocation - -| Param | Type | Description | -| --- | --- | --- | -| latitude | Float | Latitude of location | -| longitude | Float | Longitude of location | -| [options] | Object | Additional Telegram query options (provide either one of chat_id, message_id, or inline_message_id here) | - - - -### telegramBot.stopMessageLiveLocation([options]) ⇒ Promise -Use this method to stop updating a live location message sent by -the bot or via the bot (for inline bots) before live_period expires. - -Note that you must provide one of chat_id, message_id, or -inline_message_id in your request. - -**Kind**: instance method of [TelegramBot](#TelegramBot) -**Returns**: Promise - On success, if the edited message is not an inline message, the edited [Message](https://core.telegram.org/bots/api#message) is returned, otherwise True is returned. -**See**: https://core.telegram.org/bots/api#stopmessagelivelocation - -| Param | Type | Description | -| --- | --- | --- | -| [options] | Object | Additional Telegram query options (provide either one of chat_id, message_id, or inline_message_id here) | - - - -### telegramBot.sendVenue(chatId, latitude, longitude, title, address, [options]) ⇒ Promise -Send venue. -Use this method to send information about a venue. - -**Kind**: instance method of [TelegramBot](#TelegramBot) -**Returns**: Promise - On success, the sent [Message](https://core.telegram.org/bots/api#message) object is returned. -**See**: https://core.telegram.org/bots/api#sendvenue - -| Param | Type | Description | -| --- | --- | --- | -| chatId | Number \| String | Unique identifier for the target chat or username of the target channel (in the format `@channelusername`) | -| latitude | Float | Latitude of location | -| longitude | Float | Longitude of location | -| title | String | Name of the venue | -| address | String | Address of the venue | -| [options] | Object | Additional Telegram query options | - - - -### telegramBot.sendContact(chatId, phoneNumber, firstName, [options]) ⇒ Promise -Send contact. -Use this method to send phone contacts. - -**Kind**: instance method of [TelegramBot](#TelegramBot) -**Returns**: Promise - On success, the sent [Message](https://core.telegram.org/bots/api#message) object is returned -**See**: https://core.telegram.org/bots/api#sendcontact - -| Param | Type | Description | -| --- | --- | --- | -| chatId | Number \| String | Unique identifier for the target chat or username of the target channel (in the format `@channelusername`) | -| phoneNumber | String | Contact's phone number | -| firstName | String | Contact's first name | -| [options] | Object | Additional Telegram query options | - - - -### telegramBot.sendPoll(chatId, question, pollOptions, [options]) ⇒ Promise -Send poll. -Use this method to send a native poll. - -**Kind**: instance method of [TelegramBot](#TelegramBot) -**Returns**: Promise - On success, the sent [Message](https://core.telegram.org/bots/api#message) object is returned -**See**: https://core.telegram.org/bots/api#sendpoll - -| Param | Type | Description | -| --- | --- | --- | -| chatId | Number \| String | Unique identifier for the group/channel | -| question | String | Poll question, 1-300 characters | -| pollOptions | Array | Poll options, between 2-10 options (only 1-100 characters each) | -| [options] | Object | Additional Telegram query options | - - - -### telegramBot.sendDice(chatId, [options]) ⇒ Promise -Send Dice -Use this method to send an animated emoji that will display a random value. - -**Kind**: instance method of [TelegramBot](#TelegramBot) -**Returns**: Promise - On success, the sent [Message](https://core.telegram.org/bots/api#message) object is returned -**See**: https://core.telegram.org/bots/api#senddice - -| Param | Type | Description | -| --- | --- | --- | -| chatId | Number \| String | Unique identifier for the target chat or username of the target channel (in the format `@channelusername`) | -| [options] | Object | Additional Telegram query options | - - - -### telegramBot.sendChatAction(chatId, action, [options]) ⇒ Promise -Send chat action. - -Use this method when you need to tell the user that something is happening on the bot's side. -**The status is set for 5 seconds or less** (when a message arrives from your bot, Telegram clients clear its typing status). - - Action `typing` for [text messages](https://core.telegram.org/bots/api#sendmessage), -`upload_photo` for [photos](https://core.telegram.org/bots/api#sendphoto), `record_video` or `upload_video` for [videos](https://core.telegram.org/bots/api#sendvideo), -`record_voice` or `upload_voice` for [voice notes](https://core.telegram.org/bots/api#sendvoice), `upload_document` for [general files](https://core.telegram.org/bots/api#senddocument), -`choose_sticker` for [stickers](https://core.telegram.org/bots/api#sendsticker), `find_location` for [location data](https://core.telegram.org/bots/api#sendlocation), -`record_video_note` or `upload_video_note` for [video notes](https://core.telegram.org/bots/api#sendvideonote). - -**Kind**: instance method of [TelegramBot](#TelegramBot) -**Returns**: Promise - True on success -**See**: https://core.telegram.org/bots/api#sendchataction - -| Param | Type | Description | -| --- | --- | --- | -| chatId | Number \| String | Unique identifier for the target chat or username of the target channel (in the format `@channelusername`) | -| action | String | Type of action to broadcast. | -| [options] | Object | Additional Telegram query options | - - - -### telegramBot.setMessageReaction(chatId, messageId, [options]) ⇒ [ 'Promise' ].<Boolean> -Use this method to change the chosen reactions on a message. -- Service messages can't be reacted to. -- Automatically forwarded messages from a channel to its discussion group have the same available reactions as messages in the channel. -- In albums, bots must react to the first message. - -**Kind**: instance method of [TelegramBot](#TelegramBot) -**Returns**: [ 'Promise' ].<Boolean> - True on success -**See**: https://core.telegram.org/bots/api#setmessagereaction - -| Param | Type | Description | -| --- | --- | --- | -| chatId | Number \| String | Unique identifier for the target chat or username of the target channel (in the format @channelusername) | -| messageId | Number | Unique identifier of the target message | -| [options] | Object | Additional Telegram query options | - - - -### telegramBot.getUserProfilePhotos(userId, [options]) ⇒ Promise -Use this method to get a list of profile pictures for a user. -Returns a [UserProfilePhotos](https://core.telegram.org/bots/api#userprofilephotos) object. -This method has an [older, compatible signature][getUserProfilePhotos-v0.25.0] -that is being deprecated. - -**Kind**: instance method of [TelegramBot](#TelegramBot) -**Returns**: Promise - Returns a [UserProfilePhotos](https://core.telegram.org/bots/api#userprofilephotos) object -**See**: https://core.telegram.org/bots/api#getuserprofilephotos - -| Param | Type | Description | -| --- | --- | --- | -| userId | Number | Unique identifier of the target user | -| [options] | Object | Additional Telegram query options | - - - -### telegramBot.getFile(fileId, [options]) ⇒ Promise -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.** - -**Kind**: instance method of [TelegramBot](#TelegramBot) -**Returns**: Promise - On success, a [File](https://core.telegram.org/bots/api#file) object is returned -**See**: https://core.telegram.org/bots/api#getfile - -| Param | Type | Description | -| --- | --- | --- | -| fileId | String | File identifier to get info about | -| [options] | Object | Additional Telegram query options | - - - -### telegramBot.banChatMember(chatId, userId, [options]) ⇒ Promise -Use this method to ban a user in a group, a supergroup or a channel. -In the case of supergroups and channels, the user will not be able to -return to the chat on their own using invite links, etc., unless unbanned first.. - -The **bot must be an administrator in the group, supergroup or a channel** for this to work. - -**Kind**: instance method of [TelegramBot](#TelegramBot) -**Returns**: Promise - True on success. -**See**: https://core.telegram.org/bots/api#banchatmember - -| Param | Type | Description | -| --- | --- | --- | -| chatId | Number \| String | Unique identifier for the target chat or username of the target channel (in the format `@channelusername`) | -| userId | Number | Unique identifier of the target user | -| [options] | Object | Additional Telegram query options | - - - -### telegramBot.unbanChatMember(chatId, userId, [options]) ⇒ Promise -Use this method to unban a previously kicked user in a supergroup. -The user will not return to the group automatically, but will be -able to join via link, etc. - -The **bot must be an administrator** in the supergroup or channel for this to work. - -**By default**, this method guarantees that after the call the user is not a member of the chat, but will be able to join it. -So **if the user is a member of the chat they will also be removed from the chat**. If you don't want this, use the parameter *only_if_banned* - -**Kind**: instance method of [TelegramBot](#TelegramBot) -**Returns**: Promise - True on success -**See**: https://core.telegram.org/bots/api#unbanchatmember - -| Param | Type | Description | -| --- | --- | --- | -| chatId | Number \| String | Unique identifier for the target chat or username of the target channel (in the format `@channelusername`) | -| userId | Number | Unique identifier of the target user | -| [options] | Object | Additional Telegram query options | - - - -### telegramBot.restrictChatMember(chatId, userId, [options]) ⇒ Promise -Use this method to restrict a user in a supergroup. -The bot **must be an administrator in the supergroup** for this to work -and must have the appropriate admin rights. Pass True for all boolean parameters -to lift restrictions from a user. Returns True on success. - -**Kind**: instance method of [TelegramBot](#TelegramBot) -**Returns**: Promise - True on success -**See**: https://core.telegram.org/bots/api#restrictchatmember - -| Param | Type | Description | -| --- | --- | --- | -| chatId | Number \| String | Unique identifier for the target chat or username of the target channel (in the format `@channelusername`) | -| userId | Number | Unique identifier of the target user | -| [options] | Object | Additional Telegram query options | - - - -### telegramBot.promoteChatMember(chatId, userId, [options]) ⇒ Promise -Use this method to promote or demote a user in a supergroup or a channel. -The bot **must be an administrator** in the chat for this to work -and must have the appropriate admin rights. Pass False for all boolean parameters to demote a user. - -**Kind**: instance method of [TelegramBot](#TelegramBot) -**Returns**: Promise - True on success. -**See**: https://core.telegram.org/bots/api#promotechatmember - -| Param | Type | Description | -| --- | --- | --- | -| chatId | Number \| String | Unique identifier for the target chat or username of the target channel (in the format `@channelusername`) | -| userId | Number | | -| [options] | Object | Additional Telegram query options | - - - -### telegramBot.setChatAdministratorCustomTitle(chatId, userId, customTitle, [options]) ⇒ Promise -Use this method to set a custom title for an administrator in a supergroup promoted by the bot. - -**Kind**: instance method of [TelegramBot](#TelegramBot) -**Returns**: Promise - True on success -**See**: https://core.telegram.org/bots/api#setchatadministratorcustomtitle - -| Param | Type | Description | -| --- | --- | --- | -| chatId | Number \| String | Unique identifier for the target chat or username of the target channel (in the format `@channelusername`) | -| userId | Number | Unique identifier of the target user | -| customTitle | String | New custom title for the administrator; 0-16 characters, emoji are not allowed | -| [options] | Object | Additional Telegram query options | - - - -### telegramBot.banChatSenderChat(chatId, senderChatId, [options]) ⇒ Promise -Use this method to ban a channel chat in a supergroup or a channel. - -Until the chat is [unbanned](https://core.telegram.org/bots/api#unbanchatsenderchat), the owner of the banned chat won't be able to send messages on behalf of any of their channels. -The bot **must be an administrator in the supergroup or channel** for this to work and must have the appropriate administrator rights - -**Kind**: instance method of [TelegramBot](#TelegramBot) -**Returns**: Promise - True on success. -**See**: https://core.telegram.org/bots/api#banchatsenderchat - -| Param | Type | Description | -| --- | --- | --- | -| chatId | Number \| String | Unique identifier for the target chat or username of the target channel (in the format `@channelusername`) | -| senderChatId | Number | Unique identifier of the target user | -| [options] | Object | Additional Telegram query options | - - - -### telegramBot.unbanChatSenderChat(chatId, senderChatId, [options]) ⇒ Promise -Use this method to unban a previously banned channel chat in a supergroup or channel. - -The bot **must be an administrator** for this to work and must have the appropriate administrator rights. - -**Kind**: instance method of [TelegramBot](#TelegramBot) -**Returns**: Promise - True on success -**See**: https://core.telegram.org/bots/api#unbanchatsenderchat - -| Param | Type | Description | -| --- | --- | --- | -| chatId | Number \| String | Unique identifier for the target chat or username of the target channel (in the format `@channelusername`) | -| senderChatId | Number | Unique identifier of the target user | -| [options] | Object | Additional Telegram query options | - - - -### telegramBot.setChatPermissions(chatId, chatPermissions, [options]) ⇒ Promise -Use this method to set default chat permissions for all members. - -The bot **must be an administrator in the group or a supergroup** for this to -work and **must have the `can_restrict_members` admin rights.** - -**Kind**: instance method of [TelegramBot](#TelegramBot) -**Returns**: Promise - True on success -**See**: https://core.telegram.org/bots/api#setchatpermissions - -| Param | Type | Description | -| --- | --- | --- | -| chatId | Number \| String | Unique identifier for the target chat or username of the target channel (in the format `@channelusername`) | -| chatPermissions | Array | New default chat permissions | -| [options] | Object | Additional Telegram query options | - - - -### telegramBot.exportChatInviteLink(chatId, [options]) ⇒ Promise -Use this method to generate a new primary invite link for a chat. **Any previously generated primary link is revoked**. - -The bot **must be an administrator in the chat** for this to work and must have the appropriate administrator rights. - -**Kind**: instance method of [TelegramBot](#TelegramBot) -**Returns**: Promise - Exported invite link as String on success. -**See**: https://core.telegram.org/bots/api#exportchatinvitelink - -| Param | Type | Description | -| --- | --- | --- | -| chatId | Number \| String | Unique identifier for the target chat or username of the target channel (in the format `@channelusername`) | -| [options] | Object | Additional Telegram query options | - - - -### telegramBot.createChatInviteLink(chatId, [options]) ⇒ Object -Use this method to create an additional invite link for a chat. - -The bot **must be an administrator in the chat** for this to work and must have the appropriate admin rights. - -The link generated with this method can be revoked using the method [revokeChatInviteLink](https://core.telegram.org/bots/api#revokechatinvitelink) - -**Kind**: instance method of [TelegramBot](#TelegramBot) -**Returns**: Object - The new invite link as [ChatInviteLink](https://core.telegram.org/bots/api#chatinvitelink) object -**See**: https://core.telegram.org/bots/api#createchatinvitelink - -| Param | Type | Description | -| --- | --- | --- | -| chatId | Number \| String | Unique identifier for the target chat or username of the target channel (in the format `@channelusername`) | -| [options] | Object | Additional Telegram query options | - - - -### telegramBot.editChatInviteLink(chatId, inviteLink, [options]) ⇒ Promise -Use this method to edit a non-primary invite link created by the bot. - -The bot **must be an administrator in the chat** for this to work and must have the appropriate admin rights. - -**Kind**: instance method of [TelegramBot](#TelegramBot) -**Returns**: Promise - The edited invite link as a [ChatInviteLink](https://core.telegram.org/bots/api#chatinvitelink) object -**See**: https://core.telegram.org/bots/api#editchatinvitelink - -| Param | Type | Description | -| --- | --- | --- | -| chatId | Number \| String | Unique identifier for the target chat or username of the target channel (in the format `@channelusername`) | -| inviteLink | String | Text with the invite link to edit | -| [options] | Object | Additional Telegram query options | - - - -### telegramBot.createChatSubscriptionInviteLink(chatId, subscriptionPeriod, subscriptionPrice, [options]) ⇒ Promise -Use this method to create a subscription invite link for a channel chat. - -The bot must have the can_invite_users administrator rights - -**Kind**: instance method of [TelegramBot](#TelegramBot) -**Returns**: Promise - The new invite link as a [ChatInviteLink](https://core.telegram.org/bots/api#chatinvitelink) object -**See**: https://core.telegram.org/bots/api#createchatsubscriptioninvitelink - -| Param | Type | Description | -| --- | --- | --- | -| chatId | Number \| String | Unique identifier for the target chat or username of the target channel (in the format `@channelusername`) | -| subscriptionPeriod | Number | The number of seconds the subscription will be active for before the next payment. Currently, it must always be 2592000 (30 days) | -| subscriptionPrice | Number | The amount of Telegram Stars a user must pay initially and after each subsequent subscription period to be a member of the chat (1-2500) | -| [options] | Object | Additional Telegram query options | - - - -### telegramBot.editChatSubscriptionInviteLink(chatId, inviteLink, [options]) ⇒ Promise -Use this method to edit a subscription invite link created by the bot. - -The bot must have the can_invite_users administrator rights - -**Kind**: instance method of [TelegramBot](#TelegramBot) -**Returns**: Promise - The new invite link as a [ChatInviteLink](https://core.telegram.org/bots/api#chatinvitelink) object -**See**: https://core.telegram.org/bots/api#editchatsubscriptioninvitelink - -| Param | Type | Description | -| --- | --- | --- | -| chatId | Number \| String | Unique identifier for the target chat or username of the target channel (in the format `@channelusername`) | -| inviteLink | String | The invite link to edit | -| [options] | Object | Additional Telegram query options | - - - -### telegramBot.revokeChatInviteLink(chatId, inviteLink, [options]) ⇒ Promise -Use this method to revoke an invite link created by the bot. -Note: If the primary link is revoked, a new link is automatically generated - -The bot **must be an administrator in the chat** for this to work and must have the appropriate admin rights. - -**Kind**: instance method of [TelegramBot](#TelegramBot) -**Returns**: Promise - The revoked invite link as [ChatInviteLink](https://core.telegram.org/bots/api#chatinvitelink) object -**See**: https://core.telegram.org/bots/api#revokechatinvitelink - -| Param | Type | Description | -| --- | --- | --- | -| chatId | Number \| String | Unique identifier for the target chat or username of the target channel (in the format `@channelusername`) | -| inviteLink | String | The invite link to revoke | -| [options] | Object | Additional Telegram query options | - - - -### telegramBot.approveChatJoinRequest(chatId, userId, [options]) ⇒ Promise -Use this method to approve a chat join request. - -The bot **must be an administrator in the chat** for this to work and **must have the `can_invite_users` administrator right.** - -**Kind**: instance method of [TelegramBot](#TelegramBot) -**Returns**: Promise - True on success -**See**: https://core.telegram.org/bots/api#approvechatjoinrequest - -| Param | Type | Description | -| --- | --- | --- | -| chatId | Number \| String | Unique identifier for the target chat or username of the target channel (in the format `@channelusername`) | -| userId | Number | Unique identifier of the target user | -| [options] | Object | Additional Telegram query options | - - - -### telegramBot.declineChatJoinRequest(chatId, userId, [options]) ⇒ Promise -Use this method to decline a chat join request. - -The bot **must be an administrator in the chat** for this to work and **must have the `can_invite_users` administrator right**. - -**Kind**: instance method of [TelegramBot](#TelegramBot) -**Returns**: Promise - True on success -**See**: https://core.telegram.org/bots/api#declinechatjoinrequest - -| Param | Type | Description | -| --- | --- | --- | -| chatId | Number \| String | Unique identifier for the target chat or username of the target channel (in the format `@channelusername`) | -| userId | Number | Unique identifier of the target user | -| [options] | Object | Additional Telegram query options | - - - -### telegramBot.setChatPhoto(chatId, photo, [options], [fileOptions]) ⇒ Promise -Use this method to set a new profile photo for the chat. **Photos can't be changed for private chats**. - -The bot **must be an administrator in the chat** for this to work and must have the appropriate admin rights. - -**Kind**: instance method of [TelegramBot](#TelegramBot) -**Returns**: Promise - True on success -**See**: https://core.telegram.org/bots/api#setchatphoto - -| Param | Type | Description | -| --- | --- | --- | -| chatId | Number \| String | Unique identifier for the target chat or username of the target channel (in the format `@channelusername`) | -| photo | stream.Stream \| Buffer | A file path or a Stream. | -| [options] | Object | Additional Telegram query options | -| [fileOptions] | Object | Optional file related meta-data | - - - -### telegramBot.deleteChatPhoto(chatId, [options]) ⇒ Promise -Use this method to delete a chat photo. **Photos can't be changed for private chats**. - -The bot **must be an administrator in the chat** for this to work and must have the appropriate admin rights. - -**Kind**: instance method of [TelegramBot](#TelegramBot) -**Returns**: Promise - True on success -**See**: https://core.telegram.org/bots/api#deletechatphoto - -| Param | Type | Description | -| --- | --- | --- | -| chatId | Number \| String | Unique identifier for the target chat or username of the target channel (in the format `@channelusername`) | -| [options] | Object | Additional Telegram query options | - - - -### telegramBot.setChatTitle(chatId, title, [options]) ⇒ Promise -Use this method to change the title of a chat. **Titles can't be changed for private chats**. - -The bot **must be an administrator in the chat** for this to work and must have the appropriate admin rights. - -**Kind**: instance method of [TelegramBot](#TelegramBot) -**Returns**: Promise - True on success -**See**: https://core.telegram.org/bots/api#setchattitle - -| Param | Type | Description | -| --- | --- | --- | -| chatId | Number \| String | Unique identifier for the target chat or username of the target channel (in the format `@channelusername`) | -| title | String | New chat title, 1-255 characters | -| [options] | Object | Additional Telegram query options | - - - -### telegramBot.setChatDescription(chatId, description, [options]) ⇒ Promise -Use this method to change the description of a group, a supergroup or a channel. - -The bot **must be an administrator in the chat** for this to work and must have the appropriate admin rights. - -**Kind**: instance method of [TelegramBot](#TelegramBot) -**Returns**: Promise - True on success -**See**: https://core.telegram.org/bots/api#setchatdescription - -| Param | Type | Description | -| --- | --- | --- | -| chatId | Number \| String | Unique identifier for the target chat or username of the target channel (in the format `@channelusername`) | -| description | String | New chat title, 0-255 characters | -| [options] | Object | Additional Telegram query options | - - - -### telegramBot.pinChatMessage(chatId, messageId, [options]) ⇒ Promise -Use this method to pin a message in a supergroup. - -If the chat is not a private chat, the **bot must be an administrator in the chat** for this to work and must have the `can_pin_messages` administrator -right in a supergroup or `can_edit_messages` administrator right in a channel. - -**Kind**: instance method of [TelegramBot](#TelegramBot) -**Returns**: Promise - True on success -**See**: https://core.telegram.org/bots/api#pinchatmessage - -| Param | Type | Description | -| --- | --- | --- | -| chatId | Number \| String | Unique identifier for the target chat or username of the target channel (in the format `@channelusername`) | -| messageId | Number | Identifier of a message to pin | -| [options] | Object | Additional Telegram query options | - - - -### telegramBot.unpinChatMessage(chatId, [options]) ⇒ Promise -Use this method to remove a message from the list of pinned messages in a chat - -If the chat is not a private chat, the **bot must be an administrator in the chat** for this to work and must have the `can_pin_messages` administrator -right in a supergroup or `can_edit_messages` administrator right in a channel. - -**Kind**: instance method of [TelegramBot](#TelegramBot) -**Returns**: Promise - True on success -**See**: https://core.telegram.org/bots/api#unpinchatmessage - -| Param | Type | Description | -| --- | --- | --- | -| chatId | Number \| String | Unique identifier for the target chat or username of the target channel (in the format `@channelusername`) | -| [options] | Object | Additional Telegram query options | - - - -### telegramBot.unpinAllChatMessages(chatId, [options]) ⇒ Promise -Use this method to clear the list of pinned messages in a chat. - -If the chat is not a private chat, the **bot must be an administrator in the chat** for this to work and must have the `can_pin_messages` administrator -right in a supergroup or `can_edit_messages` administrator right in a channel. - -**Kind**: instance method of [TelegramBot](#TelegramBot) -**Returns**: Promise - True on success -**See**: https://core.telegram.org/bots/api#unpinallchatmessages - -| Param | Type | Description | -| --- | --- | --- | -| chatId | Number \| String | Unique identifier for the target chat or username of the target channel (in the format `@channelusername`) | -| [options] | Object | Additional Telegram query options | - - - -### telegramBot.leaveChat(chatId, [options]) ⇒ Promise -Use this method for your bot to leave a group, supergroup or channel - -**Kind**: instance method of [TelegramBot](#TelegramBot) -**Returns**: Promise - True on success -**See**: https://core.telegram.org/bots/api#leavechat - -| Param | Type | Description | -| --- | --- | --- | -| chatId | Number \| String | Unique identifier for the target chat or username of the target channel (in the format `@channelusername`) | -| [options] | Object | Additional Telegram query options | - - - -### telegramBot.getChat(chatId, [options]) ⇒ Promise -Use this method to get up to date information about the chat -(current name of the user for one-on-one conversations, current -username of a user, group or channel, etc.). - -**Kind**: instance method of [TelegramBot](#TelegramBot) -**Returns**: Promise - [ChatFullInfo](https://core.telegram.org/bots/api#chatfullinfo) object on success -**See**: https://core.telegram.org/bots/api#getchat - -| Param | Type | Description | -| --- | --- | --- | -| chatId | Number \| String | Unique identifier for the target chat or username of the target channel (in the format `@channelusername`) or channel | -| [options] | Object | Additional Telegram query options | - - - -### telegramBot.getChatAdministrators(chatId, [options]) ⇒ Promise -Use this method to get a list of administrators in a chat - -**Kind**: instance method of [TelegramBot](#TelegramBot) -**Returns**: Promise - On success, returns an Array of [ChatMember](https://core.telegram.org/bots/api#chatmember) objects that contains information about all chat administrators except other bots. -If the chat is a group or a supergroup and no administrators were appointed, only the creator will be returned -**See**: https://core.telegram.org/bots/api#getchatadministrators - -| Param | Type | Description | -| --- | --- | --- | -| chatId | Number \| String | Unique identifier for the target group or username of the target supergroup | -| [options] | Object | Additional Telegram query options | - - - -### telegramBot.getChatMemberCount(chatId, [options]) ⇒ Promise -Use this method to get the number of members in a chat. - -**Kind**: instance method of [TelegramBot](#TelegramBot) -**Returns**: Promise - Int on success -**See**: https://core.telegram.org/bots/api#getchatmembercount - -| Param | Type | Description | -| --- | --- | --- | -| chatId | Number \| String | Unique identifier for the target group or username of the target supergroup | -| [options] | Object | Additional Telegram query options | - - - -### telegramBot.getChatMember(chatId, userId, [options]) ⇒ Promise -Use this method to get information about a member of a chat. - -**Kind**: instance method of [TelegramBot](#TelegramBot) -**Returns**: Promise - [ChatMember](https://core.telegram.org/bots/api#chatmember) object on success -**See**: https://core.telegram.org/bots/api#getchatmember - -| Param | Type | Description | -| --- | --- | --- | -| chatId | Number \| String | Unique identifier for the target group or username of the target supergroup | -| userId | Number | Unique identifier of the target user | -| [options] | Object | Additional Telegram query options | - - - -### telegramBot.setChatStickerSet(chatId, stickerSetName, [options]) ⇒ Promise -Use this method to set a new group sticker set for a supergroup. - -The bot **must be an administrator in the chat** for this to work and must have the appropriate administrator rights. - -**Note:** Use the field `can_set_sticker_set` optionally returned in [getChat](https://core.telegram.org/bots/api#getchat) requests to check if the bot can use this method. - -**Kind**: instance method of [TelegramBot](#TelegramBot) -**Returns**: Promise - True on success -**See**: https://core.telegram.org/bots/api#setchatstickerset - -| Param | Type | Description | -| --- | --- | --- | -| chatId | Number \| String | Unique identifier for the target group or username of the target supergroup (in the format @supergroupusername) | -| stickerSetName | String | Name of the sticker set to be set as the group sticker set | -| [options] | Object | Additional Telegram query options | - - - -### telegramBot.deleteChatStickerSet(chatId, [options]) ⇒ Promise -Use this method to delete a group sticker set from a supergroup. - -Use the field `can_set_sticker_set` optionally returned in [getChat](https://core.telegram.org/bots/api#getchat) requests to check if the bot can use this method. - -**Kind**: instance method of [TelegramBot](#TelegramBot) -**Returns**: Promise - True on success -**See**: https://core.telegram.org/bots/api#deletechatstickerset - -| Param | Type | Description | -| --- | --- | --- | -| chatId | Number \| String | Unique identifier for the target group or username of the target supergroup (in the format @supergroupusername) | -| [options] | Object | Additional Telegram query options | - - - -### telegramBot.getForumTopicIconStickers(chatId, [options]) ⇒ Promise -Use this method to get custom emoji stickers, which can be used as a forum topic icon by any user. - -**Kind**: instance method of [TelegramBot](#TelegramBot) -**Returns**: Promise - Array of [Sticker](https://core.telegram.org/bots/api#sticker) objects -**See**: https://core.telegram.org/bots/api#getforumtopiciconstickers - -| Param | Type | Description | -| --- | --- | --- | -| chatId | Number \| String | Unique identifier for the target group or username of the target supergroup (in the format @supergroupusername) | -| [options] | Object | Additional Telegram query options | - - - -### telegramBot.createForumTopic(chatId, name, [options]) -Use this method to create a topic in a forum supergroup chat. -The bot must be an administrator in the chat for this to work and must have the can_manage_topics administrator rights. - -Returns information about the created topic as a [ForumTopic](https://core.telegram.org/bots/api#forumtopic) object. - -**Kind**: instance method of [TelegramBot](#TelegramBot) -**See**: https://core.telegram.org/bots/api#createforumtopic - -| Param | Type | Description | -| --- | --- | --- | -| chatId | Number \| String | Unique identifier for the target group or username of the target supergroup (in the format @supergroupusername) | -| name | String | Topic name, 1-128 characters | -| [options] | Object | Additional Telegram query options | - - - -### telegramBot.editForumTopic(chatId, messageThreadId, [options]) ⇒ Promise -Use this method to edit name and icon of a topic in a forum supergroup chat. -The bot must be an administrator in the chat for this to work and must have can_manage_topics administrator rights, unless it is the creator of the topic. - -**Kind**: instance method of [TelegramBot](#TelegramBot) -**Returns**: Promise - True on success -**See**: https://core.telegram.org/bots/api#editforumtopic - -| Param | Type | Description | -| --- | --- | --- | -| chatId | Number \| String | Unique identifier for the target group or username of the target supergroup (in the format @supergroupusername) | -| messageThreadId | Number | Unique identifier for the target message thread of the forum topic | -| [options] | Object | Additional Telegram query options | - - - -### telegramBot.closeForumTopic(chatId, messageThreadId, [options]) ⇒ Promise -Use this method to close an open topic in a forum supergroup chat. -The bot must be an administrator in the chat for this to work and must have the can_manage_topics administrator rights, unless it is the creator of the topic. - -**Kind**: instance method of [TelegramBot](#TelegramBot) -**Returns**: Promise - True on success -**See**: https://core.telegram.org/bots/api#closeforumtopic - -| Param | Type | Description | -| --- | --- | --- | -| chatId | Number \| String | Unique identifier for the target group or username of the target supergroup (in the format @supergroupusername) | -| messageThreadId | Number | Unique identifier for the target message thread of the forum topic | -| [options] | Object | Additional Telegram query options | - - - -### telegramBot.reopenForumTopic(chatId, messageThreadId, [options]) ⇒ Promise -Use this method to reopen a closed topic in a forum supergroup chat. -The bot must be an administrator in the chat for this to work and must have the can_manage_topics administrator rights, unless it is the creator of the topic. - -**Kind**: instance method of [TelegramBot](#TelegramBot) -**Returns**: Promise - True on success -**See**: https://core.telegram.org/bots/api#reopenforumtopic - -| Param | Type | Description | -| --- | --- | --- | -| chatId | Number \| String | Unique identifier for the target group or username of the target supergroup (in the format @supergroupusername) | -| messageThreadId | Number | Unique identifier for the target message thread of the forum topic | -| [options] | Object | Additional Telegram query options | - - - -### telegramBot.deleteForumTopic(chatId, messageThreadId, [options]) ⇒ Promise -Use this method to delete a forum topic along with all its messages in a forum supergroup chat. -The bot must be an administrator in the chat for this to work and must have the can_delete_messages administrator rights. - -**Kind**: instance method of [TelegramBot](#TelegramBot) -**Returns**: Promise - True on success -**See**: https://core.telegram.org/bots/api#deleteforumtopic - -| Param | Type | Description | -| --- | --- | --- | -| chatId | Number \| String | Unique identifier for the target group or username of the target supergroup (in the format @supergroupusername) | -| messageThreadId | Number | Unique identifier for the target message thread of the forum topic | -| [options] | Object | Additional Telegram query options | - - - -### telegramBot.unpinAllForumTopicMessages(chatId, messageThreadId, [options]) ⇒ Promise -Use this method to clear the list of pinned messages in a forum topic. -The bot must be an administrator in the chat for this to work and must have the can_pin_messages administrator right in the supergroup. - -**Kind**: instance method of [TelegramBot](#TelegramBot) -**Returns**: Promise - True on success -**See**: https://core.telegram.org/bots/api#unpinallforumtopicmessages - -| Param | Type | Description | -| --- | --- | --- | -| chatId | Number \| String | Unique identifier for the target group or username of the target supergroup (in the format @supergroupusername) | -| messageThreadId | Number | Unique identifier for the target message thread of the forum topic | -| [options] | Object | Additional Telegram query options | - - - -### telegramBot.editGeneralForumTopic(chatId, name, [options]) ⇒ Promise -Use this method to edit the name of the 'General' topic in a forum supergroup chat. -The bot must be an administrator in the chat for this to work and must have the can_manage_topics administrator rights. -The topic will be automatically unhidden if it was hidden. - -**Kind**: instance method of [TelegramBot](#TelegramBot) -**Returns**: Promise - True on success -**See**: https://core.telegram.org/bots/api#editgeneralforumtopic - -| Param | Type | Description | -| --- | --- | --- | -| chatId | Number \| String | Unique identifier for the target group or username of the target supergroup (in the format @supergroupusername) | -| name | String | New topic name, 1-128 characters | -| [options] | Object | Additional Telegram query options | - - - -### telegramBot.closeGeneralForumTopic(chatId, [options]) ⇒ Promise -Use this method to close an open 'General' topic in a forum supergroup chat. -The bot must be an administrator in the chat for this to work and must have the can_manage_topics administrator rights. -The topic will be automatically unhidden if it was hidden. - -**Kind**: instance method of [TelegramBot](#TelegramBot) -**Returns**: Promise - True on success -**See**: https://core.telegram.org/bots/api#closegeneralforumtopic - -| Param | Type | Description | -| --- | --- | --- | -| chatId | Number \| String | Unique identifier for the target group or username of the target supergroup (in the format @supergroupusername) | -| [options] | Object | Additional Telegram query options | - - - -### telegramBot.reopenGeneralForumTopic(chatId, [options]) ⇒ Promise -Use this method to reopen a closed 'General' topic in a forum supergroup chat. -The bot must be an administrator in the chat for this to work and must have the can_manage_topics administrator rights. -The topic will be automatically unhidden if it was hidden. - -**Kind**: instance method of [TelegramBot](#TelegramBot) -**Returns**: Promise - True on success -**See**: https://core.telegram.org/bots/api#reopengeneralforumtopic - -| Param | Type | Description | -| --- | --- | --- | -| chatId | Number \| String | Unique identifier for the target group or username of the target supergroup (in the format @supergroupusername) | -| [options] | Object | Additional Telegram query options | - - - -### telegramBot.hideGeneralForumTopic(chatId, [options]) ⇒ Promise -Use this method to hide the 'General' topic in a forum supergroup chat. -The bot must be an administrator in the chat for this to work and must have the can_manage_topics administrator rights. -The topic will be automatically closed if it was open. - -**Kind**: instance method of [TelegramBot](#TelegramBot) -**Returns**: Promise - True on success -**See**: https://core.telegram.org/bots/api#hidegeneralforumtopic - -| Param | Type | Description | -| --- | --- | --- | -| chatId | Number \| String | Unique identifier for the target group or username of the target supergroup (in the format @supergroupusername) | -| [options] | Object | Additional Telegram query options | - - - -### telegramBot.unhideGeneralForumTopic(chatId, [options]) ⇒ Promise -Use this method to unhide the 'General' topic in a forum supergroup chat. -The bot must be an administrator in the chat for this to work and must have the can_manage_topics administrator rights - -**Kind**: instance method of [TelegramBot](#TelegramBot) -**Returns**: Promise - True on success -**See**: https://core.telegram.org/bots/api#unhidegeneralforumtopic - -| Param | Type | Description | -| --- | --- | --- | -| chatId | Number \| String | Unique identifier for the target group or username of the target supergroup (in the format @supergroupusername) | -| [options] | Object | Additional Telegram query options | - - - -### telegramBot.unpinAllGeneralForumTopicMessages(chatId, [options]) ⇒ Promise -Use this method to clear the list of pinned messages in a General forum topic. -The bot must be an administrator in the chat for this to work and must have the can_pin_messages administrator right in the supergroup. - -**Kind**: instance method of [TelegramBot](#TelegramBot) -**Returns**: Promise - True on success -**See**: https://core.telegram.org/bots/api#unpinallgeneralforumtopicmessages - -| Param | Type | Description | -| --- | --- | --- | -| chatId | Number \| String | Unique identifier for the target group or username of the target supergroup (in the format @supergroupusername) | -| [options] | Object | Additional Telegram query options | - - - -### telegramBot.answerCallbackQuery(callbackQueryId, [options]) ⇒ Promise -Use this method to send answers to callback queries sent from -[inline keyboards](https://core.telegram.org/bots#inline-keyboards-and-on-the-fly-updating). - -The answer will be displayed to the user as a notification at the top of the chat screen or as an alert. - -This method has **older, compatible signatures ([1][answerCallbackQuery-v0.27.1])([2][answerCallbackQuery-v0.29.0])** -that are being deprecated. - -**Kind**: instance method of [TelegramBot](#TelegramBot) -**Returns**: Promise - True on success -**See**: https://core.telegram.org/bots/api#answercallbackquery - -| Param | Type | Description | -| --- | --- | --- | -| callbackQueryId | String | Unique identifier for the query to be answered | -| [options] | Object | Additional Telegram query options | - - - -### telegramBot.getUserChatBoosts(chatId, userId, [options]) ⇒ Promise -Use this method to get the list of boosts added to a chat by a use. -Requires administrator rights in the chat - -**Kind**: instance method of [TelegramBot](#TelegramBot) -**Returns**: Promise - On success, returns a [UserChatBoosts](https://core.telegram.org/bots/api#userchatboosts) object -**See**: https://core.telegram.org/bots/api#getuserchatboosts - -| Param | Type | Description | -| --- | --- | --- | -| chatId | Number \| String | Unique identifier for the group/channel | -| userId | Number | Unique identifier of the target user | -| [options] | Object | Additional Telegram query options | - - - -### telegramBot.getBusinessConnection(businessConnectionId, [options]) ⇒ Promise -Use this method to get information about the connection of the bot with a business account - -**Kind**: instance method of [TelegramBot](#TelegramBot) -**Returns**: Promise - On success, returns [BusinessConnection](https://core.telegram.org/bots/api#businessconnection) object -**See**: https://core.telegram.org/bots/api#getbusinessconnection - -| Param | Type | Description | -| --- | --- | --- | -| businessConnectionId | Number \| String | Unique identifier for the group/channel | -| [options] | Object | Additional Telegram query options | - - - -### telegramBot.setMyCommands(commands, [options]) ⇒ Promise -Use this method to change the list of the bot's commands. - -See https://core.telegram.org/bots#commands for more details about bot commands - -**Kind**: instance method of [TelegramBot](#TelegramBot) -**Returns**: Promise - True on success -**See**: https://core.telegram.org/bots/api#setmycommands - -| Param | Type | Description | -| --- | --- | --- | -| commands | Array | List of bot commands to be set as the list of the [bot's commands](https://core.telegram.org/bots/api#botcommand). At most 100 commands can be specified. | -| [options] | Object | Additional Telegram query options | - - - -### telegramBot.deleteMyCommands([options]) ⇒ Promise -Use this method to delete the list of the bot's commands for the given scope and user language. - - After deletion, [higher level commands](https://core.telegram.org/bots/api#determining-list-of-commands) will be shown to affected users. - -**Kind**: instance method of [TelegramBot](#TelegramBot) -**Returns**: Promise - True on success -**See**: https://core.telegram.org/bots/api#deletemycommands - -| Param | Type | Description | -| --- | --- | --- | -| [options] | Object | Additional Telegram query options | - - - -### telegramBot.getMyCommands([options]) ⇒ Promise -Use this method to get the current list of the bot's commands for the given scope and user language. - -**Kind**: instance method of [TelegramBot](#TelegramBot) -**Returns**: Promise - Array of [BotCommand](https://core.telegram.org/bots/api#botcommand) on success. If commands aren't set, an empty list is returned. -**See**: https://core.telegram.org/bots/api#getmycommands - -| Param | Type | Description | -| --- | --- | --- | -| [options] | Object | Additional Telegram query options | - - - -### telegramBot.setMyName([options]) ⇒ Promise -Use this method to change the bot's name. - -**Kind**: instance method of [TelegramBot](#TelegramBot) -**Returns**: Promise - True on success -**See**: https://core.telegram.org/bots/api#setmyname - -| Param | Type | Description | -| --- | --- | --- | -| [options] | Object | Additional Telegram query options | - - - -### telegramBot.getMyName([options]) ⇒ Promise -Use this method to get the current bot name for the given user language. - -**Kind**: instance method of [TelegramBot](#TelegramBot) -**Returns**: Promise - [BotName](https://core.telegram.org/bots/api#botname) on success -**See**: https://core.telegram.org/bots/api#getmyname - -| Param | Type | Description | -| --- | --- | --- | -| [options] | Object | Additional Telegram query options | - - - -### telegramBot.setMyDescription([options]) ⇒ Promise -Use this method to change the bot's description, which is shown in the chat with the bot if the chat is empty. - -Returns True on success. - -**Kind**: instance method of [TelegramBot](#TelegramBot) -**Returns**: Promise - True on success -**See**: https://core.telegram.org/bots/api#setmydescription - -| Param | Type | Description | -| --- | --- | --- | -| [options] | Object | Additional Telegram query options | - - - -### telegramBot.getMyDescription([options]) ⇒ Promise -Use this method to get the current bot description for the given user language. - -**Kind**: instance method of [TelegramBot](#TelegramBot) -**Returns**: Promise - Returns [BotDescription](https://core.telegram.org/bots/api#botdescription) on success. -**See**: https://core.telegram.org/bots/api#getmydescription - -| Param | Type | Description | -| --- | --- | --- | -| [options] | Object | Additional Telegram query options | - - - -### telegramBot.setMyShortDescription([options]) ⇒ Promise -Use this method to change the bot's short description, which is shown on the bot's profile page -and is sent together with the link when users share the bot. - -**Kind**: instance method of [TelegramBot](#TelegramBot) -**Returns**: Promise - Returns True on success. -**See**: https://core.telegram.org/bots/api#setmyshortdescription - -| Param | Type | Description | -| --- | --- | --- | -| [options] | Object | Additional Telegram query options | - - - -### telegramBot.getMyShortDescription([options]) ⇒ Promise -Use this method to get the current bot short description for the given user language. - -**Kind**: instance method of [TelegramBot](#TelegramBot) -**Returns**: Promise - Returns [BotShortDescription](https://core.telegram.org/bots/api#botshortdescription) on success. -**See**: https://core.telegram.org/bots/api#getmyshortdescription - -| Param | Type | Description | -| --- | --- | --- | -| [options] | Object | Additional Telegram query options | - - - -### telegramBot.setChatMenuButton([options]) ⇒ Promise -Use this method to change the bot's menu button in a private chat, or the default menu button. - -**Kind**: instance method of [TelegramBot](#TelegramBot) -**Returns**: Promise - True on success -**See**: https://core.telegram.org/bots/api#setchatmenubutton - -| Param | Type | Description | -| --- | --- | --- | -| [options] | Object | Additional Telegram query options | - - - -### telegramBot.getChatMenuButton([options]) ⇒ Promise -Use this method to get the current value of the bot's menu button in a private chat, or the default menu button. - -**Kind**: instance method of [TelegramBot](#TelegramBot) -**Returns**: Promise - [MenuButton](https://core.telegram.org/bots/api#menubutton) on success -**See**: https://core.telegram.org/bots/api#getchatmenubutton - -| Param | Type | Description | -| --- | --- | --- | -| [options] | Object | Additional Telegram query options | - - - -### telegramBot.setMyDefaultAdministratorRights([options]) ⇒ Promise -Use this method to change the default administrator rights requested by the bot when it's added as an administrator to groups or channels. - -These rights will be suggested to users, but they are are free to modify the list before adding the bot. - -**Kind**: instance method of [TelegramBot](#TelegramBot) -**Returns**: Promise - True on success -**See**: https://core.telegram.org/bots/api#getchatmenubutton - -| Param | Type | Description | -| --- | --- | --- | -| [options] | Object | Additional Telegram query options | - - - -### telegramBot.getMyDefaultAdministratorRights([options]) ⇒ Promise -Use this method to get the current default administrator rights of the bot. - -**Kind**: instance method of [TelegramBot](#TelegramBot) -**Returns**: Promise - [ChatAdministratorRights](https://core.telegram.org/bots/api#chatadministratorrights) on success -**See**: https://core.telegram.org/bots/api#getmydefaultadministratorrights - -| Param | Type | Description | -| --- | --- | --- | -| [options] | Object | Additional Telegram query options | - - - -### telegramBot.editMessageText(text, [options]) ⇒ Promise -Use this method to edit text or [game](https://core.telegram.org/bots/api#games) messages sent by the bot or via the bot (for inline bots). - -Note: that **you must provide one of chat_id, message_id, or inline_message_id** in your request. - -**Kind**: instance method of [TelegramBot](#TelegramBot) -**Returns**: Promise - On success, if the edited message is not an inline message, the edited [Message](https://core.telegram.org/bots/api#message) is returned, otherwise True is returned -**See**: https://core.telegram.org/bots/api#editmessagetext - -| Param | Type | Description | -| --- | --- | --- | -| text | String | New text of the message | -| [options] | Object | Additional Telegram query options (provide either one of chat_id, message_id, or inline_message_id here) | - - - -### telegramBot.editMessageCaption(caption, [options]) ⇒ Promise -Use this method to edit captions of messages sent by the bot or via the bot (for inline bots). - -Note: You **must provide one of chat_id, message_id, or inline_message_id** in your request. - -**Kind**: instance method of [TelegramBot](#TelegramBot) -**Returns**: Promise - On success, if the edited message is not an inline message, the edited [Message](https://core.telegram.org/bots/api#message) is returned, otherwise True is returned -**See**: https://core.telegram.org/bots/api#editmessagecaption - -| Param | Type | Description | -| --- | --- | --- | -| caption | String | New caption of the message | -| [options] | Object | Additional Telegram query options (provide either one of chat_id, message_id, or inline_message_id here) | - - - -### telegramBot.editMessageMedia(media, [options]) ⇒ Promise -Use this method to edit animation, audio, document, photo, or video messages. - -If a message is a part of a message album, then it can be edited only to a photo or a video. - -Otherwise, message type can be changed arbitrarily. When inline message is edited, new file can't be uploaded. -Use previously uploaded file via its file_id or specify a URL. - -Note: You **must provide one of chat_id, message_id, or inline_message_id** in your request. - -**Kind**: instance method of [TelegramBot](#TelegramBot) -**Returns**: Promise - On success, if the edited message is not an inline message, the edited [Message](https://core.telegram.org/bots/api#message) is returned, otherwise True is returned -**See**: https://core.telegram.org/bots/api#editmessagemedia - -| Param | Type | Description | -| --- | --- | --- | -| media | Object | A JSON-serialized object for a new media content of the message | -| [options] | Object | Additional Telegram query options (provide either one of chat_id, message_id, or inline_message_id here) | - - - -### telegramBot.editMessageReplyMarkup(replyMarkup, [options]) ⇒ Promise -Use this method to edit only the reply markup of messages sent by the bot or via the bot (for inline bots). - -Note: You **must provide one of chat_id, message_id, or inline_message_id** in your request. - -**Kind**: instance method of [TelegramBot](#TelegramBot) -**Returns**: Promise - On success, if the edited message is not an inline message, the edited [Message](https://core.telegram.org/bots/api#message) is returned, otherwise True is returned -**See**: https://core.telegram.org/bots/api#editmessagetext - -| Param | Type | Description | -| --- | --- | --- | -| replyMarkup | Object | A JSON-serialized object for an inline keyboard. | -| [options] | Object | Additional Telegram query options (provide either one of chat_id, message_id, or inline_message_id here) | - - - -### telegramBot.stopPoll(chatId, pollId, [options]) ⇒ Promise -Use this method to stop a poll which was sent by the bot. - -**Kind**: instance method of [TelegramBot](#TelegramBot) -**Returns**: Promise - On success, the stopped [Poll](https://core.telegram.org/bots/api#poll) is returned -**See**: https://core.telegram.org/bots/api#stoppoll - -| Param | Type | Description | -| --- | --- | --- | -| chatId | Number \| String | Unique identifier for the group/channel | -| pollId | Number | Identifier of the original message with the poll | -| [options] | Object | Additional Telegram query options | - - - -### telegramBot.sendSticker(chatId, sticker, [options], [fileOptions]) ⇒ Promise -Use this method to send static .WEBP, [animated](https://telegram.org/blog/animated-stickers) .TGS, -or [video](https://telegram.org/blog/video-stickers-better-reactions) .WEBM stickers. - -**Kind**: instance method of [TelegramBot](#TelegramBot) -**Returns**: Promise - On success, the sent [Message](https://core.telegram.org/bots/api#message) is returned -**See**: https://core.telegram.org/bots/api#sendsticker - -| Param | Type | Description | -| --- | --- | --- | -| chatId | Number \| String | Unique identifier for the target chat or username of the target channel (in the format `@channelusername`) | -| 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 | -| [fileOptions] | Object | Optional file related meta-data | - - - -### telegramBot.getStickerSet(name, [options]) ⇒ Promise -Use this method to get a sticker set. - -**Kind**: instance method of [TelegramBot](#TelegramBot) -**Returns**: Promise - On success, a [StickerSet](https://core.telegram.org/bots/api#stickerset) object is returned -**See**: https://core.telegram.org/bots/api#getstickerset - -| Param | Type | Description | -| --- | --- | --- | -| name | String | Name of the sticker set | -| [options] | Object | Additional Telegram query options | - - - -### telegramBot.getCustomEmojiStickers(custom_emoji_ids, [options]) ⇒ Promise -Use this method to get information about custom emoji stickers by their identifiers. - -**Kind**: instance method of [TelegramBot](#TelegramBot) -**Returns**: Promise - Array of [Sticker](https://core.telegram.org/bots/api#sticker) objects. -**See**: https://core.telegram.org/bots/api#getcustomemojistickers - -| Param | Type | Description | -| --- | --- | --- | -| custom_emoji_ids | Array | List of custom emoji identifiers. At most 200 custom emoji identifiers can be specified. | -| [options] | Object | Additional Telegram query options | - - - -### telegramBot.uploadStickerFile(userId, sticker, stickerFormat, [options], [fileOptions]) ⇒ Promise -Use this method to upload a file with a sticker for later use in *createNewStickerSet* and *addStickerToSet* methods (can be used multiple -times). - -**Kind**: instance method of [TelegramBot](#TelegramBot) -**Returns**: Promise - On success, a [File](https://core.telegram.org/bots/api#file) object is returned -**See**: https://core.telegram.org/bots/api#uploadstickerfile - -| Param | Type | Default | Description | -| --- | --- | --- | --- | -| userId | Number | | User identifier of sticker file owner | -| sticker | String \| stream.Stream \| Buffer | | A file path or a Stream with the sticker in .WEBP, .PNG, .TGS, or .WEBM format. Can also be a `file_id` previously uploaded. | -| stickerFormat | String | static | Allow values: `static`, `animated` or `video` | -| [options] | Object | | Additional Telegram query options | -| [fileOptions] | Object | | Optional file related meta-data | - - - -### telegramBot.createNewStickerSet(userId, name, title, pngSticker, emojis, [options], [fileOptions]) ⇒ Promise -Use this method to create new sticker set owned by a user. - -The bot will be able to edit the created sticker set. - -You must use exactly one of the fields *png_sticker*, *tgs_sticker*, or *webm_sticker* - -**Kind**: instance method of [TelegramBot](#TelegramBot) -**Returns**: Promise - True on success -**See**: https://core.telegram.org/bots/api#createnewstickerset - -| Param | Type | Description | -| --- | --- | --- | -| userId | Number | User identifier of created sticker set owner | -| name | String | Short name of sticker set, to be used in `t.me/addstickers/` URLs (e.g., *"animals"*). Can contain only english letters, digits and underscores. Must begin with a letter, can't contain consecutive underscores and must end in `"_by_"`. `` is case insensitive. 1-64 characters. | -| title | String | Sticker set title, 1-64 characters | -| pngSticker | String \| stream.Stream \| Buffer | Png image with the sticker, must be up to 512 kilobytes in size, dimensions must not exceed 512px, and either width or height must be exactly 512px. | -| emojis | String | One or more emoji corresponding to the sticker | -| [options] | Object | Additional Telegram query options | -| [fileOptions] | Object | Optional file related meta-data | - - - -### telegramBot.addStickerToSet(userId, name, sticker, emojis, stickerType, [options], [fileOptions]) ⇒ Promise -Use this method to add a new sticker to a set created by the bot. - -You must use exactly one of the fields *png_sticker*, *tgs_sticker*, or *webm_sticker* - -Animated stickers can be added to animated sticker sets and only to them - -Note: -- Emoji sticker sets can have up to 200 sticker -- Static or Animated sticker sets can have up to 120 stickers - -**Kind**: instance method of [TelegramBot](#TelegramBot) -**Returns**: Promise - True on success -**See**: https://core.telegram.org/bots/api#addstickertoset - -| Param | Type | Default | Description | -| --- | --- | --- | --- | -| userId | Number | | User identifier of sticker set owner | -| name | String | | Sticker set name | -| sticker | String \| stream.Stream \| Buffer | | Png image with the sticker (must be up to 512 kilobytes in size, dimensions must not exceed 512px, and either width or height must be exactly 512px, [TGS animation](https://core.telegram.org/stickers#animated-sticker-requirements) with the sticker or [WEBM video](https://core.telegram.org/stickers#video-sticker-requirements) with the sticker. | -| emojis | String | | One or more emoji corresponding to the sticker | -| stickerType | String | png_sticker | Allow values: `png_sticker`, `tgs_sticker`, or `webm_sticker`. | -| [options] | Object | | Additional Telegram query options | -| [fileOptions] | Object | | Optional file related meta-data | - - - -### telegramBot.setStickerPositionInSet(sticker, position, [options]) ⇒ Promise -Use this method to move a sticker in a set created by the bot to a specific position. - -**Kind**: instance method of [TelegramBot](#TelegramBot) -**Returns**: Promise - True on success -**See**: https://core.telegram.org/bots/api#setstickerpositioninset - -| Param | Type | Description | -| --- | --- | --- | -| sticker | String | File identifier of the sticker | -| position | Number | New sticker position in the set, zero-based | -| [options] | Object | Additional Telegram query options | - - - -### telegramBot.deleteStickerFromSet(sticker, [options]) ⇒ Promise -Use this method to delete a sticker from a set created by the bot. - -**Kind**: instance method of [TelegramBot](#TelegramBot) -**Returns**: Promise - True on success -**See**: https://core.telegram.org/bots/api#deletestickerfromset -**Todo** - -- [ ] Add tests for this method! - - -| Param | Type | Description | -| --- | --- | --- | -| sticker | String | File identifier of the sticker | -| [options] | Object | Additional Telegram query options | - - - -### telegramBot.replaceStickerInSet(user_id, name, sticker, [options]) ⇒ Promise -Use this method to replace an existing sticker in a sticker set with a new one - -**Kind**: instance method of [TelegramBot](#TelegramBot) -**Returns**: Promise - True on success -**See**: https://core.telegram.org/bots/api#replacestickerinset -**Todo** - -- [ ] Add tests for this method! - - -| Param | Type | Description | -| --- | --- | --- | -| user_id | Number | User identifier of the sticker set owner | -| name | String | Sticker set name | -| sticker | String | File identifier of the sticker | -| [options] | Object | Additional Telegram query options | - - - -### telegramBot.setStickerEmojiList(sticker, emojiList, [options]) ⇒ Promise -Use this method to change the list of emoji assigned to a regular or custom emoji sticker. - -The sticker must belong to a sticker set created by the bot. - -**Kind**: instance method of [TelegramBot](#TelegramBot) -**Returns**: Promise - True on success -**See**: https://core.telegram.org/bots/api#setstickeremojilist - -| Param | Type | Description | -| --- | --- | --- | -| sticker | String | File identifier of the sticker | -| emojiList | Array | A JSON-serialized list of 1-20 emoji associated with the sticker | -| [options] | Object | Additional Telegram query options | - - - -### telegramBot.setStickerKeywords(sticker, [options]) ⇒ Promise -Use this method to change the list of emoji assigned to a `regular` or `custom emoji` sticker. - -The sticker must belong to a sticker set created by the bot. - -**Kind**: instance method of [TelegramBot](#TelegramBot) -**Returns**: Promise - True on success -**See**: https://core.telegram.org/bots/api#setstickerkeywords - -| Param | Type | Description | -| --- | --- | --- | -| sticker | String | File identifier of the sticker | -| [options] | Object | Additional Telegram query options | - - - -### telegramBot.setStickerMaskPosition(sticker, [options]) ⇒ Promise -Use this method to change the [mask position](https://core.telegram.org/bots/api#maskposition) of a mask sticker. - -The sticker must belong to a sticker set created by the bot. - -**Kind**: instance method of [TelegramBot](#TelegramBot) -**Returns**: Promise - True on success -**See**: https://core.telegram.org/bots/api#setstickermaskposition - -| Param | Type | Description | -| --- | --- | --- | -| sticker | String | File identifier of the sticker | -| [options] | Object | Additional Telegram query options | - - - -### telegramBot.setStickerSetTitle(name, title, [options]) ⇒ Promise -Use this method to set the title of a created sticker set. - -The sticker must belong to a sticker set created by the bot. - -**Kind**: instance method of [TelegramBot](#TelegramBot) -**Returns**: Promise - True on success -**See**: https://core.telegram.org/bots/api#setstickersettitle - -| Param | Type | Description | -| --- | --- | --- | -| name | String | Sticker set name | -| title | String | Sticker set title, 1-64 characters | -| [options] | Object | Additional Telegram query options | - - - -### telegramBot.setStickerSetThumbnail(userId, name, thumbnail, [options], [fileOptions]) ⇒ Promise -Use this method to add a thumb to a set created by the bot. - -Animated thumbnails can be set for animated sticker sets only. Video thumbnails can be set only for video sticker sets only - -**Kind**: instance method of [TelegramBot](#TelegramBot) -**Returns**: Promise - True on success -**See**: https://core.telegram.org/bots/api#setstickersetthumbnail - -| Param | Type | Description | -| --- | --- | --- | -| userId | Number | User identifier of sticker set owner | -| name | String | Sticker set name | -| thumbnail | String \| stream.Stream \| Buffer | A .WEBP or .PNG image with the thumbnail, must be up to 128 kilobytes in size and have width and height exactly 100px, a TGS animation with the thumbnail up to 32 kilobytes in size or a WEBM video with the thumbnail up to 32 kilobytes in size. Pass a file_id as a String to send a file that already exists on the Telegram servers, pass an HTTP URL as a String for Telegram to get a file from the Internet, or upload a new one. Animated sticker set thumbnails can't be uploaded via HTTP URL. | -| [options] | Object | Additional Telegram query options | -| [fileOptions] | Object | Optional file related meta-data | - - - -### telegramBot.setCustomEmojiStickerSetThumbnail(name, [options]) ⇒ Promise -Use this method to set the thumbnail of a custom emoji sticker set. - -The sticker must belong to a sticker set created by the bot. - -**Kind**: instance method of [TelegramBot](#TelegramBot) -**Returns**: Promise - True on success -**See**: https://core.telegram.org/bots/api#setcustomemojistickersetthumbnail - -| Param | Type | Description | -| --- | --- | --- | -| name | String | Sticker set name | -| [options] | Object | Additional Telegram query options | - - - -### telegramBot.deleteStickerSet(name, [options]) ⇒ Promise -Use this method to delete a sticker set that was created by the bot. - -The sticker must belong to a sticker set created by the bot. - -**Kind**: instance method of [TelegramBot](#TelegramBot) -**Returns**: Promise - True on success -**See**: https://core.telegram.org/bots/api#deletestickerset - -| Param | Type | Description | -| --- | --- | --- | -| name | String | Sticker set name | -| [options] | Object | Additional Telegram query options | - - - -### telegramBot.answerInlineQuery(inlineQueryId, results, [options]) ⇒ Promise -Send answers to an inline query. - -Note: No more than 50 results per query are allowed. - -**Kind**: instance method of [TelegramBot](#TelegramBot) -**Returns**: Promise - On success, True is returned -**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 | - - - -### telegramBot.answerWebAppQuery(webAppQueryId, result, [options]) ⇒ Promise -Use this method to set the result of an interaction with a [Web App](https://core.telegram.org/bots/webapps) -and send a corresponding message on behalf of the user to the chat from which the query originated. - -**Kind**: instance method of [TelegramBot](#TelegramBot) -**Returns**: Promise - On success, a [SentWebAppMessage](https://core.telegram.org/bots/api#sentwebappmessage) object is returned -**See**: https://core.telegram.org/bots/api#answerwebappquery - -| Param | Type | Description | -| --- | --- | --- | -| webAppQueryId | String | Unique identifier for the query to be answered | -| result | InlineQueryResult | object that represents one result of an inline query | -| [options] | Object | Additional Telegram query options | - - - -### telegramBot.sendInvoice(chatId, title, description, payload, providerToken, currency, prices, [options]) ⇒ Promise -Use this method to send an invoice. - -**Kind**: instance method of [TelegramBot](#TelegramBot) -**Returns**: Promise - On success, the sent [Message](https://core.telegram.org/bots/api#message) is returned -**See**: https://core.telegram.org/bots/api#sendinvoice - -| Param | Type | Description | -| --- | --- | --- | -| chatId | Number \| String | Unique identifier for the target chat or username of the target channel (in the format `@channelusername`) | -| title | String | Product name, 1-32 characters | -| description | String | Product description, 1-255 characters | -| payload | String | Bot defined invoice payload, 1-128 bytes. This will not be displayed to the user, use for your internal processes. | -| providerToken | String | Payments provider token, obtained via `@BotFather` | -| currency | String | Three-letter ISO 4217 currency code | -| prices | Array | Breakdown of prices | -| [options] | Object | Additional Telegram query options | - - - -### telegramBot.createInvoiceLink(title, description, payload, providerToken, currency, prices, [options]) ⇒ Promise -Use this method to create a link for an invoice. - -**Kind**: instance method of [TelegramBot](#TelegramBot) -**Returns**: Promise - The created invoice link as String on success. -**See**: https://core.telegram.org/bots/api#createinvoicelink - -| Param | Type | Description | -| --- | --- | --- | -| title | String | Product name, 1-32 characters | -| description | String | Product description, 1-255 characters | -| payload | String | Bot defined invoice payload | -| providerToken | String | Payment provider token | -| currency | String | Three-letter ISO 4217 currency code | -| prices | Array | Breakdown of prices | -| [options] | Object | Additional Telegram query options | - - - -### telegramBot.answerShippingQuery(shippingQueryId, ok, [options]) ⇒ Promise -Use this method to reply to shipping queries. - -If you sent an invoice requesting a shipping address and the parameter is_flexible was specified, -the Bot API will send an [Update](https://core.telegram.org/bots/api#update) with a shipping_query field to the bot - -**Kind**: instance method of [TelegramBot](#TelegramBot) -**Returns**: Promise - On success, True is returned -**See**: https://core.telegram.org/bots/api#answershippingquery - -| Param | Type | Description | -| --- | --- | --- | -| shippingQueryId | String | Unique identifier for the query to be answered | -| ok | Boolean | Specify if delivery of the product is possible | -| [options] | Object | Additional Telegram query options | - - - -### telegramBot.answerPreCheckoutQuery(preCheckoutQueryId, ok, [options]) ⇒ Promise -Use this method to respond to such pre-checkout queries - -Once the user has confirmed their payment and shipping details, the Bot API sends the final confirmation in the form of -an [Update](https://core.telegram.org/bots/api#update) with the field *pre_checkout_query*. - -**Note:** The Bot API must receive an answer within 10 seconds after the pre-checkout query was sent. - -**Kind**: instance method of [TelegramBot](#TelegramBot) -**Returns**: Promise - On success, True is returned -**See**: https://core.telegram.org/bots/api#answerprecheckoutquery - -| Param | Type | Description | -| --- | --- | --- | -| preCheckoutQueryId | String | Unique identifier for the query to be answered | -| ok | Boolean | Specify if every order details are ok | -| [options] | Object | Additional Telegram query options | - - - -### telegramBot.getStarTransactions([options]) ⇒ Promise -Use this method for get the bot's Telegram Star transactions in chronological order - -**Kind**: instance method of [TelegramBot](#TelegramBot) -**Returns**: Promise - On success, returns a [StarTransactions](https://core.telegram.org/bots/api#startransactions) object -**See**: https://core.telegram.org/bots/api#getstartransactions - -| Param | Type | Description | -| --- | --- | --- | -| [options] | Object | Additional Telegram query options | - - - -### telegramBot.refundStarPayment(userId, telegramPaymentChargeId, [options]) ⇒ Promise -Use this method for refund a successful payment in [Telegram Stars](https://t.me/BotNews/90) - -**Kind**: instance method of [TelegramBot](#TelegramBot) -**Returns**: Promise - On success, True is returned -**See**: https://core.telegram.org/bots/api#refundstarpayment - -| Param | Type | Description | -| --- | --- | --- | -| userId | Number | Unique identifier of the user whose payment will be refunded | -| telegramPaymentChargeId | String | Telegram payment identifier | -| [options] | Object | Additional Telegram query options | - - - -### telegramBot.sendGame(chatId, gameShortName, [options]) ⇒ Promise -Use this method to send a game. - -**Kind**: instance method of [TelegramBot](#TelegramBot) -**Returns**: Promise - On success, the sent [Message](https://core.telegram.org/bots/api#message) is returned -**See**: https://core.telegram.org/bots/api#sendgame - -| Param | Type | Description | -| --- | --- | --- | -| chatId | Number \| String | Unique identifier for the target chat or username of the target channel (in the format `@channelusername`) | -| gameShortName | String | name of the game to be sent. Set up your games via `@BotFather`. | -| [options] | Object | Additional Telegram query options | - - - -### telegramBot.setGameScore(userId, score, [options]) ⇒ Promise -Use this method to set the score of the specified user in a game message. - -**Kind**: instance method of [TelegramBot](#TelegramBot) -**Returns**: Promise - On success, if the message is not an inline message, the [Message](https://core.telegram.org/bots/api#message) is returned, otherwise True is returned -**See**: https://core.telegram.org/bots/api#setgamescore - -| Param | Type | Description | -| --- | --- | --- | -| userId | Number | Unique identifier of the target user | -| score | Number | New score value, must be non-negative | -| [options] | Object | Additional Telegram query options | - - - -### telegramBot.getGameHighScores(userId, [options]) ⇒ Promise -Use this method to get data for high score tables. - -Will return the score of the specified user and several of their neighbors in a game. - -**Kind**: instance method of [TelegramBot](#TelegramBot) -**Returns**: Promise - On success, returns an Array of [GameHighScore](https://core.telegram.org/bots/api#gamehighscore) objects -**See**: https://core.telegram.org/bots/api#getgamehighscores - -| Param | Type | Description | -| --- | --- | --- | -| userId | Number | Unique identifier of the target user | -| [options] | Object | Additional Telegram query options | - - - -### telegramBot.deleteMessage(chatId, messageId, [options]) ⇒ Promise -Use this method to delete a message, including service messages, with the following limitations: -- A message can only be deleted if it was sent less than 48 hours ago. -- A dice message can only be deleted if it was sent more than 24 hours ago. -- Bots can delete outgoing messages in groups and supergroups. -- Bots can delete incoming messages in groups, supergroups and channels. -- Bots granted `can_post_messages` permissions can delete outgoing messages in channels. -- If the bot is an administrator of a group, it can delete any message there. -- If the bot has `can_delete_messages` permission in a supergroup, it can delete any message there. - -**Kind**: instance method of [TelegramBot](#TelegramBot) -**Returns**: Promise - True on success -**See**: https://core.telegram.org/bots/api#deletemessage - -| Param | Type | Description | -| --- | --- | --- | -| chatId | Number \| String | Unique identifier for the target chat or username of the target channel (in the format @channelusername) | -| messageId | Number | Unique identifier of the target message | -| [options] | Object | Additional Telegram query options | - - - -### telegramBot.deleteMessages(chatId, messageIds, [options]) ⇒ [ 'Promise' ].<Boolean> -Use this method to delete multiple messages simultaneously. If some of the specified messages can't be found, they are skipped. - -**Kind**: instance method of [TelegramBot](#TelegramBot) -**Returns**: [ 'Promise' ].<Boolean> - True on success -**See**: https://core.telegram.org/bots/api#deletemessages - -| Param | Type | Description | -| --- | --- | --- | -| chatId | Number \| String | Unique identifier for the target chat or username of the target channel (in the format @channelusername) | -| messageIds | [ 'Array' ].<(Number\|String)> | Identifiers of 1-100 messages to delete. See deleteMessage for limitations on which messages can be deleted | -| [options] | Object | Additional Telegram query options | - - - -### TelegramBot.errors : Object -The different errors the library uses. - -**Kind**: static property of [TelegramBot](#TelegramBot) - - -### TelegramBot.messageTypes : [ 'Array' ].<String> -The types of message updates the library handles. - -**Kind**: static property of [TelegramBot](#TelegramBot) -* * * - - -[usage-sending-files-performance]:https://github.com/yagop/node-telegram-bot-api/tree/master/doc/usage.md#sending-files-performance -[setWebHook-v0.25.0]:https://github.com/yagop/node-telegram-bot-api/tree/4e5a493cadfaad5589a8d79e55d9e0d103000ce4#telegrambotsetwebhookurl-cert -[getUpdates-v0.25.0]:https://github.com/yagop/node-telegram-bot-api/tree/4e5a493cadfaad5589a8d79e55d9e0d103000ce4#TelegramBot+getUpdates -[getUserProfilePhotos-v0.25.0]:https://github.com/yagop/node-telegram-bot-api/tree/4e5a493cadfaad5589a8d79e55d9e0d103000ce4#TelegramBot+getUserProfilePhotos -[answerCallbackQuery-v0.27.1]:https://github.com/yagop/node-telegram-bot-api/blob/v0.27.1/doc/api.md#TelegramBot+answerCallbackQuery -[answerCallbackQuery-v0.29.0]:https://github.com/yagop/node-telegram-bot-api/blob/v0.29.0/doc/api.md#TelegramBot+answerCallbackQuery +# API Reference + +**Note:** If you are looking for available [events](usage.md#events) or usage of api, please refer [`usage.md`](usage.md). + + + +## TelegramBot +TelegramBot + +**Kind**: global class +**See**: https://core.telegram.org/bots/api + +* [TelegramBot](#TelegramBot) + * [new TelegramBot(token, [options])](#new_TelegramBot_new) + * _instance_ + * [.on(event, listener)](#TelegramBot+on) + * [.startPolling([options])](#TelegramBot+startPolling) ⇒ Promise + * ~~[.initPolling([options])](#TelegramBot+initPolling) ⇒ Promise~~ + * [.stopPolling([options])](#TelegramBot+stopPolling) ⇒ Promise + * [.getFileLink(fileId, [options])](#TelegramBot+getFileLink) ⇒ Promise + * [.getFileStream(fileId, [options])](#TelegramBot+getFileStream) ⇒ stream.Readable + * [.downloadFile(fileId, downloadDir, [options])](#TelegramBot+downloadFile) ⇒ Promise + * [.onText(regexpRexecuted, callback)](#TelegramBot+onText) + * [.removeTextListener(regexp)](#TelegramBot+removeTextListener) ⇒ Object + * [.clearTextListeners()](#TelegramBot+clearTextListeners) + * [.onReplyToMessage(chatId, messageId, callback)](#TelegramBot+onReplyToMessage) ⇒ Number + * [.removeReplyListener(replyListenerId)](#TelegramBot+removeReplyListener) ⇒ Object + * [.clearReplyListeners()](#TelegramBot+clearReplyListeners) ⇒ Array + * [.isPolling()](#TelegramBot+isPolling) ⇒ Boolean + * [.openWebHook()](#TelegramBot+openWebHook) ⇒ Promise + * [.closeWebHook()](#TelegramBot+closeWebHook) ⇒ Promise + * [.hasOpenWebHook()](#TelegramBot+hasOpenWebHook) ⇒ Boolean + * [.processUpdate(update)](#TelegramBot+processUpdate) + * [.getUpdates([options])](#TelegramBot+getUpdates) ⇒ Promise + * [.setWebHook(url, [options], [fileOptions])](#TelegramBot+setWebHook) ⇒ Promise + * [.deleteWebHook([options])](#TelegramBot+deleteWebHook) ⇒ Promise + * [.getWebHookInfo([options])](#TelegramBot+getWebHookInfo) ⇒ Promise + * [.getMe([options])](#TelegramBot+getMe) ⇒ Promise + * [.logOut([options])](#TelegramBot+logOut) ⇒ Promise + * [.close([options])](#TelegramBot+close) ⇒ Promise + * [.sendMessage(chatId, text, [options])](#TelegramBot+sendMessage) ⇒ Promise + * [.forwardMessage(chatId, fromChatId, messageId, [options])](#TelegramBot+forwardMessage) ⇒ Promise + * [.forwardMessages(chatId, fromChatId, messageIds, [options])](#TelegramBot+forwardMessages) ⇒ Promise + * [.copyMessage(chatId, fromChatId, messageId, [options])](#TelegramBot+copyMessage) ⇒ Promise + * [.copyMessages(chatId, fromChatId, messageIds, [options])](#TelegramBot+copyMessages) ⇒ Promise + * [.sendPhoto(chatId, photo, [options], [fileOptions])](#TelegramBot+sendPhoto) ⇒ Promise + * [.sendAudio(chatId, audio, [options], [fileOptions])](#TelegramBot+sendAudio) ⇒ Promise + * [.sendDocument(chatId, doc, [options], [fileOptions])](#TelegramBot+sendDocument) ⇒ Promise + * [.sendVideo(chatId, video, [options], [fileOptions])](#TelegramBot+sendVideo) ⇒ Promise + * [.sendAnimation(chatId, animation, [options], [fileOptions])](#TelegramBot+sendAnimation) ⇒ Promise + * [.sendVoice(chatId, voice, [options], [fileOptions])](#TelegramBot+sendVoice) ⇒ Promise + * [.sendVideoNote(chatId, videoNote, [options], [fileOptions])](#TelegramBot+sendVideoNote) ⇒ Promise + * [.sendPaidMedia(chatId, starCount, media, [options])](#TelegramBot+sendPaidMedia) ⇒ Promise + * [.sendMediaGroup(chatId, media, [options])](#TelegramBot+sendMediaGroup) ⇒ Promise + * [.sendLocation(chatId, latitude, longitude, [options])](#TelegramBot+sendLocation) ⇒ Promise + * [.editMessageLiveLocation(latitude, longitude, [options])](#TelegramBot+editMessageLiveLocation) ⇒ Promise + * [.stopMessageLiveLocation([options])](#TelegramBot+stopMessageLiveLocation) ⇒ Promise + * [.sendVenue(chatId, latitude, longitude, title, address, [options])](#TelegramBot+sendVenue) ⇒ Promise + * [.sendContact(chatId, phoneNumber, firstName, [options])](#TelegramBot+sendContact) ⇒ Promise + * [.sendPoll(chatId, question, pollOptions, [options])](#TelegramBot+sendPoll) ⇒ Promise + * [.sendDice(chatId, [options])](#TelegramBot+sendDice) ⇒ Promise + * [.sendChatAction(chatId, action, [options])](#TelegramBot+sendChatAction) ⇒ Promise + * [.setMessageReaction(chatId, messageId, [options])](#TelegramBot+setMessageReaction) ⇒ [ 'Promise' ].<Boolean> + * [.getUserProfilePhotos(userId, [options])](#TelegramBot+getUserProfilePhotos) ⇒ Promise + * [.getFile(fileId, [options])](#TelegramBot+getFile) ⇒ Promise + * [.banChatMember(chatId, userId, [options])](#TelegramBot+banChatMember) ⇒ Promise + * [.unbanChatMember(chatId, userId, [options])](#TelegramBot+unbanChatMember) ⇒ Promise + * [.restrictChatMember(chatId, userId, [options])](#TelegramBot+restrictChatMember) ⇒ Promise + * [.promoteChatMember(chatId, userId, [options])](#TelegramBot+promoteChatMember) ⇒ Promise + * [.setChatAdministratorCustomTitle(chatId, userId, customTitle, [options])](#TelegramBot+setChatAdministratorCustomTitle) ⇒ Promise + * [.banChatSenderChat(chatId, senderChatId, [options])](#TelegramBot+banChatSenderChat) ⇒ Promise + * [.unbanChatSenderChat(chatId, senderChatId, [options])](#TelegramBot+unbanChatSenderChat) ⇒ Promise + * [.setChatPermissions(chatId, chatPermissions, [options])](#TelegramBot+setChatPermissions) ⇒ Promise + * [.exportChatInviteLink(chatId, [options])](#TelegramBot+exportChatInviteLink) ⇒ Promise + * [.createChatInviteLink(chatId, [options])](#TelegramBot+createChatInviteLink) ⇒ Object + * [.editChatInviteLink(chatId, inviteLink, [options])](#TelegramBot+editChatInviteLink) ⇒ Promise + * [.createChatSubscriptionInviteLink(chatId, subscriptionPeriod, subscriptionPrice, [options])](#TelegramBot+createChatSubscriptionInviteLink) ⇒ Promise + * [.editChatSubscriptionInviteLink(chatId, inviteLink, [options])](#TelegramBot+editChatSubscriptionInviteLink) ⇒ Promise + * [.revokeChatInviteLink(chatId, inviteLink, [options])](#TelegramBot+revokeChatInviteLink) ⇒ Promise + * [.approveChatJoinRequest(chatId, userId, [options])](#TelegramBot+approveChatJoinRequest) ⇒ Promise + * [.declineChatJoinRequest(chatId, userId, [options])](#TelegramBot+declineChatJoinRequest) ⇒ Promise + * [.setChatPhoto(chatId, photo, [options], [fileOptions])](#TelegramBot+setChatPhoto) ⇒ Promise + * [.deleteChatPhoto(chatId, [options])](#TelegramBot+deleteChatPhoto) ⇒ Promise + * [.setChatTitle(chatId, title, [options])](#TelegramBot+setChatTitle) ⇒ Promise + * [.setChatDescription(chatId, description, [options])](#TelegramBot+setChatDescription) ⇒ Promise + * [.pinChatMessage(chatId, messageId, [options])](#TelegramBot+pinChatMessage) ⇒ Promise + * [.unpinChatMessage(chatId, [options])](#TelegramBot+unpinChatMessage) ⇒ Promise + * [.unpinAllChatMessages(chatId, [options])](#TelegramBot+unpinAllChatMessages) ⇒ Promise + * [.leaveChat(chatId, [options])](#TelegramBot+leaveChat) ⇒ Promise + * [.getChat(chatId, [options])](#TelegramBot+getChat) ⇒ Promise + * [.getChatAdministrators(chatId, [options])](#TelegramBot+getChatAdministrators) ⇒ Promise + * [.getChatMemberCount(chatId, [options])](#TelegramBot+getChatMemberCount) ⇒ Promise + * [.getChatMember(chatId, userId, [options])](#TelegramBot+getChatMember) ⇒ Promise + * [.setChatStickerSet(chatId, stickerSetName, [options])](#TelegramBot+setChatStickerSet) ⇒ Promise + * [.deleteChatStickerSet(chatId, [options])](#TelegramBot+deleteChatStickerSet) ⇒ Promise + * [.getForumTopicIconStickers(chatId, [options])](#TelegramBot+getForumTopicIconStickers) ⇒ Promise + * [.createForumTopic(chatId, name, [options])](#TelegramBot+createForumTopic) + * [.editForumTopic(chatId, messageThreadId, [options])](#TelegramBot+editForumTopic) ⇒ Promise + * [.closeForumTopic(chatId, messageThreadId, [options])](#TelegramBot+closeForumTopic) ⇒ Promise + * [.reopenForumTopic(chatId, messageThreadId, [options])](#TelegramBot+reopenForumTopic) ⇒ Promise + * [.deleteForumTopic(chatId, messageThreadId, [options])](#TelegramBot+deleteForumTopic) ⇒ Promise + * [.unpinAllForumTopicMessages(chatId, messageThreadId, [options])](#TelegramBot+unpinAllForumTopicMessages) ⇒ Promise + * [.editGeneralForumTopic(chatId, name, [options])](#TelegramBot+editGeneralForumTopic) ⇒ Promise + * [.closeGeneralForumTopic(chatId, [options])](#TelegramBot+closeGeneralForumTopic) ⇒ Promise + * [.reopenGeneralForumTopic(chatId, [options])](#TelegramBot+reopenGeneralForumTopic) ⇒ Promise + * [.hideGeneralForumTopic(chatId, [options])](#TelegramBot+hideGeneralForumTopic) ⇒ Promise + * [.unhideGeneralForumTopic(chatId, [options])](#TelegramBot+unhideGeneralForumTopic) ⇒ Promise + * [.unpinAllGeneralForumTopicMessages(chatId, [options])](#TelegramBot+unpinAllGeneralForumTopicMessages) ⇒ Promise + * [.answerCallbackQuery(callbackQueryId, [options])](#TelegramBot+answerCallbackQuery) ⇒ Promise + * [.savePreparedInlineMessage(userId, result, [form])](#TelegramBot+savePreparedInlineMessage) ⇒ Promise + * [.getUserChatBoosts(chatId, userId, [options])](#TelegramBot+getUserChatBoosts) ⇒ Promise + * [.getBusinessConnection(businessConnectionId, [options])](#TelegramBot+getBusinessConnection) ⇒ Promise + * [.setMyCommands(commands, [options])](#TelegramBot+setMyCommands) ⇒ Promise + * [.deleteMyCommands([options])](#TelegramBot+deleteMyCommands) ⇒ Promise + * [.getMyCommands([options])](#TelegramBot+getMyCommands) ⇒ Promise + * [.setMyName([options])](#TelegramBot+setMyName) ⇒ Promise + * [.getMyName([options])](#TelegramBot+getMyName) ⇒ Promise + * [.setMyDescription([options])](#TelegramBot+setMyDescription) ⇒ Promise + * [.getMyDescription([options])](#TelegramBot+getMyDescription) ⇒ Promise + * [.setMyShortDescription([options])](#TelegramBot+setMyShortDescription) ⇒ Promise + * [.getMyShortDescription([options])](#TelegramBot+getMyShortDescription) ⇒ Promise + * [.setChatMenuButton([options])](#TelegramBot+setChatMenuButton) ⇒ Promise + * [.getChatMenuButton([options])](#TelegramBot+getChatMenuButton) ⇒ Promise + * [.setMyDefaultAdministratorRights([options])](#TelegramBot+setMyDefaultAdministratorRights) ⇒ Promise + * [.getMyDefaultAdministratorRights([options])](#TelegramBot+getMyDefaultAdministratorRights) ⇒ Promise + * [.editMessageText(text, [options])](#TelegramBot+editMessageText) ⇒ Promise + * [.editMessageCaption(caption, [options])](#TelegramBot+editMessageCaption) ⇒ Promise + * [.editMessageMedia(media, [options])](#TelegramBot+editMessageMedia) ⇒ Promise + * [.editMessageReplyMarkup(replyMarkup, [options])](#TelegramBot+editMessageReplyMarkup) ⇒ Promise + * [.stopPoll(chatId, pollId, [options])](#TelegramBot+stopPoll) ⇒ Promise + * [.sendSticker(chatId, sticker, [options], [fileOptions])](#TelegramBot+sendSticker) ⇒ Promise + * [.getStickerSet(name, [options])](#TelegramBot+getStickerSet) ⇒ Promise + * [.getCustomEmojiStickers(custom_emoji_ids, [options])](#TelegramBot+getCustomEmojiStickers) ⇒ Promise + * [.uploadStickerFile(userId, sticker, stickerFormat, [options], [fileOptions])](#TelegramBot+uploadStickerFile) ⇒ Promise + * [.createNewStickerSet(userId, name, title, pngSticker, emojis, [options], [fileOptions])](#TelegramBot+createNewStickerSet) ⇒ Promise + * [.addStickerToSet(userId, name, sticker, emojis, stickerType, [options], [fileOptions])](#TelegramBot+addStickerToSet) ⇒ Promise + * [.setStickerPositionInSet(sticker, position, [options])](#TelegramBot+setStickerPositionInSet) ⇒ Promise + * [.deleteStickerFromSet(sticker, [options])](#TelegramBot+deleteStickerFromSet) ⇒ Promise + * [.replaceStickerInSet(user_id, name, sticker, [options])](#TelegramBot+replaceStickerInSet) ⇒ Promise + * [.setStickerEmojiList(sticker, emojiList, [options])](#TelegramBot+setStickerEmojiList) ⇒ Promise + * [.setStickerKeywords(sticker, [options])](#TelegramBot+setStickerKeywords) ⇒ Promise + * [.setStickerMaskPosition(sticker, [options])](#TelegramBot+setStickerMaskPosition) ⇒ Promise + * [.setStickerSetTitle(name, title, [options])](#TelegramBot+setStickerSetTitle) ⇒ Promise + * [.setStickerSetThumbnail(userId, name, thumbnail, [options], [fileOptions])](#TelegramBot+setStickerSetThumbnail) ⇒ Promise + * [.setCustomEmojiStickerSetThumbnail(name, [options])](#TelegramBot+setCustomEmojiStickerSetThumbnail) ⇒ Promise + * [.deleteStickerSet(name, [options])](#TelegramBot+deleteStickerSet) ⇒ Promise + * [.answerInlineQuery(inlineQueryId, results, [options])](#TelegramBot+answerInlineQuery) ⇒ Promise + * [.answerWebAppQuery(webAppQueryId, result, [options])](#TelegramBot+answerWebAppQuery) ⇒ Promise + * [.sendInvoice(chatId, title, description, payload, providerToken, currency, prices, [options])](#TelegramBot+sendInvoice) ⇒ Promise + * [.createInvoiceLink(title, description, payload, providerToken, currency, prices, [options])](#TelegramBot+createInvoiceLink) ⇒ Promise + * [.answerShippingQuery(shippingQueryId, ok, [options])](#TelegramBot+answerShippingQuery) ⇒ Promise + * [.answerPreCheckoutQuery(preCheckoutQueryId, ok, [options])](#TelegramBot+answerPreCheckoutQuery) ⇒ Promise + * [.getStarTransactions([options])](#TelegramBot+getStarTransactions) ⇒ Promise + * [.refundStarPayment(userId, telegramPaymentChargeId, [options])](#TelegramBot+refundStarPayment) ⇒ Promise + * [.sendGame(chatId, gameShortName, [options])](#TelegramBot+sendGame) ⇒ Promise + * [.setGameScore(userId, score, [options])](#TelegramBot+setGameScore) ⇒ Promise + * [.getGameHighScores(userId, [options])](#TelegramBot+getGameHighScores) ⇒ Promise + * [.deleteMessage(chatId, messageId, [options])](#TelegramBot+deleteMessage) ⇒ Promise + * [.deleteMessages(chatId, messageIds, [options])](#TelegramBot+deleteMessages) ⇒ [ 'Promise' ].<Boolean> + * _static_ + * [.errors](#TelegramBot.errors) : Object + * [.messageTypes](#TelegramBot.messageTypes) : [ 'Array' ].<String> + + + +### new TelegramBot(token, [options]) +Both request method to obtain messages are implemented. To use standard polling, set `polling: true` +on `options`. Notice that [webHook](https://core.telegram.org/bots/api#setwebhook) 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. If a WebHook has been set, it will be deleted automatically. | +| [options.polling.timeout] | String \| Number | 10 | *Deprecated. Use `options.polling.params` instead*. Timeout in seconds for long polling. | +| [options.testEnvironment] | Boolean | false | Set true to work with test enviroment. When working with the test environment, you may use HTTP links without TLS to test your Web App. | +| [options.polling.interval] | String \| Number | 300 | Interval between requests in miliseconds | +| [options.polling.autoStart] | Boolean | true | Start polling immediately | +| [options.polling.params] | Object | | Parameters to be used in polling API requests. See https://core.telegram.org/bots/api#getupdates for more information. | +| [options.polling.params.timeout] | Number | 10 | Timeout in seconds for long polling. | +| [options.webHook] | Boolean \| Object | false | Set true to enable WebHook or set options | +| [options.webHook.host] | String | "0.0.0.0" | Host to bind to | +| [options.webHook.port] | Number | 8443 | Port to bind to | +| [options.webHook.key] | String | | Path to file with PEM private key for webHook server. The file is read **synchronously**! | +| [options.webHook.cert] | String | | Path to file with PEM certificate (public) for webHook server. The file is read **synchronously**! | +| [options.webHook.pfx] | String | | Path to file with PFX private key and certificate chain for webHook server. The file is read **synchronously**! | +| [options.webHook.autoOpen] | Boolean | true | Open webHook immediately | +| [options.webHook.https] | Object | | Options to be passed to `https.createServer()`. Note that `options.webHook.key`, `options.webHook.cert` and `options.webHook.pfx`, if provided, will be used to override `key`, `cert` and `pfx` in this object, respectively. See https://nodejs.org/api/https.html#https_https_createserver_options_requestlistener for more information. | +| [options.webHook.healthEndpoint] | String | "/healthz" | An endpoint for health checks that always responds with 200 OK | +| [options.onlyFirstMatch] | Boolean | false | Set to true to stop after first match. Otherwise, all regexps are executed | +| [options.request] | Object | | Options which will be added for all requests to telegram api. See https://github.com/request/request#requestoptions-callback for more information. | +| [options.baseApiUrl] | String | "https://api.telegram.org" | API Base URl; useful for proxying and testing | +| [options.filepath] | Boolean | true | Allow passing file-paths as arguments when sending files, such as photos using `TelegramBot#sendPhoto()`. See [usage information][usage-sending-files-performance] for more information on this option and its consequences. | +| [options.badRejection] | Boolean | false | Set to `true` **if and only if** the Node.js version you're using terminates the process on unhandled rejections. This option is only for *forward-compatibility purposes*. | + + + +### telegramBot.on(event, listener) +Add listener for the specified [event](https://github.com/yagop/node-telegram-bot-api/blob/master/doc/usage.md#events). +This is the usual `emitter.on()` method. + +**Kind**: instance method of [TelegramBot](#TelegramBot) +**See** + +- [Available events](https://github.com/yagop/node-telegram-bot-api/blob/master/doc/usage.md#events) +- https://nodejs.org/api/events.html#events_emitter_on_eventname_listener + + +| Param | Type | +| --- | --- | +| event | String | +| listener | function | + + + +### telegramBot.startPolling([options]) ⇒ Promise +Start polling. +Rejects returned promise if a WebHook is being used by this instance. + +**Kind**: instance method of [TelegramBot](#TelegramBot) + +| Param | Type | Default | Description | +| --- | --- | --- | --- | +| [options] | Object | | | +| [options.restart] | Boolean | true | Consecutive calls to this method causes polling to be restarted | + + + +### ~~telegramBot.initPolling([options]) ⇒ Promise~~ +***Deprecated*** + +Alias of `TelegramBot#startPolling()`. This is **deprecated**. + +**Kind**: instance method of [TelegramBot](#TelegramBot) + +| Param | Type | +| --- | --- | +| [options] | Object | + + + +### telegramBot.stopPolling([options]) ⇒ Promise +Stops polling after the last polling request resolves. +Multiple invocations do nothing if polling is already stopped. +Returning the promise of the last polling request is **deprecated**. + +**Kind**: instance method of [TelegramBot](#TelegramBot) + +| Param | Type | Description | +| --- | --- | --- | +| [options] | Object | Options | +| [options.cancel] | Boolean | Cancel current request | +| [options.reason] | String | Reason for stopping polling | + + + +### telegramBot.getFileLink(fileId, [options]) ⇒ Promise +Get 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](#TelegramBot) +**Returns**: 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 | +| [options] | Object | Additional Telegram query options | + + + +### telegramBot.getFileStream(fileId, [options]) ⇒ stream.Readable +Return a readable stream for file. + +`fileStream.path` is the specified file ID i.e. `fileId`. +`fileStream` emits event `info` passing a single argument i.e. +`info` with the interface `{ uri }` where `uri` is the URI of the +file on Telegram servers. + +This method is a sugar extension of the [getFileLink](#TelegramBot+getFileLink) method, +which returns the full URI to the file on remote server. + +**Kind**: instance method of [TelegramBot](#TelegramBot) +**Returns**: stream.Readable - fileStream + +| Param | Type | Description | +| --- | --- | --- | +| fileId | String | File identifier to get info about | +| [options] | Object | Additional Telegram query options | + + + +### telegramBot.downloadFile(fileId, downloadDir, [options]) ⇒ Promise +Downloads file in the specified folder. + +This method is a sugar extension of the [getFileStream](#TelegramBot+getFileStream) method, +which returns a readable file stream. + +**Kind**: instance method of [TelegramBot](#TelegramBot) +**Returns**: 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 | +| [options] | Object | Additional Telegram query options | + + + +### telegramBot.onText(regexpRexecuted, callback) +Register a RegExp to test against an incomming text message. + +**Kind**: instance method of [TelegramBot](#TelegramBot) + +| Param | Type | Description | +| --- | --- | --- | +| regexpRexecuted | RegExp | with `exec`. | +| callback | function | Callback will be called with 2 parameters, the `msg` and the result of executing `regexp.exec` on message text. | + + + +### telegramBot.removeTextListener(regexp) ⇒ Object +Remove a listener registered with `onText()`. + +**Kind**: instance method of [TelegramBot](#TelegramBot) +**Returns**: Object - deletedListener The removed reply listener if + found. This object has `regexp` and `callback` + properties. If not found, returns `null`. + +| Param | Type | Description | +| --- | --- | --- | +| regexp | RegExp | RegExp used previously in `onText()` | + + + +### telegramBot.clearTextListeners() +Remove all listeners registered with `onText()`. + +**Kind**: instance method of [TelegramBot](#TelegramBot) + + +### telegramBot.onReplyToMessage(chatId, messageId, callback) ⇒ Number +Register a reply to wait for a message response. + +**Kind**: instance method of [TelegramBot](#TelegramBot) +**Returns**: Number - id The ID of the inserted reply listener. + +| 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. | + + + +### telegramBot.removeReplyListener(replyListenerId) ⇒ Object +Removes a reply that has been prev. registered for a message response. + +**Kind**: instance method of [TelegramBot](#TelegramBot) +**Returns**: Object - deletedListener The removed reply listener if + found. This object has `id`, `chatId`, `messageId` and `callback` + properties. If not found, returns `null`. + +| Param | Type | Description | +| --- | --- | --- | +| replyListenerId | Number | The ID of the reply listener. | + + + +### telegramBot.clearReplyListeners() ⇒ Array +Removes all replies that have been prev. registered for a message response. + +**Kind**: instance method of [TelegramBot](#TelegramBot) +**Returns**: Array - deletedListeners An array of removed listeners. + + +### telegramBot.isPolling() ⇒ Boolean +Return true if polling. Otherwise, false. + +**Kind**: instance method of [TelegramBot](#TelegramBot) + + +### telegramBot.openWebHook() ⇒ Promise +Open webhook. +Multiple invocations do nothing if webhook is already open. +Rejects returned promise if Polling is being used by this instance. + +**Kind**: instance method of [TelegramBot](#TelegramBot) + + +### telegramBot.closeWebHook() ⇒ Promise +Close webhook after closing all current connections. +Multiple invocations do nothing if webhook is already closed. + +**Kind**: instance method of [TelegramBot](#TelegramBot) +**Returns**: Promise - Promise + + +### telegramBot.hasOpenWebHook() ⇒ Boolean +Return true if using webhook and it is open i.e. accepts connections. +Otherwise, false. + +**Kind**: instance method of [TelegramBot](#TelegramBot) + + +### telegramBot.processUpdate(update) +Process an update; emitting the proper events and executing regexp +callbacks. This method is useful should you be using a different +way to fetch updates, other than those provided by TelegramBot. + +**Kind**: instance method of [TelegramBot](#TelegramBot) +**See**: https://core.telegram.org/bots/api#update + +| Param | Type | +| --- | --- | +| update | Object | + + + +### telegramBot.getUpdates([options]) ⇒ Promise +Use this method to receive incoming updates using long polling. +This method has an [older, compatible signature][getUpdates-v0.25.0] +that is being deprecated. + +**Kind**: instance method of [TelegramBot](#TelegramBot) +**See**: https://core.telegram.org/bots/api#getupdates + +| Param | Type | Description | +| --- | --- | --- | +| [options] | Object | Additional Telegram query options | + + + +### telegramBot.setWebHook(url, [options], [fileOptions]) ⇒ Promise +Specify an url to receive incoming updates via an outgoing webHook. +This method has an [older, compatible signature][setWebHook-v0.25.0] +that is being deprecated. + +**Kind**: instance method of [TelegramBot](#TelegramBot) +**See** + +- https://core.telegram.org/bots/api#setwebhook +- https://github.com/yagop/node-telegram-bot-api/blob/master/doc/usage.md#sending-files + + +| Param | Type | Description | +| --- | --- | --- | +| url | String | URL where Telegram will make HTTP Post. Leave empty to delete webHook. | +| [options] | Object | Additional Telegram query options | +| [options.certificate] | String \| stream.Stream | PEM certificate key (public). | +| [options.secret_token] | String | Optional secret token to be sent in a header `X-Telegram-Bot-Api-Secret-Token` in every webhook request. | +| [fileOptions] | Object | Optional file related meta-data | + + + +### telegramBot.deleteWebHook([options]) ⇒ Promise +Use this method to remove webhook integration if you decide to +switch back to getUpdates. Returns True on success. + +**Kind**: instance method of [TelegramBot](#TelegramBot) +**See**: https://core.telegram.org/bots/api#deletewebhook + +| Param | Type | Description | +| --- | --- | --- | +| [options] | Object | Additional Telegram query options | + + + +### telegramBot.getWebHookInfo([options]) ⇒ Promise +Use this method to get current webhook status. +On success, returns a [WebhookInfo](https://core.telegram.org/bots/api#webhookinfo) object. +If the bot is using getUpdates, will return an object with the +url field empty. + +**Kind**: instance method of [TelegramBot](#TelegramBot) +**See**: https://core.telegram.org/bots/api#getwebhookinfo + +| Param | Type | Description | +| --- | --- | --- | +| [options] | Object | Additional Telegram query options | + + + +### telegramBot.getMe([options]) ⇒ Promise +A simple method for testing your bot's authentication token. Requires no parameters. + +**Kind**: instance method of [TelegramBot](#TelegramBot) +**Returns**: Promise - basic information about the bot in form of a [User](https://core.telegram.org/bots/api#user) object. +**See**: https://core.telegram.org/bots/api#getme + +| Param | Type | Description | +| --- | --- | --- | +| [options] | Object | Additional Telegram query options | + + + +### telegramBot.logOut([options]) ⇒ Promise +This method log out your bot from the cloud Bot API server before launching the bot locally. +You must log out the bot before running it locally, otherwise there is no guarantee that the bot will receive updates. +After a successful call, you will not be able to log in again using the same token for 10 minutes. + +**Kind**: instance method of [TelegramBot](#TelegramBot) +**Returns**: Promise - True on success +**See**: https://core.telegram.org/bots/api#logout + +| Param | Type | Description | +| --- | --- | --- | +| [options] | Object | Additional Telegram query options | + + + +### telegramBot.close([options]) ⇒ Promise +This method close the bot instance before moving it from one local server to another. +This method will return error 429 in the first 10 minutes after the bot is launched. + +**Kind**: instance method of [TelegramBot](#TelegramBot) +**Returns**: Promise - True on success +**See**: https://core.telegram.org/bots/api#close + +| Param | Type | Description | +| --- | --- | --- | +| [options] | Object | Additional Telegram query options | + + + +### telegramBot.sendMessage(chatId, text, [options]) ⇒ Promise +Send text message. + +**Kind**: instance method of [TelegramBot](#TelegramBot) +**Returns**: Promise - On success, the sent [Message](https://core.telegram.org/bots/api#message) object is returned +**See**: https://core.telegram.org/bots/api#sendmessage + +| Param | Type | Description | +| --- | --- | --- | +| chatId | Number \| String | Unique identifier for the target chat or username of the target channel (in the format `@channelusername`) | +| text | String | Text of the message to be sent | +| [options] | Object | Additional Telegram query options | + + + +### telegramBot.forwardMessage(chatId, fromChatId, messageId, [options]) ⇒ Promise +Forward messages of any kind. + +**Kind**: instance method of [TelegramBot](#TelegramBot) +**See**: https://core.telegram.org/bots/api#forwardmessage + +| Param | Type | Description | +| --- | --- | --- | +| chatId | Number \| String | Unique identifier for the target chat or username of the target channel (in the format `@channelusername`) or username of the target channel (in the format `@channelusername`) | +| fromChatId | Number \| String | Unique identifier for the chat where the original message was sent (or channel username in the format `@channelusername`) | +| messageId | Number \| String | Unique message identifier in the chat specified in fromChatId | +| [options] | Object | Additional Telegram query options | + + + +### telegramBot.forwardMessages(chatId, fromChatId, messageIds, [options]) ⇒ Promise +Use this method to forward multiple messages of any kind. +If some of the specified messages can't be found or forwarded, they are skipped. + +**Kind**: instance method of [TelegramBot](#TelegramBot) +**Returns**: Promise - An array of MessageId of the sent messages on success +**See**: https://core.telegram.org/bots/api#forwardmessages + +| Param | Type | Description | +| --- | --- | --- | +| chatId | Number \| String | Unique identifier for the target chat or username of the target channel (in the format `@channelusername`) or username of the target channel (in the format `@channelusername`) | +| fromChatId | Number \| String | Unique identifier for the chat where the original message was sent (or channel username in the format `@channelusername`) | +| messageIds | [ 'Array' ].<(Number\|String)> | Identifiers of 1-100 messages in the chat from_chat_id to forward. The identifiers must be specified in a strictly increasing order. | +| [options] | Object | Additional Telegram query options | + + + +### telegramBot.copyMessage(chatId, fromChatId, messageId, [options]) ⇒ Promise +Copy messages of any kind. **Service messages and invoice messages can't be copied.** +The method is analogous to the method forwardMessages, but the copied message doesn't +have a link to the original message. +Returns the MessageId of the sent message on success. + +**Kind**: instance method of [TelegramBot](#TelegramBot) +**Returns**: Promise - The [MessageId](https://core.telegram.org/bots/api#messageid) of the sent message on success +**See**: https://core.telegram.org/bots/api#copymessage + +| Param | Type | Description | +| --- | --- | --- | +| chatId | Number \| String | Unique identifier for the target chat or username of the target channel (in the format `@channelusername`) | +| fromChatId | Number \| String | Unique identifier for the chat where the original message was sent | +| messageId | Number \| String | Unique message identifier | +| [options] | Object | Additional Telegram query options | + + + +### telegramBot.copyMessages(chatId, fromChatId, messageIds, [options]) ⇒ Promise +Use this method to copy messages of any kind. If some of the specified messages can't be found or copied, they are skipped. +Service messages, giveaway messages, giveaway winners messages, and invoice messages can't be copied. +Returns the MessageId of the sent message on success. + +**Kind**: instance method of [TelegramBot](#TelegramBot) +**Returns**: Promise - An array of MessageId of the sent messages +**See**: https://core.telegram.org/bots/api#copymessages + +| Param | Type | Description | +| --- | --- | --- | +| chatId | Number \| String | Unique identifier for the target chat | +| fromChatId | Number \| String | Unique identifier for the chat where the original message was sent | +| messageIds | Array | Identifiers of 1-100 messages in the chat from_chat_id to copy. The identifiers must be specified in a strictly increasing order. | +| [options] | Object | Additional Telegram query options | + + + +### telegramBot.sendPhoto(chatId, photo, [options], [fileOptions]) ⇒ Promise +Send photo + +**Kind**: instance method of [TelegramBot](#TelegramBot) +**Returns**: Promise - On success, the sent [Message](https://core.telegram.org/bots/api#message) object is returned +**See** + +- https://core.telegram.org/bots/api#sendphoto +- https://github.com/yagop/node-telegram-bot-api/blob/master/doc/usage.md#sending-files + + +| Param | Type | Description | +| --- | --- | --- | +| chatId | Number \| String | Unique identifier for the target chat or username of the target channel (in the format `@channelusername`) | +| 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 | +| [fileOptions] | Object | Optional file related meta-data | + + + +### telegramBot.sendAudio(chatId, audio, [options], [fileOptions]) ⇒ Promise +Send audio + +**Your audio must be in the .MP3 or .M4A format.** + +**Kind**: instance method of [TelegramBot](#TelegramBot) +**Returns**: Promise - On success, the sent [Message](https://core.telegram.org/bots/api#message) object is returned +**See** + +- https://core.telegram.org/bots/api#sendaudio +- https://github.com/yagop/node-telegram-bot-api/blob/master/doc/usage.md#sending-files + + +| Param | Type | Description | +| --- | --- | --- | +| chatId | Number \| String | Unique identifier for the target chat or username of the target channel (in the format `@channelusername`) | +| 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 | +| [fileOptions] | Object | Optional file related meta-data | + + + +### telegramBot.sendDocument(chatId, doc, [options], [fileOptions]) ⇒ Promise +Send Document + +**Kind**: instance method of [TelegramBot](#TelegramBot) +**Returns**: Promise - On success, the sent [Message](https://core.telegram.org/bots/api#message) object is returned +**See** + +- https://core.telegram.org/bots/api#sendDocument +- https://github.com/yagop/node-telegram-bot-api/blob/master/doc/usage.md#sending-files + + +| Param | Type | Description | +| --- | --- | --- | +| chatId | Number \| String | Unique identifier for the target chat or username of the target channel (in the format `@channelusername`) | +| 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 | +| [fileOptions] | Object | Optional file related meta-data | + + + +### telegramBot.sendVideo(chatId, video, [options], [fileOptions]) ⇒ Promise +Use this method to send video files, **Telegram clients support mp4 videos** (other formats may be sent as Document). + +**Kind**: instance method of [TelegramBot](#TelegramBot) +**Returns**: Promise - On success, the sent [Message](https://core.telegram.org/bots/api#message) object is returned +**See** + +- https://core.telegram.org/bots/api#sendvideo +- https://github.com/yagop/node-telegram-bot-api/blob/master/doc/usage.md#sending-files + + +| Param | Type | Description | +| --- | --- | --- | +| chatId | Number \| String | Unique identifier for the target chat or username of the target channel (in the format `@channelusername`) | +| video | String \| stream.Stream \| Buffer | A file path or Stream. Can also be a `file_id` previously uploaded. | +| [options] | Object | Additional Telegram query options | +| [fileOptions] | Object | Optional file related meta-data | + + + +### telegramBot.sendAnimation(chatId, animation, [options], [fileOptions]) ⇒ Promise +Use this method to send animation files (GIF or H.264/MPEG-4 AVC video without sound). + +**Kind**: instance method of [TelegramBot](#TelegramBot) +**Returns**: Promise - On success, the sent [Message](https://core.telegram.org/bots/api#message) object is returned +**See** + +- https://core.telegram.org/bots/api#sendanimation +- https://github.com/yagop/node-telegram-bot-api/blob/master/doc/usage.md#sending-files + + +| Param | Type | Description | +| --- | --- | --- | +| chatId | Number \| String | Unique identifier for the target chat or username of the target channel (in the format `@channelusername`) | +| animation | String \| stream.Stream \| Buffer | A file path, Stream or Buffer. Can also be a `file_id` previously uploaded. | +| [options] | Object | Additional Telegram query options | +| [fileOptions] | Object | Optional file related meta-data | + + + +### telegramBot.sendVoice(chatId, voice, [options], [fileOptions]) ⇒ Promise +Send voice + +**Your audio must be in an .OGG file encoded with OPUS**, or in .MP3 format, or in .M4A format (other formats may be sent as Audio or Document) + +**Kind**: instance method of [TelegramBot](#TelegramBot) +**Returns**: Promise - On success, the sent [Message](https://core.telegram.org/bots/api#message) object is returned +**See** + +- https://core.telegram.org/bots/api#sendvoice +- https://github.com/yagop/node-telegram-bot-api/blob/master/doc/usage.md#sending-files + + +| Param | Type | Description | +| --- | --- | --- | +| chatId | Number \| String | Unique identifier for the target chat or username of the target channel (in the format `@channelusername`) | +| 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 | +| [fileOptions] | Object | Optional file related meta-data | + + + +### telegramBot.sendVideoNote(chatId, videoNote, [options], [fileOptions]) ⇒ Promise +Use this method to send video messages +Telegram clients support **rounded square MPEG4 videos** of up to 1 minute long. + +**Kind**: instance method of [TelegramBot](#TelegramBot) +**Returns**: Promise - On success, the sent [Message](https://core.telegram.org/bots/api#message) object is returned +**Info**: The length parameter is actually optional. However, the API (at time of writing) requires you to always provide it until it is fixed. +**See** + +- https://core.telegram.org/bots/api#sendvideonote +- https://github.com/yagop/node-telegram-bot-api/blob/master/doc/usage.md#sending-files + + +| Param | Type | Description | +| --- | --- | --- | +| chatId | Number \| String | Unique identifier for the target chat or username of the target channel (in the format `@channelusername`) | +| videoNote | String \| stream.Stream \| Buffer | A file path or Stream. Can also be a `file_id` previously uploaded. | +| [options] | Object | Additional Telegram query options | +| [fileOptions] | Object | Optional file related meta-data | + + + +### telegramBot.sendPaidMedia(chatId, starCount, media, [options]) ⇒ Promise +Use this method to send paid media. + +**Kind**: instance method of [TelegramBot](#TelegramBot) +**Returns**: Promise - On success, the sent [Message](https://core.telegram.org/bots/api#message) object is returned +**See**: https://core.telegram.org/bots/api#sendpaidmedia + +| Param | Type | Description | +| --- | --- | --- | +| chatId | Number \| String | Unique identifier for the target chat or username of the target channel (in the format `@channelusername`) | +| starCount | Number | The number of Telegram Stars that must be paid to buy access to the media; 1-10000 | +| media | String \| stream.Stream \| Buffer | A file path or Stream. | +| [options] | Object | Additional Telegram query options | + + + +### telegramBot.sendMediaGroup(chatId, media, [options]) ⇒ Promise +Use this method to send a group of photos or videos as an album. + +**Documents and audio files can be only grouped in an album with messages of the same type** + +If you wish to [specify file options](https://github.com/yagop/node-telegram-bot-api/blob/master/doc/usage.md#sending-files), +add a `fileOptions` property to the target input in `media`. + +**Kind**: instance method of [TelegramBot](#TelegramBot) +**Returns**: Promise - On success, an array of the sent [Messages](https://core.telegram.org/bots/api#message) +is returned. +**See** + +- https://core.telegram.org/bots/api#sendmediagroup +- https://github.com/yagop/node-telegram-bot-api/blob/master/doc/usage.md#sending-files + + +| Param | Type | Description | +| --- | --- | --- | +| chatId | String | Unique identifier for the target chat or username of the target channel (in the format `@channelusername`) | +| media | Array | A JSON-serialized array describing photos and videos to be sent, must include 2–10 items | +| [options] | Object | Additional Telegram query options | + + + +### telegramBot.sendLocation(chatId, latitude, longitude, [options]) ⇒ Promise +Send location. +Use this method to send point on the map. + +**Kind**: instance method of [TelegramBot](#TelegramBot) +**Returns**: Promise - On success, the sent [Message](https://core.telegram.org/bots/api#message) object is returned +**See**: https://core.telegram.org/bots/api#sendlocation + +| Param | Type | Description | +| --- | --- | --- | +| chatId | Number \| String | Unique identifier for the target chat or username of the target channel (in the format `@channelusername`) | +| latitude | Float | Latitude of location | +| longitude | Float | Longitude of location | +| [options] | Object | Additional Telegram query options | + + + +### telegramBot.editMessageLiveLocation(latitude, longitude, [options]) ⇒ Promise +Use this method to edit live location messages sent by +the bot or via the bot (for inline bots). + + A location **can be edited until its live_period expires or editing is explicitly disabled by a call to [stopMessageLiveLocation](https://core.telegram.org/bots/api#stopmessagelivelocation)** + +Note that you must provide one of chat_id, message_id, or +inline_message_id in your request. + +**Kind**: instance method of [TelegramBot](#TelegramBot) +**Returns**: Promise - On success, if the edited message is not an inline message, the edited [Message](https://core.telegram.org/bots/api#message) is returned, otherwise True is returned. +**See**: https://core.telegram.org/bots/api#editmessagelivelocation + +| Param | Type | Description | +| --- | --- | --- | +| latitude | Float | Latitude of location | +| longitude | Float | Longitude of location | +| [options] | Object | Additional Telegram query options (provide either one of chat_id, message_id, or inline_message_id here) | + + + +### telegramBot.stopMessageLiveLocation([options]) ⇒ Promise +Use this method to stop updating a live location message sent by +the bot or via the bot (for inline bots) before live_period expires. + +Note that you must provide one of chat_id, message_id, or +inline_message_id in your request. + +**Kind**: instance method of [TelegramBot](#TelegramBot) +**Returns**: Promise - On success, if the edited message is not an inline message, the edited [Message](https://core.telegram.org/bots/api#message) is returned, otherwise True is returned. +**See**: https://core.telegram.org/bots/api#stopmessagelivelocation + +| Param | Type | Description | +| --- | --- | --- | +| [options] | Object | Additional Telegram query options (provide either one of chat_id, message_id, or inline_message_id here) | + + + +### telegramBot.sendVenue(chatId, latitude, longitude, title, address, [options]) ⇒ Promise +Send venue. +Use this method to send information about a venue. + +**Kind**: instance method of [TelegramBot](#TelegramBot) +**Returns**: Promise - On success, the sent [Message](https://core.telegram.org/bots/api#message) object is returned. +**See**: https://core.telegram.org/bots/api#sendvenue + +| Param | Type | Description | +| --- | --- | --- | +| chatId | Number \| String | Unique identifier for the target chat or username of the target channel (in the format `@channelusername`) | +| latitude | Float | Latitude of location | +| longitude | Float | Longitude of location | +| title | String | Name of the venue | +| address | String | Address of the venue | +| [options] | Object | Additional Telegram query options | + + + +### telegramBot.sendContact(chatId, phoneNumber, firstName, [options]) ⇒ Promise +Send contact. +Use this method to send phone contacts. + +**Kind**: instance method of [TelegramBot](#TelegramBot) +**Returns**: Promise - On success, the sent [Message](https://core.telegram.org/bots/api#message) object is returned +**See**: https://core.telegram.org/bots/api#sendcontact + +| Param | Type | Description | +| --- | --- | --- | +| chatId | Number \| String | Unique identifier for the target chat or username of the target channel (in the format `@channelusername`) | +| phoneNumber | String | Contact's phone number | +| firstName | String | Contact's first name | +| [options] | Object | Additional Telegram query options | + + + +### telegramBot.sendPoll(chatId, question, pollOptions, [options]) ⇒ Promise +Send poll. +Use this method to send a native poll. + +**Kind**: instance method of [TelegramBot](#TelegramBot) +**Returns**: Promise - On success, the sent [Message](https://core.telegram.org/bots/api#message) object is returned +**See**: https://core.telegram.org/bots/api#sendpoll + +| Param | Type | Description | +| --- | --- | --- | +| chatId | Number \| String | Unique identifier for the group/channel | +| question | String | Poll question, 1-300 characters | +| pollOptions | Array | Poll options, between 2-10 options (only 1-100 characters each) | +| [options] | Object | Additional Telegram query options | + + + +### telegramBot.sendDice(chatId, [options]) ⇒ Promise +Send Dice +Use this method to send an animated emoji that will display a random value. + +**Kind**: instance method of [TelegramBot](#TelegramBot) +**Returns**: Promise - On success, the sent [Message](https://core.telegram.org/bots/api#message) object is returned +**See**: https://core.telegram.org/bots/api#senddice + +| Param | Type | Description | +| --- | --- | --- | +| chatId | Number \| String | Unique identifier for the target chat or username of the target channel (in the format `@channelusername`) | +| [options] | Object | Additional Telegram query options | + + + +### telegramBot.sendChatAction(chatId, action, [options]) ⇒ Promise +Send chat action. + +Use this method when you need to tell the user that something is happening on the bot's side. +**The status is set for 5 seconds or less** (when a message arrives from your bot, Telegram clients clear its typing status). + + Action `typing` for [text messages](https://core.telegram.org/bots/api#sendmessage), +`upload_photo` for [photos](https://core.telegram.org/bots/api#sendphoto), `record_video` or `upload_video` for [videos](https://core.telegram.org/bots/api#sendvideo), +`record_voice` or `upload_voice` for [voice notes](https://core.telegram.org/bots/api#sendvoice), `upload_document` for [general files](https://core.telegram.org/bots/api#senddocument), +`choose_sticker` for [stickers](https://core.telegram.org/bots/api#sendsticker), `find_location` for [location data](https://core.telegram.org/bots/api#sendlocation), +`record_video_note` or `upload_video_note` for [video notes](https://core.telegram.org/bots/api#sendvideonote). + +**Kind**: instance method of [TelegramBot](#TelegramBot) +**Returns**: Promise - True on success +**See**: https://core.telegram.org/bots/api#sendchataction + +| Param | Type | Description | +| --- | --- | --- | +| chatId | Number \| String | Unique identifier for the target chat or username of the target channel (in the format `@channelusername`) | +| action | String | Type of action to broadcast. | +| [options] | Object | Additional Telegram query options | + + + +### telegramBot.setMessageReaction(chatId, messageId, [options]) ⇒ [ 'Promise' ].<Boolean> +Use this method to change the chosen reactions on a message. +- Service messages can't be reacted to. +- Automatically forwarded messages from a channel to its discussion group have the same available reactions as messages in the channel. +- In albums, bots must react to the first message. + +**Kind**: instance method of [TelegramBot](#TelegramBot) +**Returns**: [ 'Promise' ].<Boolean> - True on success +**See**: https://core.telegram.org/bots/api#setmessagereaction + +| Param | Type | Description | +| --- | --- | --- | +| chatId | Number \| String | Unique identifier for the target chat or username of the target channel (in the format @channelusername) | +| messageId | Number | Unique identifier of the target message | +| [options] | Object | Additional Telegram query options | + + + +### telegramBot.getUserProfilePhotos(userId, [options]) ⇒ Promise +Use this method to get a list of profile pictures for a user. +Returns a [UserProfilePhotos](https://core.telegram.org/bots/api#userprofilephotos) object. +This method has an [older, compatible signature][getUserProfilePhotos-v0.25.0] +that is being deprecated. + +**Kind**: instance method of [TelegramBot](#TelegramBot) +**Returns**: Promise - Returns a [UserProfilePhotos](https://core.telegram.org/bots/api#userprofilephotos) object +**See**: https://core.telegram.org/bots/api#getuserprofilephotos + +| Param | Type | Description | +| --- | --- | --- | +| userId | Number | Unique identifier of the target user | +| [options] | Object | Additional Telegram query options | + + + +### telegramBot.getFile(fileId, [options]) ⇒ Promise +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.** + +**Kind**: instance method of [TelegramBot](#TelegramBot) +**Returns**: Promise - On success, a [File](https://core.telegram.org/bots/api#file) object is returned +**See**: https://core.telegram.org/bots/api#getfile + +| Param | Type | Description | +| --- | --- | --- | +| fileId | String | File identifier to get info about | +| [options] | Object | Additional Telegram query options | + + + +### telegramBot.banChatMember(chatId, userId, [options]) ⇒ Promise +Use this method to ban a user in a group, a supergroup or a channel. +In the case of supergroups and channels, the user will not be able to +return to the chat on their own using invite links, etc., unless unbanned first.. + +The **bot must be an administrator in the group, supergroup or a channel** for this to work. + +**Kind**: instance method of [TelegramBot](#TelegramBot) +**Returns**: Promise - True on success. +**See**: https://core.telegram.org/bots/api#banchatmember + +| Param | Type | Description | +| --- | --- | --- | +| chatId | Number \| String | Unique identifier for the target chat or username of the target channel (in the format `@channelusername`) | +| userId | Number | Unique identifier of the target user | +| [options] | Object | Additional Telegram query options | + + + +### telegramBot.unbanChatMember(chatId, userId, [options]) ⇒ Promise +Use this method to unban a previously kicked user in a supergroup. +The user will not return to the group automatically, but will be +able to join via link, etc. + +The **bot must be an administrator** in the supergroup or channel for this to work. + +**By default**, this method guarantees that after the call the user is not a member of the chat, but will be able to join it. +So **if the user is a member of the chat they will also be removed from the chat**. If you don't want this, use the parameter *only_if_banned* + +**Kind**: instance method of [TelegramBot](#TelegramBot) +**Returns**: Promise - True on success +**See**: https://core.telegram.org/bots/api#unbanchatmember + +| Param | Type | Description | +| --- | --- | --- | +| chatId | Number \| String | Unique identifier for the target chat or username of the target channel (in the format `@channelusername`) | +| userId | Number | Unique identifier of the target user | +| [options] | Object | Additional Telegram query options | + + + +### telegramBot.restrictChatMember(chatId, userId, [options]) ⇒ Promise +Use this method to restrict a user in a supergroup. +The bot **must be an administrator in the supergroup** for this to work +and must have the appropriate admin rights. Pass True for all boolean parameters +to lift restrictions from a user. Returns True on success. + +**Kind**: instance method of [TelegramBot](#TelegramBot) +**Returns**: Promise - True on success +**See**: https://core.telegram.org/bots/api#restrictchatmember + +| Param | Type | Description | +| --- | --- | --- | +| chatId | Number \| String | Unique identifier for the target chat or username of the target channel (in the format `@channelusername`) | +| userId | Number | Unique identifier of the target user | +| [options] | Object | Additional Telegram query options | + + + +### telegramBot.promoteChatMember(chatId, userId, [options]) ⇒ Promise +Use this method to promote or demote a user in a supergroup or a channel. +The bot **must be an administrator** in the chat for this to work +and must have the appropriate admin rights. Pass False for all boolean parameters to demote a user. + +**Kind**: instance method of [TelegramBot](#TelegramBot) +**Returns**: Promise - True on success. +**See**: https://core.telegram.org/bots/api#promotechatmember + +| Param | Type | Description | +| --- | --- | --- | +| chatId | Number \| String | Unique identifier for the target chat or username of the target channel (in the format `@channelusername`) | +| userId | Number | | +| [options] | Object | Additional Telegram query options | + + + +### telegramBot.setChatAdministratorCustomTitle(chatId, userId, customTitle, [options]) ⇒ Promise +Use this method to set a custom title for an administrator in a supergroup promoted by the bot. + +**Kind**: instance method of [TelegramBot](#TelegramBot) +**Returns**: Promise - True on success +**See**: https://core.telegram.org/bots/api#setchatadministratorcustomtitle + +| Param | Type | Description | +| --- | --- | --- | +| chatId | Number \| String | Unique identifier for the target chat or username of the target channel (in the format `@channelusername`) | +| userId | Number | Unique identifier of the target user | +| customTitle | String | New custom title for the administrator; 0-16 characters, emoji are not allowed | +| [options] | Object | Additional Telegram query options | + + + +### telegramBot.banChatSenderChat(chatId, senderChatId, [options]) ⇒ Promise +Use this method to ban a channel chat in a supergroup or a channel. + +Until the chat is [unbanned](https://core.telegram.org/bots/api#unbanchatsenderchat), the owner of the banned chat won't be able to send messages on behalf of any of their channels. +The bot **must be an administrator in the supergroup or channel** for this to work and must have the appropriate administrator rights + +**Kind**: instance method of [TelegramBot](#TelegramBot) +**Returns**: Promise - True on success. +**See**: https://core.telegram.org/bots/api#banchatsenderchat + +| Param | Type | Description | +| --- | --- | --- | +| chatId | Number \| String | Unique identifier for the target chat or username of the target channel (in the format `@channelusername`) | +| senderChatId | Number | Unique identifier of the target user | +| [options] | Object | Additional Telegram query options | + + + +### telegramBot.unbanChatSenderChat(chatId, senderChatId, [options]) ⇒ Promise +Use this method to unban a previously banned channel chat in a supergroup or channel. + +The bot **must be an administrator** for this to work and must have the appropriate administrator rights. + +**Kind**: instance method of [TelegramBot](#TelegramBot) +**Returns**: Promise - True on success +**See**: https://core.telegram.org/bots/api#unbanchatsenderchat + +| Param | Type | Description | +| --- | --- | --- | +| chatId | Number \| String | Unique identifier for the target chat or username of the target channel (in the format `@channelusername`) | +| senderChatId | Number | Unique identifier of the target user | +| [options] | Object | Additional Telegram query options | + + + +### telegramBot.setChatPermissions(chatId, chatPermissions, [options]) ⇒ Promise +Use this method to set default chat permissions for all members. + +The bot **must be an administrator in the group or a supergroup** for this to +work and **must have the `can_restrict_members` admin rights.** + +**Kind**: instance method of [TelegramBot](#TelegramBot) +**Returns**: Promise - True on success +**See**: https://core.telegram.org/bots/api#setchatpermissions + +| Param | Type | Description | +| --- | --- | --- | +| chatId | Number \| String | Unique identifier for the target chat or username of the target channel (in the format `@channelusername`) | +| chatPermissions | Array | New default chat permissions | +| [options] | Object | Additional Telegram query options | + + + +### telegramBot.exportChatInviteLink(chatId, [options]) ⇒ Promise +Use this method to generate a new primary invite link for a chat. **Any previously generated primary link is revoked**. + +The bot **must be an administrator in the chat** for this to work and must have the appropriate administrator rights. + +**Kind**: instance method of [TelegramBot](#TelegramBot) +**Returns**: Promise - Exported invite link as String on success. +**See**: https://core.telegram.org/bots/api#exportchatinvitelink + +| Param | Type | Description | +| --- | --- | --- | +| chatId | Number \| String | Unique identifier for the target chat or username of the target channel (in the format `@channelusername`) | +| [options] | Object | Additional Telegram query options | + + + +### telegramBot.createChatInviteLink(chatId, [options]) ⇒ Object +Use this method to create an additional invite link for a chat. + +The bot **must be an administrator in the chat** for this to work and must have the appropriate admin rights. + +The link generated with this method can be revoked using the method [revokeChatInviteLink](https://core.telegram.org/bots/api#revokechatinvitelink) + +**Kind**: instance method of [TelegramBot](#TelegramBot) +**Returns**: Object - The new invite link as [ChatInviteLink](https://core.telegram.org/bots/api#chatinvitelink) object +**See**: https://core.telegram.org/bots/api#createchatinvitelink + +| Param | Type | Description | +| --- | --- | --- | +| chatId | Number \| String | Unique identifier for the target chat or username of the target channel (in the format `@channelusername`) | +| [options] | Object | Additional Telegram query options | + + + +### telegramBot.editChatInviteLink(chatId, inviteLink, [options]) ⇒ Promise +Use this method to edit a non-primary invite link created by the bot. + +The bot **must be an administrator in the chat** for this to work and must have the appropriate admin rights. + +**Kind**: instance method of [TelegramBot](#TelegramBot) +**Returns**: Promise - The edited invite link as a [ChatInviteLink](https://core.telegram.org/bots/api#chatinvitelink) object +**See**: https://core.telegram.org/bots/api#editchatinvitelink + +| Param | Type | Description | +| --- | --- | --- | +| chatId | Number \| String | Unique identifier for the target chat or username of the target channel (in the format `@channelusername`) | +| inviteLink | String | Text with the invite link to edit | +| [options] | Object | Additional Telegram query options | + + + +### telegramBot.createChatSubscriptionInviteLink(chatId, subscriptionPeriod, subscriptionPrice, [options]) ⇒ Promise +Use this method to create a subscription invite link for a channel chat. + +The bot must have the can_invite_users administrator rights + + +**Kind**: instance method of [TelegramBot](#TelegramBot) +**Returns**: Promise - The new invite link as a [ChatInviteLink](https://core.telegram.org/bots/api#chatinvitelink) object +**See**: https://core.telegram.org/bots/api#createchatsubscriptioninvitelink + +| Param | Type | Description | +| --- | --- | --- | +| chatId | Number \| String | Unique identifier for the target chat or username of the target channel (in the format `@channelusername`) | +| subscriptionPeriod | Number | The number of seconds the subscription will be active for before the next payment. Currently, it must always be 2592000 (30 days) | +| subscriptionPrice | Number | The amount of Telegram Stars a user must pay initially and after each subsequent subscription period to be a member of the chat (1-2500) | +| [options] | Object | Additional Telegram query options | + + + +### telegramBot.editChatSubscriptionInviteLink(chatId, inviteLink, [options]) ⇒ Promise + +Use this method to edit a subscription invite link created by the bot. + +The bot must have the can_invite_users administrator rights + +**Kind**: instance method of [TelegramBot](#TelegramBot) +**Returns**: Promise - The new invite link as a [ChatInviteLink](https://core.telegram.org/bots/api#chatinvitelink) object +**See**: https://core.telegram.org/bots/api#editchatsubscriptioninvitelink + +| Param | Type | Description | +| --- | --- | --- | +| chatId | Number \| String | Unique identifier for the target chat or username of the target channel (in the format `@channelusername`) | +| inviteLink | String | The invite link to edit | +| [options] | Object | Additional Telegram query options | + + + +### telegramBot.revokeChatInviteLink(chatId, inviteLink, [options]) ⇒ Promise +Use this method to revoke an invite link created by the bot. +Note: If the primary link is revoked, a new link is automatically generated + +The bot **must be an administrator in the chat** for this to work and must have the appropriate admin rights. + +**Kind**: instance method of [TelegramBot](#TelegramBot) +**Returns**: Promise - The revoked invite link as [ChatInviteLink](https://core.telegram.org/bots/api#chatinvitelink) object +**See**: https://core.telegram.org/bots/api#revokechatinvitelink + +| Param | Type | Description | +| --- | --- | --- | +| chatId | Number \| String | Unique identifier for the target chat or username of the target channel (in the format `@channelusername`) | +| inviteLink | String | The invite link to revoke | +| [options] | Object | Additional Telegram query options | + + + +### telegramBot.approveChatJoinRequest(chatId, userId, [options]) ⇒ Promise +Use this method to approve a chat join request. + +The bot **must be an administrator in the chat** for this to work and **must have the `can_invite_users` administrator right.** + +**Kind**: instance method of [TelegramBot](#TelegramBot) +**Returns**: Promise - True on success +**See**: https://core.telegram.org/bots/api#approvechatjoinrequest + +| Param | Type | Description | +| --- | --- | --- | +| chatId | Number \| String | Unique identifier for the target chat or username of the target channel (in the format `@channelusername`) | +| userId | Number | Unique identifier of the target user | +| [options] | Object | Additional Telegram query options | + + + +### telegramBot.declineChatJoinRequest(chatId, userId, [options]) ⇒ Promise +Use this method to decline a chat join request. + +The bot **must be an administrator in the chat** for this to work and **must have the `can_invite_users` administrator right**. + +**Kind**: instance method of [TelegramBot](#TelegramBot) +**Returns**: Promise - True on success +**See**: https://core.telegram.org/bots/api#declinechatjoinrequest + +| Param | Type | Description | +| --- | --- | --- | +| chatId | Number \| String | Unique identifier for the target chat or username of the target channel (in the format `@channelusername`) | +| userId | Number | Unique identifier of the target user | +| [options] | Object | Additional Telegram query options | + + + +### telegramBot.setChatPhoto(chatId, photo, [options], [fileOptions]) ⇒ Promise +Use this method to set a new profile photo for the chat. **Photos can't be changed for private chats**. + +The bot **must be an administrator in the chat** for this to work and must have the appropriate admin rights. + +**Kind**: instance method of [TelegramBot](#TelegramBot) +**Returns**: Promise - True on success +**See**: https://core.telegram.org/bots/api#setchatphoto + +| Param | Type | Description | +| --- | --- | --- | +| chatId | Number \| String | Unique identifier for the target chat or username of the target channel (in the format `@channelusername`) | +| photo | stream.Stream \| Buffer | A file path or a Stream. | +| [options] | Object | Additional Telegram query options | +| [fileOptions] | Object | Optional file related meta-data | + + + +### telegramBot.deleteChatPhoto(chatId, [options]) ⇒ Promise +Use this method to delete a chat photo. **Photos can't be changed for private chats**. + +The bot **must be an administrator in the chat** for this to work and must have the appropriate admin rights. + +**Kind**: instance method of [TelegramBot](#TelegramBot) +**Returns**: Promise - True on success +**See**: https://core.telegram.org/bots/api#deletechatphoto + +| Param | Type | Description | +| --- | --- | --- | +| chatId | Number \| String | Unique identifier for the target chat or username of the target channel (in the format `@channelusername`) | +| [options] | Object | Additional Telegram query options | + + + +### telegramBot.setChatTitle(chatId, title, [options]) ⇒ Promise +Use this method to change the title of a chat. **Titles can't be changed for private chats**. + +The bot **must be an administrator in the chat** for this to work and must have the appropriate admin rights. + +**Kind**: instance method of [TelegramBot](#TelegramBot) +**Returns**: Promise - True on success +**See**: https://core.telegram.org/bots/api#setchattitle + +| Param | Type | Description | +| --- | --- | --- | +| chatId | Number \| String | Unique identifier for the target chat or username of the target channel (in the format `@channelusername`) | +| title | String | New chat title, 1-255 characters | +| [options] | Object | Additional Telegram query options | + + + +### telegramBot.setChatDescription(chatId, description, [options]) ⇒ Promise +Use this method to change the description of a group, a supergroup or a channel. + +The bot **must be an administrator in the chat** for this to work and must have the appropriate admin rights. + +**Kind**: instance method of [TelegramBot](#TelegramBot) +**Returns**: Promise - True on success +**See**: https://core.telegram.org/bots/api#setchatdescription + +| Param | Type | Description | +| --- | --- | --- | +| chatId | Number \| String | Unique identifier for the target chat or username of the target channel (in the format `@channelusername`) | +| description | String | New chat title, 0-255 characters | +| [options] | Object | Additional Telegram query options | + + + +### telegramBot.pinChatMessage(chatId, messageId, [options]) ⇒ Promise +Use this method to pin a message in a supergroup. + +If the chat is not a private chat, the **bot must be an administrator in the chat** for this to work and must have the `can_pin_messages` administrator +right in a supergroup or `can_edit_messages` administrator right in a channel. + +**Kind**: instance method of [TelegramBot](#TelegramBot) +**Returns**: Promise - True on success +**See**: https://core.telegram.org/bots/api#pinchatmessage + +| Param | Type | Description | +| --- | --- | --- | +| chatId | Number \| String | Unique identifier for the target chat or username of the target channel (in the format `@channelusername`) | +| messageId | Number | Identifier of a message to pin | +| [options] | Object | Additional Telegram query options | + + + +### telegramBot.unpinChatMessage(chatId, [options]) ⇒ Promise +Use this method to remove a message from the list of pinned messages in a chat + +If the chat is not a private chat, the **bot must be an administrator in the chat** for this to work and must have the `can_pin_messages` administrator +right in a supergroup or `can_edit_messages` administrator right in a channel. + +**Kind**: instance method of [TelegramBot](#TelegramBot) +**Returns**: Promise - True on success +**See**: https://core.telegram.org/bots/api#unpinchatmessage + +| Param | Type | Description | +| --- | --- | --- | +| chatId | Number \| String | Unique identifier for the target chat or username of the target channel (in the format `@channelusername`) | +| [options] | Object | Additional Telegram query options | + + + +### telegramBot.unpinAllChatMessages(chatId, [options]) ⇒ Promise +Use this method to clear the list of pinned messages in a chat. + +If the chat is not a private chat, the **bot must be an administrator in the chat** for this to work and must have the `can_pin_messages` administrator +right in a supergroup or `can_edit_messages` administrator right in a channel. + +**Kind**: instance method of [TelegramBot](#TelegramBot) +**Returns**: Promise - True on success +**See**: https://core.telegram.org/bots/api#unpinallchatmessages + +| Param | Type | Description | +| --- | --- | --- | +| chatId | Number \| String | Unique identifier for the target chat or username of the target channel (in the format `@channelusername`) | +| [options] | Object | Additional Telegram query options | + + + +### telegramBot.leaveChat(chatId, [options]) ⇒ Promise +Use this method for your bot to leave a group, supergroup or channel + +**Kind**: instance method of [TelegramBot](#TelegramBot) +**Returns**: Promise - True on success +**See**: https://core.telegram.org/bots/api#leavechat + +| Param | Type | Description | +| --- | --- | --- | +| chatId | Number \| String | Unique identifier for the target chat or username of the target channel (in the format `@channelusername`) | +| [options] | Object | Additional Telegram query options | + + + +### telegramBot.getChat(chatId, [options]) ⇒ Promise +Use this method to get up to date information about the chat +(current name of the user for one-on-one conversations, current +username of a user, group or channel, etc.). + +**Kind**: instance method of [TelegramBot](#TelegramBot) +**Returns**: Promise - [ChatFullInfo](https://core.telegram.org/bots/api#chatfullinfo) object on success +**See**: https://core.telegram.org/bots/api#getchat + +| Param | Type | Description | +| --- | --- | --- | +| chatId | Number \| String | Unique identifier for the target chat or username of the target channel (in the format `@channelusername`) or channel | +| [options] | Object | Additional Telegram query options | + + + +### telegramBot.getChatAdministrators(chatId, [options]) ⇒ Promise +Use this method to get a list of administrators in a chat + +**Kind**: instance method of [TelegramBot](#TelegramBot) +**Returns**: Promise - On success, returns an Array of [ChatMember](https://core.telegram.org/bots/api#chatmember) objects that contains information about all chat administrators except other bots. +If the chat is a group or a supergroup and no administrators were appointed, only the creator will be returned +**See**: https://core.telegram.org/bots/api#getchatadministrators + +| Param | Type | Description | +| --- | --- | --- | +| chatId | Number \| String | Unique identifier for the target group or username of the target supergroup | +| [options] | Object | Additional Telegram query options | + + + +### telegramBot.getChatMemberCount(chatId, [options]) ⇒ Promise +Use this method to get the number of members in a chat. + +**Kind**: instance method of [TelegramBot](#TelegramBot) +**Returns**: Promise - Int on success +**See**: https://core.telegram.org/bots/api#getchatmembercount + +| Param | Type | Description | +| --- | --- | --- | +| chatId | Number \| String | Unique identifier for the target group or username of the target supergroup | +| [options] | Object | Additional Telegram query options | + + + +### telegramBot.getChatMember(chatId, userId, [options]) ⇒ Promise +Use this method to get information about a member of a chat. + +**Kind**: instance method of [TelegramBot](#TelegramBot) +**Returns**: Promise - [ChatMember](https://core.telegram.org/bots/api#chatmember) object on success +**See**: https://core.telegram.org/bots/api#getchatmember + +| Param | Type | Description | +| --- | --- | --- | +| chatId | Number \| String | Unique identifier for the target group or username of the target supergroup | +| userId | Number | Unique identifier of the target user | +| [options] | Object | Additional Telegram query options | + + + +### telegramBot.setChatStickerSet(chatId, stickerSetName, [options]) ⇒ Promise +Use this method to set a new group sticker set for a supergroup. + +The bot **must be an administrator in the chat** for this to work and must have the appropriate administrator rights. + +**Note:** Use the field `can_set_sticker_set` optionally returned in [getChat](https://core.telegram.org/bots/api#getchat) requests to check if the bot can use this method. + +**Kind**: instance method of [TelegramBot](#TelegramBot) +**Returns**: Promise - True on success +**See**: https://core.telegram.org/bots/api#setchatstickerset + +| Param | Type | Description | +| --- | --- | --- | +| chatId | Number \| String | Unique identifier for the target group or username of the target supergroup (in the format @supergroupusername) | +| stickerSetName | String | Name of the sticker set to be set as the group sticker set | +| [options] | Object | Additional Telegram query options | + + + +### telegramBot.deleteChatStickerSet(chatId, [options]) ⇒ Promise +Use this method to delete a group sticker set from a supergroup. + +Use the field `can_set_sticker_set` optionally returned in [getChat](https://core.telegram.org/bots/api#getchat) requests to check if the bot can use this method. + +**Kind**: instance method of [TelegramBot](#TelegramBot) +**Returns**: Promise - True on success +**See**: https://core.telegram.org/bots/api#deletechatstickerset + +| Param | Type | Description | +| --- | --- | --- | +| chatId | Number \| String | Unique identifier for the target group or username of the target supergroup (in the format @supergroupusername) | +| [options] | Object | Additional Telegram query options | + + + +### telegramBot.getForumTopicIconStickers(chatId, [options]) ⇒ Promise +Use this method to get custom emoji stickers, which can be used as a forum topic icon by any user. + +**Kind**: instance method of [TelegramBot](#TelegramBot) +**Returns**: Promise - Array of [Sticker](https://core.telegram.org/bots/api#sticker) objects +**See**: https://core.telegram.org/bots/api#getforumtopiciconstickers + +| Param | Type | Description | +| --- | --- | --- | +| chatId | Number \| String | Unique identifier for the target group or username of the target supergroup (in the format @supergroupusername) | +| [options] | Object | Additional Telegram query options | + + + +### telegramBot.createForumTopic(chatId, name, [options]) +Use this method to create a topic in a forum supergroup chat. +The bot must be an administrator in the chat for this to work and must have the can_manage_topics administrator rights. + +Returns information about the created topic as a [ForumTopic](https://core.telegram.org/bots/api#forumtopic) object. + +**Kind**: instance method of [TelegramBot](#TelegramBot) +**See**: https://core.telegram.org/bots/api#createforumtopic + +| Param | Type | Description | +| --- | --- | --- | +| chatId | Number \| String | Unique identifier for the target group or username of the target supergroup (in the format @supergroupusername) | +| name | String | Topic name, 1-128 characters | +| [options] | Object | Additional Telegram query options | + + + +### telegramBot.editForumTopic(chatId, messageThreadId, [options]) ⇒ Promise +Use this method to edit name and icon of a topic in a forum supergroup chat. +The bot must be an administrator in the chat for this to work and must have can_manage_topics administrator rights, unless it is the creator of the topic. + +**Kind**: instance method of [TelegramBot](#TelegramBot) +**Returns**: Promise - True on success +**See**: https://core.telegram.org/bots/api#editforumtopic + +| Param | Type | Description | +| --- | --- | --- | +| chatId | Number \| String | Unique identifier for the target group or username of the target supergroup (in the format @supergroupusername) | +| messageThreadId | Number | Unique identifier for the target message thread of the forum topic | +| [options] | Object | Additional Telegram query options | + + + +### telegramBot.closeForumTopic(chatId, messageThreadId, [options]) ⇒ Promise +Use this method to close an open topic in a forum supergroup chat. +The bot must be an administrator in the chat for this to work and must have the can_manage_topics administrator rights, unless it is the creator of the topic. + +**Kind**: instance method of [TelegramBot](#TelegramBot) +**Returns**: Promise - True on success +**See**: https://core.telegram.org/bots/api#closeforumtopic + +| Param | Type | Description | +| --- | --- | --- | +| chatId | Number \| String | Unique identifier for the target group or username of the target supergroup (in the format @supergroupusername) | +| messageThreadId | Number | Unique identifier for the target message thread of the forum topic | +| [options] | Object | Additional Telegram query options | + + + +### telegramBot.reopenForumTopic(chatId, messageThreadId, [options]) ⇒ Promise +Use this method to reopen a closed topic in a forum supergroup chat. +The bot must be an administrator in the chat for this to work and must have the can_manage_topics administrator rights, unless it is the creator of the topic. + +**Kind**: instance method of [TelegramBot](#TelegramBot) +**Returns**: Promise - True on success +**See**: https://core.telegram.org/bots/api#reopenforumtopic + +| Param | Type | Description | +| --- | --- | --- | +| chatId | Number \| String | Unique identifier for the target group or username of the target supergroup (in the format @supergroupusername) | +| messageThreadId | Number | Unique identifier for the target message thread of the forum topic | +| [options] | Object | Additional Telegram query options | + + + +### telegramBot.deleteForumTopic(chatId, messageThreadId, [options]) ⇒ Promise +Use this method to delete a forum topic along with all its messages in a forum supergroup chat. +The bot must be an administrator in the chat for this to work and must have the can_delete_messages administrator rights. + +**Kind**: instance method of [TelegramBot](#TelegramBot) +**Returns**: Promise - True on success +**See**: https://core.telegram.org/bots/api#deleteforumtopic + +| Param | Type | Description | +| --- | --- | --- | +| chatId | Number \| String | Unique identifier for the target group or username of the target supergroup (in the format @supergroupusername) | +| messageThreadId | Number | Unique identifier for the target message thread of the forum topic | +| [options] | Object | Additional Telegram query options | + + + +### telegramBot.unpinAllForumTopicMessages(chatId, messageThreadId, [options]) ⇒ Promise +Use this method to clear the list of pinned messages in a forum topic. +The bot must be an administrator in the chat for this to work and must have the can_pin_messages administrator right in the supergroup. + +**Kind**: instance method of [TelegramBot](#TelegramBot) +**Returns**: Promise - True on success +**See**: https://core.telegram.org/bots/api#unpinallforumtopicmessages + +| Param | Type | Description | +| --- | --- | --- | +| chatId | Number \| String | Unique identifier for the target group or username of the target supergroup (in the format @supergroupusername) | +| messageThreadId | Number | Unique identifier for the target message thread of the forum topic | +| [options] | Object | Additional Telegram query options | + + + +### telegramBot.editGeneralForumTopic(chatId, name, [options]) ⇒ Promise +Use this method to edit the name of the 'General' topic in a forum supergroup chat. +The bot must be an administrator in the chat for this to work and must have the can_manage_topics administrator rights. +The topic will be automatically unhidden if it was hidden. + +**Kind**: instance method of [TelegramBot](#TelegramBot) +**Returns**: Promise - True on success +**See**: https://core.telegram.org/bots/api#editgeneralforumtopic + +| Param | Type | Description | +| --- | --- | --- | +| chatId | Number \| String | Unique identifier for the target group or username of the target supergroup (in the format @supergroupusername) | +| name | String | New topic name, 1-128 characters | +| [options] | Object | Additional Telegram query options | + + + +### telegramBot.closeGeneralForumTopic(chatId, [options]) ⇒ Promise +Use this method to close an open 'General' topic in a forum supergroup chat. +The bot must be an administrator in the chat for this to work and must have the can_manage_topics administrator rights. +The topic will be automatically unhidden if it was hidden. + +**Kind**: instance method of [TelegramBot](#TelegramBot) +**Returns**: Promise - True on success +**See**: https://core.telegram.org/bots/api#closegeneralforumtopic + +| Param | Type | Description | +| --- | --- | --- | +| chatId | Number \| String | Unique identifier for the target group or username of the target supergroup (in the format @supergroupusername) | +| [options] | Object | Additional Telegram query options | + + + +### telegramBot.reopenGeneralForumTopic(chatId, [options]) ⇒ Promise +Use this method to reopen a closed 'General' topic in a forum supergroup chat. +The bot must be an administrator in the chat for this to work and must have the can_manage_topics administrator rights. +The topic will be automatically unhidden if it was hidden. + +**Kind**: instance method of [TelegramBot](#TelegramBot) +**Returns**: Promise - True on success +**See**: https://core.telegram.org/bots/api#reopengeneralforumtopic + +| Param | Type | Description | +| --- | --- | --- | +| chatId | Number \| String | Unique identifier for the target group or username of the target supergroup (in the format @supergroupusername) | +| [options] | Object | Additional Telegram query options | + + + +### telegramBot.hideGeneralForumTopic(chatId, [options]) ⇒ Promise +Use this method to hide the 'General' topic in a forum supergroup chat. +The bot must be an administrator in the chat for this to work and must have the can_manage_topics administrator rights. +The topic will be automatically closed if it was open. + +**Kind**: instance method of [TelegramBot](#TelegramBot) +**Returns**: Promise - True on success +**See**: https://core.telegram.org/bots/api#hidegeneralforumtopic + +| Param | Type | Description | +| --- | --- | --- | +| chatId | Number \| String | Unique identifier for the target group or username of the target supergroup (in the format @supergroupusername) | +| [options] | Object | Additional Telegram query options | + + + +### telegramBot.unhideGeneralForumTopic(chatId, [options]) ⇒ Promise +Use this method to unhide the 'General' topic in a forum supergroup chat. +The bot must be an administrator in the chat for this to work and must have the can_manage_topics administrator rights + +**Kind**: instance method of [TelegramBot](#TelegramBot) +**Returns**: Promise - True on success +**See**: https://core.telegram.org/bots/api#unhidegeneralforumtopic + +| Param | Type | Description | +| --- | --- | --- | +| chatId | Number \| String | Unique identifier for the target group or username of the target supergroup (in the format @supergroupusername) | +| [options] | Object | Additional Telegram query options | + + + +### telegramBot.unpinAllGeneralForumTopicMessages(chatId, [options]) ⇒ Promise +Use this method to clear the list of pinned messages in a General forum topic. +The bot must be an administrator in the chat for this to work and must have the can_pin_messages administrator right in the supergroup. + +**Kind**: instance method of [TelegramBot](#TelegramBot) +**Returns**: Promise - True on success +**See**: https://core.telegram.org/bots/api#unpinallgeneralforumtopicmessages + +| Param | Type | Description | +| --- | --- | --- | +| chatId | Number \| String | Unique identifier for the target group or username of the target supergroup (in the format @supergroupusername) | +| [options] | Object | Additional Telegram query options | + + + +### telegramBot.answerCallbackQuery(callbackQueryId, [options]) ⇒ Promise +Use this method to send answers to callback queries sent from +[inline keyboards](https://core.telegram.org/bots#inline-keyboards-and-on-the-fly-updating). + +The answer will be displayed to the user as a notification at the top of the chat screen or as an alert. + +This method has **older, compatible signatures ([1][answerCallbackQuery-v0.27.1])([2][answerCallbackQuery-v0.29.0])** +that are being deprecated. + +**Kind**: instance method of [TelegramBot](#TelegramBot) +**Returns**: Promise - True on success +**See**: https://core.telegram.org/bots/api#answercallbackquery + +| Param | Type | Description | +| --- | --- | --- | +| callbackQueryId | String | Unique identifier for the query to be answered | +| [options] | Object | Additional Telegram query options | + + + +### telegramBot.savePreparedInlineMessage(userId, result, [form]) ⇒ Promise +Use this method to get the unique identifier of the prepared message and expiration date of the prepared message as an object. + +**Kind**: instance method of [TelegramBot](#TelegramBot) +**Returns**: Promise - On success, returns a PreparedInlineMessage object +**See**: https://core.telegram.org/bots/api#savepreparedinlinemessage + +| Param | Type | Default | Description | +| --- | --- | --- | --- | +| userId | Number | | Unique identifier of the target user | +| result | Object | | The prepared inline message result to be saved | +| [form] | Object | {} | Optional form data to include in the request | + + + +### telegramBot.getUserChatBoosts(chatId, userId, [options]) ⇒ Promise +Use this method to get the list of boosts added to a chat by a use. +Requires administrator rights in the chat + +**Kind**: instance method of [TelegramBot](#TelegramBot) +**Returns**: Promise - On success, returns a [UserChatBoosts](https://core.telegram.org/bots/api#userchatboosts) object +**See**: https://core.telegram.org/bots/api#getuserchatboosts + +| Param | Type | Description | +| --- | --- | --- | +| chatId | Number \| String | Unique identifier for the group/channel | +| userId | Number | Unique identifier of the target user | +| [options] | Object | Additional Telegram query options | + + + +### telegramBot.getBusinessConnection(businessConnectionId, [options]) ⇒ Promise +Use this method to get information about the connection of the bot with a business account + +**Kind**: instance method of [TelegramBot](#TelegramBot) +**Returns**: Promise - On success, returns [BusinessConnection](https://core.telegram.org/bots/api#businessconnection) object +**See**: https://core.telegram.org/bots/api#getbusinessconnection + +| Param | Type | Description | +| --- | --- | --- | +| businessConnectionId | Number \| String | Unique identifier for the group/channel | +| [options] | Object | Additional Telegram query options | + + + +### telegramBot.setMyCommands(commands, [options]) ⇒ Promise +Use this method to change the list of the bot's commands. + +See https://core.telegram.org/bots#commands for more details about bot commands + +**Kind**: instance method of [TelegramBot](#TelegramBot) +**Returns**: Promise - True on success +**See**: https://core.telegram.org/bots/api#setmycommands + +| Param | Type | Description | +| --- | --- | --- | +| commands | Array | List of bot commands to be set as the list of the [bot's commands](https://core.telegram.org/bots/api#botcommand). At most 100 commands can be specified. | +| [options] | Object | Additional Telegram query options | + + + +### telegramBot.deleteMyCommands([options]) ⇒ Promise +Use this method to delete the list of the bot's commands for the given scope and user language. + + After deletion, [higher level commands](https://core.telegram.org/bots/api#determining-list-of-commands) will be shown to affected users. + +**Kind**: instance method of [TelegramBot](#TelegramBot) +**Returns**: Promise - True on success +**See**: https://core.telegram.org/bots/api#deletemycommands + +| Param | Type | Description | +| --- | --- | --- | +| [options] | Object | Additional Telegram query options | + + + +### telegramBot.getMyCommands([options]) ⇒ Promise +Use this method to get the current list of the bot's commands for the given scope and user language. + +**Kind**: instance method of [TelegramBot](#TelegramBot) +**Returns**: Promise - Array of [BotCommand](https://core.telegram.org/bots/api#botcommand) on success. If commands aren't set, an empty list is returned. +**See**: https://core.telegram.org/bots/api#getmycommands + +| Param | Type | Description | +| --- | --- | --- | +| [options] | Object | Additional Telegram query options | + + + +### telegramBot.setMyName([options]) ⇒ Promise +Use this method to change the bot's name. + +**Kind**: instance method of [TelegramBot](#TelegramBot) +**Returns**: Promise - True on success +**See**: https://core.telegram.org/bots/api#setmyname + +| Param | Type | Description | +| --- | --- | --- | +| [options] | Object | Additional Telegram query options | + + + +### telegramBot.getMyName([options]) ⇒ Promise +Use this method to get the current bot name for the given user language. + +**Kind**: instance method of [TelegramBot](#TelegramBot) +**Returns**: Promise - [BotName](https://core.telegram.org/bots/api#botname) on success +**See**: https://core.telegram.org/bots/api#getmyname + +| Param | Type | Description | +| --- | --- | --- | +| [options] | Object | Additional Telegram query options | + + + +### telegramBot.setMyDescription([options]) ⇒ Promise +Use this method to change the bot's description, which is shown in the chat with the bot if the chat is empty. + +Returns True on success. + +**Kind**: instance method of [TelegramBot](#TelegramBot) +**Returns**: Promise - True on success +**See**: https://core.telegram.org/bots/api#setmydescription + +| Param | Type | Description | +| --- | --- | --- | +| [options] | Object | Additional Telegram query options | + + + +### telegramBot.getMyDescription([options]) ⇒ Promise +Use this method to get the current bot description for the given user language. + +**Kind**: instance method of [TelegramBot](#TelegramBot) +**Returns**: Promise - Returns [BotDescription](https://core.telegram.org/bots/api#botdescription) on success. +**See**: https://core.telegram.org/bots/api#getmydescription + +| Param | Type | Description | +| --- | --- | --- | +| [options] | Object | Additional Telegram query options | + + + +### telegramBot.setMyShortDescription([options]) ⇒ Promise +Use this method to change the bot's short description, which is shown on the bot's profile page +and is sent together with the link when users share the bot. + +**Kind**: instance method of [TelegramBot](#TelegramBot) +**Returns**: Promise - Returns True on success. +**See**: https://core.telegram.org/bots/api#setmyshortdescription + +| Param | Type | Description | +| --- | --- | --- | +| [options] | Object | Additional Telegram query options | + + + +### telegramBot.getMyShortDescription([options]) ⇒ Promise +Use this method to get the current bot short description for the given user language. + +**Kind**: instance method of [TelegramBot](#TelegramBot) +**Returns**: Promise - Returns [BotShortDescription](https://core.telegram.org/bots/api#botshortdescription) on success. +**See**: https://core.telegram.org/bots/api#getmyshortdescription + +| Param | Type | Description | +| --- | --- | --- | +| [options] | Object | Additional Telegram query options | + + + +### telegramBot.setChatMenuButton([options]) ⇒ Promise +Use this method to change the bot's menu button in a private chat, or the default menu button. + +**Kind**: instance method of [TelegramBot](#TelegramBot) +**Returns**: Promise - True on success +**See**: https://core.telegram.org/bots/api#setchatmenubutton + +| Param | Type | Description | +| --- | --- | --- | +| [options] | Object | Additional Telegram query options | + + + +### telegramBot.getChatMenuButton([options]) ⇒ Promise +Use this method to get the current value of the bot's menu button in a private chat, or the default menu button. + +**Kind**: instance method of [TelegramBot](#TelegramBot) +**Returns**: Promise - [MenuButton](https://core.telegram.org/bots/api#menubutton) on success +**See**: https://core.telegram.org/bots/api#getchatmenubutton + +| Param | Type | Description | +| --- | --- | --- | +| [options] | Object | Additional Telegram query options | + + + +### telegramBot.setMyDefaultAdministratorRights([options]) ⇒ Promise +Use this method to change the default administrator rights requested by the bot when it's added as an administrator to groups or channels. + +These rights will be suggested to users, but they are are free to modify the list before adding the bot. + +**Kind**: instance method of [TelegramBot](#TelegramBot) +**Returns**: Promise - True on success +**See**: https://core.telegram.org/bots/api#getchatmenubutton + +| Param | Type | Description | +| --- | --- | --- | +| [options] | Object | Additional Telegram query options | + + + +### telegramBot.getMyDefaultAdministratorRights([options]) ⇒ Promise +Use this method to get the current default administrator rights of the bot. + +**Kind**: instance method of [TelegramBot](#TelegramBot) +**Returns**: Promise - [ChatAdministratorRights](https://core.telegram.org/bots/api#chatadministratorrights) on success +**See**: https://core.telegram.org/bots/api#getmydefaultadministratorrights + +| Param | Type | Description | +| --- | --- | --- | +| [options] | Object | Additional Telegram query options | + + + +### telegramBot.editMessageText(text, [options]) ⇒ Promise +Use this method to edit text or [game](https://core.telegram.org/bots/api#games) messages sent by the bot or via the bot (for inline bots). + +Note: that **you must provide one of chat_id, message_id, or inline_message_id** in your request. + +**Kind**: instance method of [TelegramBot](#TelegramBot) +**Returns**: Promise - On success, if the edited message is not an inline message, the edited [Message](https://core.telegram.org/bots/api#message) is returned, otherwise True is returned +**See**: https://core.telegram.org/bots/api#editmessagetext + +| Param | Type | Description | +| --- | --- | --- | +| text | String | New text of the message | +| [options] | Object | Additional Telegram query options (provide either one of chat_id, message_id, or inline_message_id here) | + + + +### telegramBot.editMessageCaption(caption, [options]) ⇒ Promise +Use this method to edit captions of messages sent by the bot or via the bot (for inline bots). + +Note: You **must provide one of chat_id, message_id, or inline_message_id** in your request. + +**Kind**: instance method of [TelegramBot](#TelegramBot) +**Returns**: Promise - On success, if the edited message is not an inline message, the edited [Message](https://core.telegram.org/bots/api#message) is returned, otherwise True is returned +**See**: https://core.telegram.org/bots/api#editmessagecaption + +| Param | Type | Description | +| --- | --- | --- | +| caption | String | New caption of the message | +| [options] | Object | Additional Telegram query options (provide either one of chat_id, message_id, or inline_message_id here) | + + + +### telegramBot.editMessageMedia(media, [options]) ⇒ Promise +Use this method to edit animation, audio, document, photo, or video messages. + +If a message is a part of a message album, then it can be edited only to a photo or a video. + +Otherwise, message type can be changed arbitrarily. When inline message is edited, new file can't be uploaded. +Use previously uploaded file via its file_id or specify a URL. + +Note: You **must provide one of chat_id, message_id, or inline_message_id** in your request. + +**Kind**: instance method of [TelegramBot](#TelegramBot) +**Returns**: Promise - On success, if the edited message is not an inline message, the edited [Message](https://core.telegram.org/bots/api#message) is returned, otherwise True is returned +**See**: https://core.telegram.org/bots/api#editmessagemedia + +| Param | Type | Description | +| --- | --- | --- | +| media | Object | A JSON-serialized object for a new media content of the message | +| [options] | Object | Additional Telegram query options (provide either one of chat_id, message_id, or inline_message_id here) | + + + +### telegramBot.editMessageReplyMarkup(replyMarkup, [options]) ⇒ Promise +Use this method to edit only the reply markup of messages sent by the bot or via the bot (for inline bots). + +Note: You **must provide one of chat_id, message_id, or inline_message_id** in your request. + +**Kind**: instance method of [TelegramBot](#TelegramBot) +**Returns**: Promise - On success, if the edited message is not an inline message, the edited [Message](https://core.telegram.org/bots/api#message) is returned, otherwise True is returned +**See**: https://core.telegram.org/bots/api#editmessagetext + +| Param | Type | Description | +| --- | --- | --- | +| replyMarkup | Object | A JSON-serialized object for an inline keyboard. | +| [options] | Object | Additional Telegram query options (provide either one of chat_id, message_id, or inline_message_id here) | + + + +### telegramBot.stopPoll(chatId, pollId, [options]) ⇒ Promise +Use this method to stop a poll which was sent by the bot. + +**Kind**: instance method of [TelegramBot](#TelegramBot) +**Returns**: Promise - On success, the stopped [Poll](https://core.telegram.org/bots/api#poll) is returned +**See**: https://core.telegram.org/bots/api#stoppoll + +| Param | Type | Description | +| --- | --- | --- | +| chatId | Number \| String | Unique identifier for the group/channel | +| pollId | Number | Identifier of the original message with the poll | +| [options] | Object | Additional Telegram query options | + + + +### telegramBot.sendSticker(chatId, sticker, [options], [fileOptions]) ⇒ Promise +Use this method to send static .WEBP, [animated](https://telegram.org/blog/animated-stickers) .TGS, +or [video](https://telegram.org/blog/video-stickers-better-reactions) .WEBM stickers. + +**Kind**: instance method of [TelegramBot](#TelegramBot) +**Returns**: Promise - On success, the sent [Message](https://core.telegram.org/bots/api#message) is returned +**See**: https://core.telegram.org/bots/api#sendsticker + +| Param | Type | Description | +| --- | --- | --- | +| chatId | Number \| String | Unique identifier for the target chat or username of the target channel (in the format `@channelusername`) | +| 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 | +| [fileOptions] | Object | Optional file related meta-data | + + + +### telegramBot.getStickerSet(name, [options]) ⇒ Promise +Use this method to get a sticker set. + +**Kind**: instance method of [TelegramBot](#TelegramBot) +**Returns**: Promise - On success, a [StickerSet](https://core.telegram.org/bots/api#stickerset) object is returned +**See**: https://core.telegram.org/bots/api#getstickerset + +| Param | Type | Description | +| --- | --- | --- | +| name | String | Name of the sticker set | +| [options] | Object | Additional Telegram query options | + + + +### telegramBot.getCustomEmojiStickers(custom_emoji_ids, [options]) ⇒ Promise +Use this method to get information about custom emoji stickers by their identifiers. + +**Kind**: instance method of [TelegramBot](#TelegramBot) +**Returns**: Promise - Array of [Sticker](https://core.telegram.org/bots/api#sticker) objects. +**See**: https://core.telegram.org/bots/api#getcustomemojistickers + +| Param | Type | Description | +| --- | --- | --- | +| custom_emoji_ids | Array | List of custom emoji identifiers. At most 200 custom emoji identifiers can be specified. | +| [options] | Object | Additional Telegram query options | + + + +### telegramBot.uploadStickerFile(userId, sticker, stickerFormat, [options], [fileOptions]) ⇒ Promise +Use this method to upload a file with a sticker for later use in *createNewStickerSet* and *addStickerToSet* methods (can be used multiple +times). + +**Kind**: instance method of [TelegramBot](#TelegramBot) +**Returns**: Promise - On success, a [File](https://core.telegram.org/bots/api#file) object is returned +**See**: https://core.telegram.org/bots/api#uploadstickerfile + +| Param | Type | Default | Description | +| --- | --- | --- | --- | +| userId | Number | | User identifier of sticker file owner | +| sticker | String \| stream.Stream \| Buffer | | A file path or a Stream with the sticker in .WEBP, .PNG, .TGS, or .WEBM format. Can also be a `file_id` previously uploaded. | +| stickerFormat | String | static | Allow values: `static`, `animated` or `video` | +| [options] | Object | | Additional Telegram query options | +| [fileOptions] | Object | | Optional file related meta-data | + + + +### telegramBot.createNewStickerSet(userId, name, title, pngSticker, emojis, [options], [fileOptions]) ⇒ Promise +Use this method to create new sticker set owned by a user. + +The bot will be able to edit the created sticker set. + +You must use exactly one of the fields *png_sticker*, *tgs_sticker*, or *webm_sticker* + +**Kind**: instance method of [TelegramBot](#TelegramBot) +**Returns**: Promise - True on success +**See**: https://core.telegram.org/bots/api#createnewstickerset + +| Param | Type | Description | +| --- | --- | --- | +| userId | Number | User identifier of created sticker set owner | +| name | String | Short name of sticker set, to be used in `t.me/addstickers/` URLs (e.g., *"animals"*). Can contain only english letters, digits and underscores. Must begin with a letter, can't contain consecutive underscores and must end in `"_by_"`. `` is case insensitive. 1-64 characters. | +| title | String | Sticker set title, 1-64 characters | +| pngSticker | String \| stream.Stream \| Buffer | Png image with the sticker, must be up to 512 kilobytes in size, dimensions must not exceed 512px, and either width or height must be exactly 512px. | +| emojis | String | One or more emoji corresponding to the sticker | +| [options] | Object | Additional Telegram query options | +| [fileOptions] | Object | Optional file related meta-data | + + + +### telegramBot.addStickerToSet(userId, name, sticker, emojis, stickerType, [options], [fileOptions]) ⇒ Promise +Use this method to add a new sticker to a set created by the bot. + +You must use exactly one of the fields *png_sticker*, *tgs_sticker*, or *webm_sticker* + +Animated stickers can be added to animated sticker sets and only to them + +Note: +- Emoji sticker sets can have up to 200 sticker +- Static or Animated sticker sets can have up to 120 stickers + +**Kind**: instance method of [TelegramBot](#TelegramBot) +**Returns**: Promise - True on success +**See**: https://core.telegram.org/bots/api#addstickertoset + +| Param | Type | Default | Description | +| --- | --- | --- | --- | +| userId | Number | | User identifier of sticker set owner | +| name | String | | Sticker set name | +| sticker | String \| stream.Stream \| Buffer | | Png image with the sticker (must be up to 512 kilobytes in size, dimensions must not exceed 512px, and either width or height must be exactly 512px, [TGS animation](https://core.telegram.org/stickers#animated-sticker-requirements) with the sticker or [WEBM video](https://core.telegram.org/stickers#video-sticker-requirements) with the sticker. | +| emojis | String | | One or more emoji corresponding to the sticker | +| stickerType | String | png_sticker | Allow values: `png_sticker`, `tgs_sticker`, or `webm_sticker`. | +| [options] | Object | | Additional Telegram query options | +| [fileOptions] | Object | | Optional file related meta-data | + + + +### telegramBot.setStickerPositionInSet(sticker, position, [options]) ⇒ Promise +Use this method to move a sticker in a set created by the bot to a specific position. + +**Kind**: instance method of [TelegramBot](#TelegramBot) +**Returns**: Promise - True on success +**See**: https://core.telegram.org/bots/api#setstickerpositioninset + +| Param | Type | Description | +| --- | --- | --- | +| sticker | String | File identifier of the sticker | +| position | Number | New sticker position in the set, zero-based | +| [options] | Object | Additional Telegram query options | + + + +### telegramBot.deleteStickerFromSet(sticker, [options]) ⇒ Promise +Use this method to delete a sticker from a set created by the bot. + +**Kind**: instance method of [TelegramBot](#TelegramBot) +**Returns**: Promise - True on success +**See**: https://core.telegram.org/bots/api#deletestickerfromset +**Todo** + +- [ ] Add tests for this method! + + +| Param | Type | Description | +| --- | --- | --- | +| sticker | String | File identifier of the sticker | +| [options] | Object | Additional Telegram query options | + + + +### telegramBot.replaceStickerInSet(user_id, name, sticker, [options]) ⇒ Promise +Use this method to replace an existing sticker in a sticker set with a new one + +**Kind**: instance method of [TelegramBot](#TelegramBot) +**Returns**: Promise - True on success +**See**: https://core.telegram.org/bots/api#replacestickerinset +**Todo** + +- [ ] Add tests for this method! + + +| Param | Type | Description | +| --- | --- | --- | +| user_id | Number | User identifier of the sticker set owner | +| name | String | Sticker set name | +| sticker | String | File identifier of the sticker | +| [options] | Object | Additional Telegram query options | + + + +### telegramBot.setStickerEmojiList(sticker, emojiList, [options]) ⇒ Promise +Use this method to change the list of emoji assigned to a regular or custom emoji sticker. + +The sticker must belong to a sticker set created by the bot. + +**Kind**: instance method of [TelegramBot](#TelegramBot) +**Returns**: Promise - True on success +**See**: https://core.telegram.org/bots/api#setstickeremojilist + +| Param | Type | Description | +| --- | --- | --- | +| sticker | String | File identifier of the sticker | +| emojiList | Array | A JSON-serialized list of 1-20 emoji associated with the sticker | +| [options] | Object | Additional Telegram query options | + + + +### telegramBot.setStickerKeywords(sticker, [options]) ⇒ Promise +Use this method to change the list of emoji assigned to a `regular` or `custom emoji` sticker. + +The sticker must belong to a sticker set created by the bot. + +**Kind**: instance method of [TelegramBot](#TelegramBot) +**Returns**: Promise - True on success +**See**: https://core.telegram.org/bots/api#setstickerkeywords + +| Param | Type | Description | +| --- | --- | --- | +| sticker | String | File identifier of the sticker | +| [options] | Object | Additional Telegram query options | + + + +### telegramBot.setStickerMaskPosition(sticker, [options]) ⇒ Promise +Use this method to change the [mask position](https://core.telegram.org/bots/api#maskposition) of a mask sticker. + +The sticker must belong to a sticker set created by the bot. + +**Kind**: instance method of [TelegramBot](#TelegramBot) +**Returns**: Promise - True on success +**See**: https://core.telegram.org/bots/api#setstickermaskposition + +| Param | Type | Description | +| --- | --- | --- | +| sticker | String | File identifier of the sticker | +| [options] | Object | Additional Telegram query options | + + + +### telegramBot.setStickerSetTitle(name, title, [options]) ⇒ Promise +Use this method to set the title of a created sticker set. + +The sticker must belong to a sticker set created by the bot. + +**Kind**: instance method of [TelegramBot](#TelegramBot) +**Returns**: Promise - True on success +**See**: https://core.telegram.org/bots/api#setstickersettitle + +| Param | Type | Description | +| --- | --- | --- | +| name | String | Sticker set name | +| title | String | Sticker set title, 1-64 characters | +| [options] | Object | Additional Telegram query options | + + + +### telegramBot.setStickerSetThumbnail(userId, name, thumbnail, [options], [fileOptions]) ⇒ Promise +Use this method to add a thumb to a set created by the bot. + +Animated thumbnails can be set for animated sticker sets only. Video thumbnails can be set only for video sticker sets only + +**Kind**: instance method of [TelegramBot](#TelegramBot) +**Returns**: Promise - True on success +**See**: https://core.telegram.org/bots/api#setstickersetthumbnail + +| Param | Type | Description | +| --- | --- | --- | +| userId | Number | User identifier of sticker set owner | +| name | String | Sticker set name | +| thumbnail | String \| stream.Stream \| Buffer | A .WEBP or .PNG image with the thumbnail, must be up to 128 kilobytes in size and have width and height exactly 100px, a TGS animation with the thumbnail up to 32 kilobytes in size or a WEBM video with the thumbnail up to 32 kilobytes in size. Pass a file_id as a String to send a file that already exists on the Telegram servers, pass an HTTP URL as a String for Telegram to get a file from the Internet, or upload a new one. Animated sticker set thumbnails can't be uploaded via HTTP URL. | +| [options] | Object | Additional Telegram query options | +| [fileOptions] | Object | Optional file related meta-data | + + + +### telegramBot.setCustomEmojiStickerSetThumbnail(name, [options]) ⇒ Promise +Use this method to set the thumbnail of a custom emoji sticker set. + +The sticker must belong to a sticker set created by the bot. + +**Kind**: instance method of [TelegramBot](#TelegramBot) +**Returns**: Promise - True on success +**See**: https://core.telegram.org/bots/api#setcustomemojistickersetthumbnail + +| Param | Type | Description | +| --- | --- | --- | +| name | String | Sticker set name | +| [options] | Object | Additional Telegram query options | + + + +### telegramBot.deleteStickerSet(name, [options]) ⇒ Promise +Use this method to delete a sticker set that was created by the bot. + +The sticker must belong to a sticker set created by the bot. + +**Kind**: instance method of [TelegramBot](#TelegramBot) +**Returns**: Promise - True on success +**See**: https://core.telegram.org/bots/api#deletestickerset + +| Param | Type | Description | +| --- | --- | --- | +| name | String | Sticker set name | +| [options] | Object | Additional Telegram query options | + + + +### telegramBot.answerInlineQuery(inlineQueryId, results, [options]) ⇒ Promise +Send answers to an inline query. + +Note: No more than 50 results per query are allowed. + +**Kind**: instance method of [TelegramBot](#TelegramBot) +**Returns**: Promise - On success, True is returned +**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 | + + + +### telegramBot.answerWebAppQuery(webAppQueryId, result, [options]) ⇒ Promise +Use this method to set the result of an interaction with a [Web App](https://core.telegram.org/bots/webapps) +and send a corresponding message on behalf of the user to the chat from which the query originated. + +**Kind**: instance method of [TelegramBot](#TelegramBot) +**Returns**: Promise - On success, a [SentWebAppMessage](https://core.telegram.org/bots/api#sentwebappmessage) object is returned +**See**: https://core.telegram.org/bots/api#answerwebappquery + +| Param | Type | Description | +| --- | --- | --- | +| webAppQueryId | String | Unique identifier for the query to be answered | +| result | InlineQueryResult | object that represents one result of an inline query | +| [options] | Object | Additional Telegram query options | + + + +### telegramBot.sendInvoice(chatId, title, description, payload, providerToken, currency, prices, [options]) ⇒ Promise +Use this method to send an invoice. + +**Kind**: instance method of [TelegramBot](#TelegramBot) +**Returns**: Promise - On success, the sent [Message](https://core.telegram.org/bots/api#message) is returned +**See**: https://core.telegram.org/bots/api#sendinvoice + +| Param | Type | Description | +| --- | --- | --- | +| chatId | Number \| String | Unique identifier for the target chat or username of the target channel (in the format `@channelusername`) | +| title | String | Product name, 1-32 characters | +| description | String | Product description, 1-255 characters | +| payload | String | Bot defined invoice payload, 1-128 bytes. This will not be displayed to the user, use for your internal processes. | +| providerToken | String | Payments provider token, obtained via `@BotFather` | +| currency | String | Three-letter ISO 4217 currency code | +| prices | Array | Breakdown of prices | +| [options] | Object | Additional Telegram query options | + + + +### telegramBot.createInvoiceLink(title, description, payload, providerToken, currency, prices, [options]) ⇒ Promise +Use this method to create a link for an invoice. + +**Kind**: instance method of [TelegramBot](#TelegramBot) +**Returns**: Promise - The created invoice link as String on success. +**See**: https://core.telegram.org/bots/api#createinvoicelink + +| Param | Type | Description | +| --- | --- | --- | +| title | String | Product name, 1-32 characters | +| description | String | Product description, 1-255 characters | +| payload | String | Bot defined invoice payload | +| providerToken | String | Payment provider token | +| currency | String | Three-letter ISO 4217 currency code | +| prices | Array | Breakdown of prices | +| [options] | Object | Additional Telegram query options | + + + +### telegramBot.answerShippingQuery(shippingQueryId, ok, [options]) ⇒ Promise +Use this method to reply to shipping queries. + +If you sent an invoice requesting a shipping address and the parameter is_flexible was specified, +the Bot API will send an [Update](https://core.telegram.org/bots/api#update) with a shipping_query field to the bot + +**Kind**: instance method of [TelegramBot](#TelegramBot) +**Returns**: Promise - On success, True is returned +**See**: https://core.telegram.org/bots/api#answershippingquery + +| Param | Type | Description | +| --- | --- | --- | +| shippingQueryId | String | Unique identifier for the query to be answered | +| ok | Boolean | Specify if delivery of the product is possible | +| [options] | Object | Additional Telegram query options | + + + +### telegramBot.answerPreCheckoutQuery(preCheckoutQueryId, ok, [options]) ⇒ Promise +Use this method to respond to such pre-checkout queries + +Once the user has confirmed their payment and shipping details, the Bot API sends the final confirmation in the form of +an [Update](https://core.telegram.org/bots/api#update) with the field *pre_checkout_query*. + +**Note:** The Bot API must receive an answer within 10 seconds after the pre-checkout query was sent. + +**Kind**: instance method of [TelegramBot](#TelegramBot) +**Returns**: Promise - On success, True is returned +**See**: https://core.telegram.org/bots/api#answerprecheckoutquery + +| Param | Type | Description | +| --- | --- | --- | +| preCheckoutQueryId | String | Unique identifier for the query to be answered | +| ok | Boolean | Specify if every order details are ok | +| [options] | Object | Additional Telegram query options | + + + +### telegramBot.getStarTransactions([options]) ⇒ Promise +Use this method for get the bot's Telegram Star transactions in chronological order + +**Kind**: instance method of [TelegramBot](#TelegramBot) +**Returns**: Promise - On success, returns a [StarTransactions](https://core.telegram.org/bots/api#startransactions) object +**See**: https://core.telegram.org/bots/api#getstartransactions + +| Param | Type | Description | +| --- | --- | --- | +| [options] | Object | Additional Telegram query options | + + + +### telegramBot.refundStarPayment(userId, telegramPaymentChargeId, [options]) ⇒ Promise +Use this method for refund a successful payment in [Telegram Stars](https://t.me/BotNews/90) + +**Kind**: instance method of [TelegramBot](#TelegramBot) +**Returns**: Promise - On success, True is returned +**See**: https://core.telegram.org/bots/api#refundstarpayment + +| Param | Type | Description | +| --- | --- | --- | +| userId | Number | Unique identifier of the user whose payment will be refunded | +| telegramPaymentChargeId | String | Telegram payment identifier | +| [options] | Object | Additional Telegram query options | + + + +### telegramBot.sendGame(chatId, gameShortName, [options]) ⇒ Promise +Use this method to send a game. + +**Kind**: instance method of [TelegramBot](#TelegramBot) +**Returns**: Promise - On success, the sent [Message](https://core.telegram.org/bots/api#message) is returned +**See**: https://core.telegram.org/bots/api#sendgame + +| Param | Type | Description | +| --- | --- | --- | +| chatId | Number \| String | Unique identifier for the target chat or username of the target channel (in the format `@channelusername`) | +| gameShortName | String | name of the game to be sent. Set up your games via `@BotFather`. | +| [options] | Object | Additional Telegram query options | + + + +### telegramBot.setGameScore(userId, score, [options]) ⇒ Promise +Use this method to set the score of the specified user in a game message. + +**Kind**: instance method of [TelegramBot](#TelegramBot) +**Returns**: Promise - On success, if the message is not an inline message, the [Message](https://core.telegram.org/bots/api#message) is returned, otherwise True is returned +**See**: https://core.telegram.org/bots/api#setgamescore + +| Param | Type | Description | +| --- | --- | --- | +| userId | Number | Unique identifier of the target user | +| score | Number | New score value, must be non-negative | +| [options] | Object | Additional Telegram query options | + + + +### telegramBot.getGameHighScores(userId, [options]) ⇒ Promise +Use this method to get data for high score tables. + +Will return the score of the specified user and several of their neighbors in a game. + +**Kind**: instance method of [TelegramBot](#TelegramBot) +**Returns**: Promise - On success, returns an Array of [GameHighScore](https://core.telegram.org/bots/api#gamehighscore) objects +**See**: https://core.telegram.org/bots/api#getgamehighscores + +| Param | Type | Description | +| --- | --- | --- | +| userId | Number | Unique identifier of the target user | +| [options] | Object | Additional Telegram query options | + + + +### telegramBot.deleteMessage(chatId, messageId, [options]) ⇒ Promise +Use this method to delete a message, including service messages, with the following limitations: +- A message can only be deleted if it was sent less than 48 hours ago. +- A dice message can only be deleted if it was sent more than 24 hours ago. +- Bots can delete outgoing messages in groups and supergroups. +- Bots can delete incoming messages in groups, supergroups and channels. +- Bots granted `can_post_messages` permissions can delete outgoing messages in channels. +- If the bot is an administrator of a group, it can delete any message there. +- If the bot has `can_delete_messages` permission in a supergroup, it can delete any message there. + +**Kind**: instance method of [TelegramBot](#TelegramBot) +**Returns**: Promise - True on success +**See**: https://core.telegram.org/bots/api#deletemessage + +| Param | Type | Description | +| --- | --- | --- | +| chatId | Number \| String | Unique identifier for the target chat or username of the target channel (in the format @channelusername) | +| messageId | Number | Unique identifier of the target message | +| [options] | Object | Additional Telegram query options | + + + +### telegramBot.deleteMessages(chatId, messageIds, [options]) ⇒ [ 'Promise' ].<Boolean> +Use this method to delete multiple messages simultaneously. If some of the specified messages can't be found, they are skipped. + +**Kind**: instance method of [TelegramBot](#TelegramBot) +**Returns**: [ 'Promise' ].<Boolean> - True on success +**See**: https://core.telegram.org/bots/api#deletemessages + +| Param | Type | Description | +| --- | --- | --- | +| chatId | Number \| String | Unique identifier for the target chat or username of the target channel (in the format @channelusername) | +| messageIds | [ 'Array' ].<(Number\|String)> | Identifiers of 1-100 messages to delete. See deleteMessage for limitations on which messages can be deleted | +| [options] | Object | Additional Telegram query options | + + + +### TelegramBot.errors : Object +The different errors the library uses. + +**Kind**: static property of [TelegramBot](#TelegramBot) + + +### TelegramBot.messageTypes : [ 'Array' ].<String> +The types of message updates the library handles. + +**Kind**: static property of [TelegramBot](#TelegramBot) +* * * + + +[usage-sending-files-performance]:https://github.com/yagop/node-telegram-bot-api/tree/master/doc/usage.md#sending-files-performance +[setWebHook-v0.25.0]:https://github.com/yagop/node-telegram-bot-api/tree/4e5a493cadfaad5589a8d79e55d9e0d103000ce4#telegrambotsetwebhookurl-cert +[getUpdates-v0.25.0]:https://github.com/yagop/node-telegram-bot-api/tree/4e5a493cadfaad5589a8d79e55d9e0d103000ce4#TelegramBot+getUpdates +[getUserProfilePhotos-v0.25.0]:https://github.com/yagop/node-telegram-bot-api/tree/4e5a493cadfaad5589a8d79e55d9e0d103000ce4#TelegramBot+getUserProfilePhotos +[answerCallbackQuery-v0.27.1]:https://github.com/yagop/node-telegram-bot-api/blob/v0.27.1/doc/api.md#TelegramBot+answerCallbackQuery +[answerCallbackQuery-v0.29.0]:https://github.com/yagop/node-telegram-bot-api/blob/v0.29.0/doc/api.md#TelegramBot+answerCallbackQuery diff --git a/src/telegram.js b/src/telegram.js index 86efa41..3cee88b 100644 --- a/src/telegram.js +++ b/src/telegram.js @@ -2398,6 +2398,21 @@ class TelegramBot extends EventEmitter { return this._request('answerCallbackQuery', { form }); } + /** + * Use this method to get the unique identifier of the prepared message and expiration date of the prepared message as an object. + * + * @param {Number} userId Unique identifier of the target user + * @param {Object} result The prepared inline message result to be saved + * @param {Object} [form={}] Optional form data to include in the request + * @return {Promise} On success, returns a PreparedInlineMessage object + * @see https://core.telegram.org/bots/api#savepreparedinlinemessage + */ + savePreparedInlineMessage(userId, result, form = {}) { + form.user_id = userId; + form.result = stringify(result); + return this._request('savePreparedInlineMessage', { form }); + } + /** * Use this method to get the list of boosts added to a chat by a use. * Requires administrator rights in the chat