Bot class

Telegram Bot Object

Constructors

Bot({required String token, int timeout = 10, FutureOr onReady(Bot)?, FutureOr onStartFailed(Bot, Object, StackTrace)?, List<UpdateType>? allowedUpdates})
Create a new bot with the given token. As soon as bot is created, a getMe is called to validate the given token.

Properties

allowedUpdates List<UpdateType>?
List of allowed updates to be received
Can be changed while the bot is running
getter/setter pair
connectionErrorHandler ↔ (Future Function(Bot, Object, StackTrace)?)
Connection Error Handler
getter/setter pair
errorHandler ↔ (Future Function(Bot, Update, Object, StackTrace)?)
Error Handler
getter/setter pair
hashCode int
The hash code for this object.
no setterinherited
id int?
Returns current bot id, may be null if onReady has not been called already
no setter
isRunning bool
Returns true if the bot is currently getting updates, false otherwise
no setter
name String?
Returns current bot name, may be null if onReady has not been called already
no setter
runtimeType Type
A representation of the runtime type of the object.
no setterinherited
token String
Setup token to be used for API calls
no getterinherited
username String?
Returns current bot username, may be null if onReady has not been called already
no setter

Methods

addStickerToSet(String userId, String name, HttpFile pngSticker, String emojis, {MaskPosition? maskPosition}) Future<bool>
Use this method to add a new sticker to a set created by the bot.
inherited
addStickerToSetTgs(String userId, String name, HttpFile tgsSticker, String emojis, {MaskPosition? maskPosition}) Future<bool>
Use this method to add a new sticker to a set created by the bot.
inherited
addStickerToSetWebm(String userId, String name, HttpFile webmSticker, String emojis, {MaskPosition? maskPosition}) Future<bool>
Use this method to add a new sticker to a set created by the bot.
inherited
answerCallbackQuery(String callbackQueryId, {String? text, bool? showAlert, String? url, int? cacheTime}) Future<bool>
Use this method to send answers to callback queries sent from inline keyboards.
inherited
answerInlineQuery(String inlineQueryId, List<InlineQueryResult> results, {int? cacheTime, bool? isPersonal, String? nextOffset, String? switchPmText, String? switchPmParameter}) Future<bool>
Use this method to send answers to an inline query.
inherited
answerPreCheckoutQuery(String preCheckoutQueryId, bool ok, String errorMessage) Future<bool>
Once the user has confirmed their payment and shipping details, the Bot API sends the final confirmation in the form of an Update with the field pre_checkout_query.
inherited
answerShippingQuery(String shippingQueryId, bool ok, List<ShippingOption>? shippingOptions, String errorMessage) Future<bool>
If you sent an invoice requesting a shipping address and the parameter is_flexible was specified, the Bot API will send an Update with a shipping_query field to the bot.
inherited
answerWebAppQuery(String webAppQueryId, InlineQueryResult? result) Future<SentWebAppMessage>
Use this method to set the result of an interaction with a Web App and send a corresponding message on behalf of the user to the chat from which the query originated.
inherited
approveChatJoinRequest(ChatID chatId, int userId) Future<bool>
Use this method to approve a chat join request.
inherited
banChatMember(ChatID chatId, int userId, {int? untilDate, bool? revokeMessages}) Future<bool>
Use this method to ban a user in a group, a supergroup or a channel.
inherited
banChatSenderChat(ChatID chatId, int senderChatId) Future<bool>
Use this method to ban a channel chat in a supergroup or a channel.
inherited
close() Future<bool>
Use this method to close the bot instance before moving it from one local server to another. You need to delete the webhook before calling this method to ensure that the bot isn't launched again after server restart.
inherited
closeClient() → void
Close the http client
inherited
copyMessage(ChatID chatId, ChatID fromChatId, int messageId, {String? caption, ParseMode? parseMode, List<MessageEntity>? captionEntities, bool? disableNotification, bool? protectContent, int? replyToMessageId, bool? allowSendingWithoutReply, ReplyMarkup? replyMarkup}) Future<MessageId>
Use this method to copy messages of any kind.
inherited
Use this method to create an additional invite link for a chat.
inherited
Use this method to create a link for an invoice.
inherited
createNewStickerSet(String userId, String name, String title, HttpFile pngSticker, String emojis, {String? stickerType, MaskPosition? maskPosition}) Future<bool>
Use this method to create a new sticker set owned by a user.
inherited
createNewStickerSetTgs(String userId, String name, String title, HttpFile tgsSticker, String emojis, {String? stickerType, MaskPosition? maskPosition}) Future<bool>
Use this method to create a new sticker set owned by a user.
inherited
createNewStickerSetWebm(String userId, String name, String title, HttpFile webmSticker, String emojis, {String? stickerType, MaskPosition? maskPosition}) Future<bool>
Use this method to create a new sticker set owned by a user.
inherited
declineChatJoinRequest(ChatID chatId, int userId) Future<bool>
Use this method to decline a chat join request.
inherited
deleteChatPhoto(ChatID chatId) Future<bool>
Use this method to delete a chat photo.
inherited
deleteChatStickerSet(ChatID chatId) Future<bool>
Use this method to delete a group sticker set from a supergroup.
inherited
deleteMessage(ChatID chatId, int messageId) Future<bool>
Use this method to delete a message, including service messages, with the following limitations:
inherited
deleteMyCommands({BotCommandScope? scope, String? languageCode}) Future<bool>
Use this method to delete the list of the bot's commands for the given scope and user language.
inherited
deleteStickerFromSet(String sticker) Future<bool>
Use this method to delete a sticker from a set created by the bot.
inherited
deleteWebhook({bool? dropPendingUpdates}) Future<bool>
Use this method to remove webhook integration if you decide to switch back to getUpdates. Returns True on success.
inherited
download(String path) Future<Uint8List>
Download a file from path
inherited
Use this method to edit a non-primary invite link created by the bot.
inherited
editMessageCaption(ChatID? chatId, int? messageId, {String? caption, ParseMode? parseMode, List<MessageEntity>? captionEntities, ReplyMarkup? replyMarkup}) Future<Message>
Use this method to edit captions of messages.
inherited
editMessageCaptionInline(String? inlineMessageId, {String? caption, ParseMode? parseMode, List<MessageEntity>? captionEntities, ReplyMarkup? replyMarkup}) Future<bool>
Use this method to edit captions of messages.
inherited
editMessageLiveLocation(double latitude, double longitude, {ChatID? chatId, int? messageId, double? horizontalAccuracy, int? heading, int? proximityAlertRadius, ReplyMarkup? replyMarkup}) Future<Message>
Use this method to edit live location messages.
inherited
editMessageLiveLocationInline(double latitude, double longitude, {String? inlineMessageId, double? horizontalAccuracy, int? heading, int? proximityAlertRadius, ReplyMarkup? replyMarkup}) Future<bool>
Use this method to edit live location messages.
inherited
editMessageMedia(ChatID? chatId, int? messageId, InputMedia media, {ReplyMarkup? replyMarkup}) Future<Message>
Use this method to edit animation, audio, document, photo, or video messages.
inherited
editMessageMediaInline(String? inlineMessageId, InputMedia media, {ReplyMarkup? replyMarkup}) Future<bool>
Use this method to edit animation, audio, document, photo, or video messages.
inherited
editMessageReplyMarkup(ChatID? chatId, int? messageId, {ReplyMarkup? replyMarkup}) Future<Message>
Use this method to edit only the reply markup of messages.
inherited
editMessageReplyMarkupInline(String? inlineMessageId, {ReplyMarkup? replyMarkup}) Future<bool>
Use this method to edit only the reply markup of messages.
inherited
editMessageText(String text, ChatID? chatId, int? messageId, {ParseMode? parseMode, List<MessageEntity>? entities, bool? disableWebPagePreview, ReplyMarkup? replyMarkup}) Future<Message>
Use this method to edit text and game messages.
inherited
editMessageTextInline(String text, String? inlineMessageId, {ParseMode? parseMode, List<MessageEntity>? entities, bool? disableWebPagePreview, ReplyMarkup? replyMarkup}) Future<bool>
Use this method to edit text and game messages.
inherited
Use this method to generate a new primary invite link for a chat; any previously generated primary link is revoked.
inherited
forwardMessage(ChatID chatId, ChatID fromChatId, int messageId, {bool? disableNotification, bool? protectContent}) Future<Message>
Use this method to forward messages of any kind. Service messages can't be forwarded.
inherited
getChat(ChatID chatId) Future<Chat>
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.).
inherited
getChatAdministrators(ChatID chatId) Future<List<ChatMember>>
Use this method to get a list of administrators in a chat.
inherited
getChatMember(ChatID chatId, int userId) Future<ChatMember>
Use this method to get information about a member of a chat.
inherited
getChatMemberCount(ChatID chatId) Future<int>
Use this method to get the number of members in a chat.
inherited
getChatMenuButton({ChatID? chatId}) Future<MenuButton>
Use this method to get the current value of the bot's menu button in a private chat, or the default menu button.
inherited
getCustomEmojiStickers(List<String> customEmojiIds) Future<List<Sticker>>
Use this method to get information about custom emoji stickers by their identifiers. Returns an Array of Sticker objects
inherited
getFile(String fileId) Future<File>
Use this method to get basic info about a file and prepare it for downloading.
inherited
getGameHighScores(int userId, {ChatID? chatId, int? messageId}) Future<List<GameHighScore>>
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.
inherited
getGameHighScoresInline(int userId, {String? inlineMessageId}) Future<List<GameHighScore>>
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. Returns an Array of GameHighScore objects.
inherited
getMe() Future<User>
A simple method for testing your bot's auth token.
inherited
getMyCommands({BotCommandScope? scope, String? languageCode}) Future<List<BotCommand>>
Use this method to get the current list of the bot's commands for the given scope and user language.
inherited
getMyDefaultAdministratorRights({bool? forChannels}) Future<ChatAdministratorRights>
Use this method to get the current default administrator rights of the bot.
inherited
getStickerSet(String name) Future<StickerSet>
Use this method to get a sticker set.
inherited
getUpdates({int? timeout, int? offset, int? limit, List<UpdateType>? allowedUpdates}) Future<List<Update>>
Use this method to receive incoming updates using long polling.
inherited
getUserProfilePhotos(ChatID chatId, {int? offset, int? limit}) Future<UserProfilePhotos>
Use this method to get a list of profile pictures for a user.
inherited
leaveChat(ChatID chatId) Future<bool>
Use this method for your bot to leave a group, supergroup or channel.
inherited
logOut() Future<bool>
Use this method to log out 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.
inherited
noSuchMethod(Invocation invocation) → dynamic
Invoked when a nonexistent method or property is accessed.
inherited
onCommand(String command, Future callback(Bot, Update)) → void
Adds a new command callback which will be executed when the given command is received
onReady(Bot bot) Future
Override this method when extending this class
onStartFailed(Bot bot, Object err, StackTrace st) Future
Override this method when extending this class
onUpdate(Future callback(Bot, Update)) → void
Adds a new update handler which is executed on each update
If an handler throws an error, errorHandler is called and the next handler/update is elaborated
pinChatMessage(ChatID chatId, int messageId, {bool? disableNotification}) Future<bool>
Use this method to add a message to the list of pinned messages in a chat.
inherited
promoteChatMember(ChatID chatId, int userId, {bool? isAnonymous, bool? canChangeInfo, bool? canPostMessages, bool? canEditMessages, bool? canDeleteMessages, bool? canInviteUsers, bool? canRestrictMembers, bool? canPinMessages, bool? canPromoteMembers, bool? canManageVideoChats, bool? canManageChat}) Future<bool>
Use this method to promote or demote a user in a supergroup or a channel.
inherited
restrictChatMember(ChatID chatId, int userId, ChatPermissions permissions, {int? untilDate}) Future<bool>
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.
inherited
Use this method to revoke an invite link created by the bot.
inherited
sendAnimation(ChatID chatId, HttpFile animation, {int? duration, int? width, int? height, HttpFile? thumb, String? caption, ParseMode? parseMode, List<MessageEntity>? captionEntities, bool? disableNotification, bool? protectContent, int? replyToMessageId, bool? allowSendingWithoutReply, ReplyMarkup? replyMarkup}) Future<Message>
Use this method to send animation files (GIF or H.264/MPEG-4 AVC video without sound).
inherited
sendAudio(ChatID chatId, HttpFile audio, {String? caption, ParseMode? parseMode, List<MessageEntity>? captionEntities, int? duration, String? performer, String? title, HttpFile? thumb, bool? disableNotification, bool? protectContent, int? replyToMessageId, bool? allowSendingWithoutReply, ReplyMarkup? replyMarkup}) Future<Message>
Use this method to send audio files, if you want Telegram clients to display them in the music player.
inherited
sendChatAction(ChatID chatId, ChatAction action) Future<bool>
Use this method when you need to tell the user that something is happening on the bot's side.
inherited
sendContact(ChatID chatId, String phoneNumber, String? firstName, {String? lastName, String? vcard, bool? disableNotification, bool? protectContent, int? replyToMessageId, bool? allowSendingWithoutReply, ReplyMarkup? replyMarkup}) Future<Message>
Use this method to send phone contacts.
inherited
sendDice(ChatID chatId, {Emoji? emoji, bool? disableNotification, bool? protectContent, int? replyToMessageId, bool? allowSendingWithoutReply, ReplyMarkup? replyMarkup}) Future<Message>
Use this method to send an animated emoji that will display a random value.
inherited
sendDocument(ChatID chatId, HttpFile document, {HttpFile? thumb, String? caption, ParseMode? parseMode, List<MessageEntity>? captionEntities, bool? disableNotification, bool? protectContent, int? replyToMessageId, bool? allowSendingWithoutReply, ReplyMarkup? replyMarkup, bool? disableContentTypeDetection}) Future<Message>
Use this method to send general files.
inherited
sendGame(ChatID chatId, String gameShortName, {bool? disableNotification, bool? protectContent, int? replyToMessageId, bool? allowSendingWithoutReply, InlineKeyboardMarkup? replyMarkup}) Future<Message>
Use this method to send a game.
inherited
sendInvoice(ChatID chatId, String title, String description, String payload, String providerToken, String startParameter, String currency, List<LabeledPrice> prices, {String? providerData, String? photoUrl, int? photoSize, int? photoWidth, int? photoHeight, bool? needName, bool? needPhoneNumber, bool? needEmail, bool? needShippingAddress, bool? sendPhoneNumberToProvider, bool? sendEmailToProvider, bool? isFlexible, bool? disableNotification, bool? protectContent, int? replyToMessageId, bool? allowSendingWithoutReply, InlineKeyboardMarkup? replyMarkup}) Future<Message>
Use this method to send invoices.
inherited
sendLocation(ChatID chatId, double latitude, double longitude, {double? horizontalAccuracy, int? livePeriod, int? heading, int? proximityAlertRadius, bool? disableNotification, bool? protectContent, int? replyToMessageId, bool? allowSendingWithoutReply, ReplyMarkup? replyMarkup}) Future<Message>
Use this method to send point on the map.
inherited
sendMediaGroup(ChatID chatId, List<InputMedia> media, {bool? disableNotification, bool? protectContent, bool? allowSendingWithoutReply, int? replyToMessageId}) Future<List<Message>>
Use this method to send a group of photos, videos,documents or audios as an album.
inherited
sendMessage(ChatID chatId, String text, {ParseMode? parseMode, List<MessageEntity>? entities, bool? disableWebPagePreview, bool? disableNotification, bool? protectContent, int? replyToMessageId, bool? allowSendingWithoutReply, ReplyMarkup? replyMarkup}) Future<Message>
Use this method to send text messages.
inherited
sendPhoto(ChatID chatId, HttpFile photo, {String? caption, ParseMode? parseMode, List<MessageEntity>? captionEntities, bool? disableNotification, bool? protectContent, int? replyToMessageId, bool? allowSendingWithoutReply, ReplyMarkup? replyMarkup}) Future<Message>
Use this method to send photos.
inherited
sendPoll(ChatID chatId, String question, List<String> options, {bool? isAnonymous, String? type, bool? allowsMultipleAnswers, int? correctOptionId, String? explanation, String? explanationParseMode, List<MessageEntity>? explanationEntities, int? openPeriod, int? closeDate, bool? isClosed, bool? disableNotification, bool? protectContent, int? replyToMessageId, bool? allowSendingWithoutReply, ReplyMarkup? replyMarkup}) Future<Message>
Use this method to send a native poll.
inherited
sendSticker(ChatID chatId, HttpFile sticker, {bool? disableNotification, bool? protectContent, int? replyToMessageId, bool? allowSendingWithoutReply, ReplyMarkup? replyMarkup}) Future<Message>
Use this method to send static .WEBP, animated .TGS, or video .WEBM stickers.
inherited
sendVenue(ChatID chatId, double latitude, double longitude, String title, String address, {String? foursquareId, String? foursquareType, String? googlePlaceId, String? googlePlaceType, bool? disableNotification, bool? protectContent, int? replyToMessageId, bool? allowSendingWithoutReply, ReplyMarkup? replyMarkup}) Future<Message>
Use this method to send information about a venue.
inherited
sendVideo(ChatID chatId, HttpFile video, {int? duration, int? width, int? height, HttpFile? thumb, String? caption, ParseMode? parseMode, List<MessageEntity>? captionEntities, bool? supportsStreaming, bool? disableNotification, bool? protectContent, int? replyToMessageId, bool? allowSendingWithoutReply, ReplyMarkup? replyMarkup}) Future<Message>
Use this method to send video files, Telegram clients support mp4 videos (other formats may be sent as Document).
inherited
sendVideoNote(ChatID chatId, HttpFile videoNote, {int? duration, int? length, HttpFile? thumb, bool? disableNotification, bool? protectContent, int? replyToMessageId, bool? allowSendingWithoutReply, ReplyMarkup? replyMarkup}) Future<Message>
Use this method to send video messages.
inherited
sendVoice(ChatID chatId, HttpFile voice, {String? caption, ParseMode? parseMode, List<MessageEntity>? captionEntities, int? duration, bool? disableNotification, bool? protectContent, int? replyToMessageId, bool? allowSendingWithoutReply, ReplyMarkup? replyMarkup}) Future<Message>
Use this method to send audio files, if you want Telegram clients to display the file as a playable voice message.
inherited
setChatAdministratorCustomTitle(ChatID chatId, int userId, String customTitle) Future<bool>
Use this method to set a custom title for an administrator in a supergroup promoted by the bot.
inherited
setChatDescription(ChatID chatId, String description) Future<bool>
Use this method to change the description of a group, a supergroup or a channel.
inherited
setChatMenuButton({ChatID? chatId, MenuButton? menuButton}) Future<bool>
Use this method to change the bot's menu button in a private chat, or the default menu button.
inherited
setChatPermissions(ChatID chatId, ChatPermissions permissions) Future<bool>
Use this method to set default chat permissions for all members.
inherited
setChatPhoto(ChatID chatId, HttpFile photo) Future<bool>
Use this method to set a new profile photo for the chat.
inherited
setChatStickerSet(ChatID chatId, String stickerSetName) Future<bool>
Use this method to set a new group sticker set for a supergroup.
inherited
setChatTitle(ChatID chatId, String title) Future<bool>
Use this method to change the title of a chat.
inherited
setGameScore(int userId, int score, {bool? force, bool? disableEditMessage, ChatID? chatId, int? messageId}) Future<Message>
Use this method to set the score of the specified user in a game message.
inherited
setGameScoreInline(int userId, int score, {bool? force, bool? disableEditMessage, String? inlineMessageId}) Future<bool>
Use this method to set the score of the specified user in a game message.
inherited
setMyCommands(List<BotCommand> botCommands, {BotCommandScope? scope, String? languageCode}) Future<bool>
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.
inherited
setMyDefaultAdministratorRights({ChatAdministratorRights? rights, bool? forChannels}) Future<bool>
Use this method to change the default administrator rights requested by the bot when it's added as an administrator to groups or channels.
inherited
setStickerPositionInSet(String sticker, int position) Future<bool>
Use this method to move a sticker in a set created by the bot to a specific position.
inherited
setStickerSetThumb(String name, String userId, {HttpFile? thumb}) Future<bool>
Use this method to set the thumbnail of a sticker set. Animated thumbnails can be set for animated sticker sets only. Video thumbnails can be set only for video sticker sets only.
inherited
start({bool clean = false}) Future
Start getting updates, if clean is true, previous updates will be dropped
stop() → void
Stops bot if it's running, only closes the http client if not
stopMessageLiveLocation({ChatID? chatId, int? messageId, ReplyMarkup? replyMarkup}) Future<Message>
Use this method to stop updating a live location message before live_period expires.
inherited
stopMessageLiveLocationInline({String? inlineMessageId, ReplyMarkup? replyMarkup}) Future<bool>
Use this method to stop updating a live location message before live_period expires.
inherited
stopPoll(ChatID chatId, int messageId, {ReplyMarkup? replyMarkup}) Future<Poll>
Use this method to stop a poll which was sent by the bot.
inherited
toString() String
A string representation of this object.
inherited
unbanChatMember(ChatID chatId, int userId, {bool? onlyIfBanned}) Future<bool>
Use this method to unban a previously kicked user in a supergroup or channel. The user will not return to the group or channel automatically, but will be able to join via link, etc.
inherited
unbanChatSenderChat(ChatID chatId, int senderChatId) Future<bool>
Use this method to unban a previously banned channel chat in a supergroup or channel.
inherited
unpinAllChatMessages(ChatID chatId) Future<bool>
Use this method to clear the list of pinned messages in a chat.
inherited
unpinChatMessage(ChatID chatId, {int? messageId}) Future<bool>
Use this method to remove a message from the list of pinned messages in a chat.
inherited
updateMe() Future
Update bot info, useful if bot info are changed from BotFather while the bot is running
uploadStickerFile(String userId, HttpFile pngSticker) Future<File>
Use this method to upload a .PNG file with a sticker for later use in createNewStickerSet and addStickerToSet methods (can be used multiple times).
inherited

Operators

operator ==(Object other) bool
The equality operator.
inherited