package models
- Alphabetic
- Public
- All
Type Members
- final case class Animation(fileId: String, fileUniqueId: String, width: Int, height: Int, duration: Int, thumb: Option[PhotoSize], fileName: Option[String], mimeType: Option[String], fileSize: Option[Int]) extends Product with Serializable
Represents an animation file (GIF or H.264/MPEG-4 AVC video without sound).
Represents an animation file (GIF or H.264/MPEG-4 AVC video without sound).
- fileId
Unique identifier for this file
- fileUniqueId
Unique identifier for this file, which is supposed to be the same over time and for different bots. Can't be used to download or reuse the file.
- width
Video width as defined by sender
- height
Video height as defined by sender
- duration
Duration of the video in seconds as defined by sender
- thumb
Animation thumbnail as defined by s ender
- fileName
Original animation filename as defined by sender
- mimeType
Mime type of a file as defined by sender
- fileSize
File size
- final case class Audio(fileId: String, fileUniqueId: String, duration: Int, performer: Option[String], title: Option[String], mimeType: Option[String], fileSize: Option[Int], thumb: Option[PhotoSize]) extends Product with Serializable
Represents an audio file to be treated as music by the Telegram clients.
Represents an audio file to be treated as music by the Telegram clients.
- fileId
Unique identifier
- fileUniqueId
Unique identifier for this file, which is supposed to be the same over time and for different bots. Can't be used to download or reuse the file.
- duration
Duration of the audio in seconds as defined by sender
- performer
Performer of the audio as defined by sender or by audio tags
- title
Title of the audio as defined by sender or by audio tags
- mimeType
MIME type of the file as defined by sender
- fileSize
File size
- thumb
Thumbnail of the album cover to which the music file belongs
- final case class CallbackButtonSelected(updateId: Long, callbackQuery: CallbackQuery) extends Update with Product with Serializable
New incoming callback query.
- sealed trait CallbackGame extends AnyRef
A placeholder, currently holds no information.
- final case class CallbackQuery(id: String, from: User, message: Option[TelegramMessage], inlineMessageId: Option[String], chatInstance: String, data: Option[String], gameShortName: Option[String]) extends Product with Serializable
Represents an incoming callback query from a callback button in an inline keyboard.
Represents an incoming callback query from a callback button in an inline keyboard.
If the button that originated the query was attached to a message sent by the bot, the field message will be presented. If the button was attached to a message sent via the bot (in inline mode), the field inline_message_id will be presented.
Note: After the user presses an inline button, Telegram clients will display a progress bar until you call answerCallbackQuery. It is, therefore, necessary to react by calling answerCallbackQuery even if no notification to the user is needed (e.g., without specifying any of the optional parameters).
- id
Unique identifier for this query
- from
Sender
- message
Message with the callback button that originated the query. Note that message content and message date will not be available if the message is too old
- inlineMessageId
Identifier of the message sent via the bot in inline mode, that originated the query
- chatInstance
Identifier, uniquely corresponding to the chat to which the message with the callback button was sent. Useful for high scores in games.
- data
Data associated with the callback button. Be aware that a bad client can send arbitrary data in this field.
- gameShortName
Short name of a Game to be returned, serves as the unique identifier for the game
- final case class Channel(id: Long, title: Option[String], username: Option[String]) extends Chat with Product with Serializable
- final case class ChannelPost(updateId: Long, channelPost: TelegramMessage) extends Update with Product with Serializable
New incoming channel post of any kind — text, photo, sticker, etc.
- final case class ChannelPostEdited(updateId: Long, editedChannelPost: TelegramMessage) extends Update with Product with Serializable
New version of a channel post that is known to the bot and was edited.
- sealed trait Chat extends AnyRef
- final case class ChatAdministrator(user: User, customTitle: Option[String], canBeEdited: Option[Boolean], canChangeInfo: Option[Boolean], canPostMessages: Option[Boolean], canEditMessages: Option[Boolean], canDeleteMessages: Option[Boolean], canRestrictMembers: Option[Boolean], canPromoteMembers: Option[Boolean], canInviteUsers: Option[Boolean], canPinMessages: Option[Boolean]) extends ChatMember with Product with Serializable
- final case class ChatCreator(user: User) extends ChatMember with Product with Serializable
- sealed trait ChatId extends AnyRef
Represents the id of a chat.
Represents the id of a chat. This may be the numeric id or channel username in the format
@channelusername. - sealed trait ChatMember extends AnyRef
- final case class ChatMigration(migrateToChatId: Long) extends ResponseParameters with Product with Serializable
The group has been migrated to a supergroup with the specified identifier.
- final case class ChatPermissions(canSendMessages: Option[Boolean] = None, canSendMediaMessages: Option[Boolean] = None, canSendPolls: Option[Boolean] = None, canSendOtherMessages: Option[Boolean] = None, canAddWebPagePreviews: Option[Boolean] = None, canChangeInfo: Option[Boolean] = None, canInviteUsers: Option[Boolean] = None, canPinMessages: Option[Boolean] = None) extends Product with Serializable
Describes actions that a non-administrator user is allowed to take in a chat.
Describes actions that a non-administrator user is allowed to take in a chat.
Unspecified parameters will be disabled, unless they are needed for enabling allowed actions. Example: specified canSendPolls will also enable canSendMessages option.
- final case class ChatPhoto(smallFileId: String, smallFileUniqueId: String, bigFileId: String, bigFileUniqueId: String) extends Product with Serializable
- smallFileId
Unique file identifier of small (160x160) chat photo. It can be used only for photo download.
- smallFileUniqueId
Unique file identifier of small (160x160) chat photo, which is supposed to be the same over time and for different bots. Can't be used to download or reuse the file.
- bigFileId
Unique file identifier of big (640x640) chat photo. It can be used only for photo download.
- bigFileUniqueId
Unique file identifier of big (640x640) chat photo, which is supposed to be the same over time and for different bots. Can't be used to download or reuse the file.
- final case class ChosenInlineResult(resultId: String, from: User, location: Option[Location], inlineMessageId: Option[String], query: String) extends Product with Serializable
Result of an inline query that was chosen by the user and sent to their chat partner.
Result of an inline query that was chosen by the user and sent to their chat partner.
- resultId
The unique identifier for the result that was chosen.
- from
The user that chose the result.
- location
Sender location, only for bots that require user location
- inlineMessageId
Identifier of the sent inline message. Available only if there is an inline keyboard attached to the message. Will be also received in callback queries and can be used to edit the message.
- query
The query that was used to obtain the result
- final case class Contact(phoneNumber: String, firstName: String, lastName: Option[String], userId: Option[Int], vcard: Option[String]) extends Product with Serializable
Represents a phone contact.
Represents a phone contact.
- phoneNumber
Contact's phone number
- firstName
Contact's first name
- lastName
Contact's last name
- userId
Contact's user identifier in Telegram
- vcard
Additional data about the contact in the form of a vCard
- final case class DetailedChat(id: Long, type: ChatType, title: Option[String], username: Option[String], firstName: Option[String], lastName: Option[String], permissions: Option[ChatPermissions], photo: Option[ChatPhoto], description: Option[String], inviteLink: Option[String], pinnedMessage: Option[TelegramMessage], slowModeDelay: Option[Int], stickerSetName: Option[String], canSetStickerSet: Option[Boolean]) extends Product with Serializable
- final case class Document(fileId: String, fileUniqueId: String, thumb: Option[PhotoSize], fileName: Option[String], mimeType: Option[String], fileSize: Option[Int]) extends Product with Serializable
Represents a general file (as opposed to photos, voice messages and audio files).
Represents a general file (as opposed to photos, voice messages and audio files).
- fileId
Unique identifier
- fileUniqueId
Unique identifier for this file, which is supposed to be the same over time and for different bots. Can't be used to download or reuse the file.
- thumb
Document thumbnail as defined by sender
- fileName
Original filename as defined by sender
- mimeType
MIME type of the file as defined by sender
- fileSize
File size
- final case class ExceededFloodControl(retryAfter: Int) extends ResponseParameters with Product with Serializable
Flood control was exceeded.
Flood control was exceeded.
- retryAfter
The number of seconds left to wait before the request can be repeated
- final case class File(fileId: String, fileUniqueId: String, fileSize: Option[Int], filePath: Option[String]) extends Product with Serializable
Represents a file ready to be downloaded.
Represents a file ready to be downloaded.
The file can be downloaded via the link https://api.telegram.org/file/bot<token>/<file_path>.
It is guaranteed that the link will be valid for at least 1 hour. When the link expires, a new one can be requested by using canoe.methods.files.GetFile. Maximum file size to download is 20 MB
- fileId
Unique identifier for this file
- fileUniqueId
Unique identifier for this file, which is supposed to be the same over time and for different bots. Can't be used to download or reuse the file.
- fileSize
File size, if known
- filePath
File path. Use https://api.telegram.org/file/bot<token>/<file_path> to get the file.
- final case class ForceReply(forceReply: Boolean = true, selective: Option[Boolean] = None) extends ReplyMarkup with Product with Serializable
Upon receiving a message with this object, Telegram clients will display a reply interface to the user (act as if the user has selected the bot's message and tapped 'Reply').
Upon receiving a message with this object, Telegram clients will display a reply interface to the user (act as if the user has selected the bot's message and tapped 'Reply'). This can be extremely useful if you want to create user-friendly step-by-step interfaces without having to sacrifice privacy mode.
Example: A poll bot for groups runs in privacy mode (only receives commands, replies to its messages and mentions). There could be two ways to create a new poll: Explain the user how to send a command with parameters (e.g. /newpoll question answer1 answer2). May be appealing for hardcore users but lacks modern day polish. Guide the user through a step-by-step process. 'Please send me your question', 'Cool, now let's add the first answer option', 'Great. Keep adding answer options, then send /done when you're ready'.
The last option is definitely more attractive. And if you use ForceReply in your bot's questions, it will receive the user's answers even if it only receives replies, commands and mentions - without any extra work for the user.
- forceReply
Shows reply interface to the user, as if they manually selected the bot's message and tapped 'Reply'
- selective
Use this parameter if you want to force reply from specific users only. Targets: 1) users that are @mentioned in the text of the Message object; 2) if the bot's message is a reply (has replyToMessage_id), sender of the original message.
- final case class Game(title: String, description: String, photo: List[PhotoSize], text: Option[String], textEntities: Option[List[MessageEntity]], animation: Option[Animation]) extends Product with Serializable
Represents a Telegram game.
Represents a Telegram game. Use BotFather to create and edit games, their short names will act as unique identifiers.
- title
Title of the game
- description
Description of the game
- photo
Photo that will be displayed in the game message in chats.
- text
Brief description of the game or high scores included in the game message. Can be automatically edited to include current high scores for the game when the bot calls setGameScore, or manually edited using editMessageText. 0-4096 characters.
- textEntities
Special entities that appear in text, such as usernames, URLs, bot commands, etc.
- animation
Animation that will be displayed in the game message in chats. Can be uploaded via BotFather
- final case class GameHighScore(position: Long, user: User, score: Long) extends Product with Serializable
One row of the high scores table for a game.
One row of the high scores table for a game.
- position
Position in high score table for the game
- final case class Group(id: Long, title: Option[String]) extends Chat with Product with Serializable
- final class InlineKeyboardButton extends AnyRef
Button of an inline keyboard.
Button of an inline keyboard. You must use exactly one of the optional fields.
Notes: This offers an easy way for users to start using your bot in inline mode when they are currently in a private chat with it. Especially useful when combined with switch_pm... actions - in this case the user will be automatically returned to the chat they switched from, skipping the chat selection screen. This will only work in Telegram versions released after 9 April, 2016. Older clients will display unsupported message.
NOTE: This type of button must always be the first button in the first row.
- final case class InlineKeyboardMarkup(inlineKeyboard: Seq[Seq[InlineKeyboardButton]]) extends ReplyMarkup with Product with Serializable
Represents an inline keyboard that appears right next to the message it belongs to.
Represents an inline keyboard that appears right next to the message it belongs to.
Warning: Inline keyboards are currently being tested and are only available in one-on-one chats (i.e., user-bot or user-user in the case of inline bots).
Note: This will only work in Telegram versions released after 9 April, 2016. Older clients will display unsupported message.
Warning: Inline keyboards are currently being tested and are not available in channels yet. For now, feel free to use them in one-on-one chats or groups.
- inlineKeyboard
Sequence of button rows, each represented by a sequence of InlineKeyboardButton objects
- final case class InlineQuery(id: String, from: User, location: Option[Location], query: String, offset: String) extends Product with Serializable
Incoming inline query.
Incoming inline query.
When the user sends an empty query, your bot could return some default or trending results.
- id
Unique identifier for this query
- from
Sender
- location
Sender location, only for bots that request user location
- query
Text of the query
- offset
Offset of the results to be returned, can be controlled by the bot
- final case class InlineQueryReceived(updateId: Long, inlineQuery: InlineQuery) extends Update with Product with Serializable
New incoming inline query.
- sealed trait InlineQueryResult extends AnyRef
This object represents one result of an inline query.
This object represents one result of an inline query. Telegram clients currently support results of the following 19 types:
InlineQueryResultCachedAudio InlineQueryResultCachedDocument InlineQueryResultCachedGif InlineQueryResultCachedMpeg4Gif InlineQueryResultCachedPhoto InlineQueryResultCachedSticker InlineQueryResultCachedVideo InlineQueryResultCachedVoice InlineQueryResultArticle InlineQueryResultAudio InlineQueryResultContact InlineQueryResultDocument InlineQueryResultGif InlineQueryResultLocation InlineQueryResultMpeg4Gif InlineQueryResultPhoto InlineQueryResultVenue InlineQueryResultVideo InlineQueryResultVoice
- final case class InlineQueryResultArticle(id: String, title: String, inputMessageContent: InlineQueryResultContent, replyMarkup: Option[InlineKeyboardMarkup] = None, url: Option[String] = None, hideUrl: Option[Boolean] = None, description: Option[String] = None, thumbUrl: Option[String] = None, thumbWidth: Option[Int] = None, thumbHeight: Option[Int] = None, type: String = "article") extends InlineQueryResult with Product with Serializable
Link to an article or web page.
Link to an article or web page.
- id
Unique identifier for this result, 1-64 Bytes
- title
Title of the result
- inputMessageContent
Content of the message to be sent
- replyMarkup
Inline keyboard attached to the message
- url
URL of the result
- hideUrl
Pass True, if you don't want the URL to be shown in the message
- description
Short description of the result
- thumbUrl
Url of the thumbnail for the result
- thumbWidth
Thumbnail width
- thumbHeight
Thumbnail height
- type
Type of the result, must be article
- final case class InlineQueryResultAudio(id: String, audioUrl: String, title: String, caption: Option[String] = None, parseMode: Option[ParseMode] = None, performer: Option[String] = None, audioDuration: Option[Int] = None, replyMarkup: Option[InlineKeyboardMarkup] = None, inputMessageContent: Option[InlineQueryResultContent] = None, type: String = "audio") extends InlineQueryResult with Product with Serializable
Link to an mp3 audio file.
Link to an mp3 audio file. By default, this audio file will be sent by the user.
Alternatively, you can use input_message_content to send a message with the specified content instead of the audio.
- id
Unique identifier for this result, 1-64 bytes
- audioUrl
A valid URL for the audio file
- title
Title
- caption
Caption, 0-200 characters
- parseMode
Parse mode of captured text (Markdown or HTML)
- performer
Performer
- audioDuration
Audio duration in seconds
- replyMarkup
Inline keyboard attached to the message
- inputMessageContent
Content of the message to be sent instead of the audio
- type
Type of the result, must be audio
- final case class InlineQueryResultCachedAudio(id: String, audioFileId: String, caption: Option[String] = None, parseMode: Option[ParseMode] = None, replyMarkup: Option[InlineKeyboardMarkup] = None, inputMessageContent: Option[InlineQueryResultContent] = None, type: String = "audio") extends InlineQueryResult with Product with Serializable
Link to an mp3 audio file stored on the Telegram servers.
Link to an mp3 audio file stored on the Telegram servers.
By default, this audio file will be sent by the user. Alternatively, you can use input_message_content to send a message with the specified content instead of the audio.
Note: This will only work in Telegram versions released after 9 April, 2016. Older clients will ignore them.
- id
Unique identifier for this result, 1-64 bytes
- audioFileId
A valid file identifier for the audio file
- caption
Caption, 0-200 characters
- parseMode
Parse mode of captured text (Markdown or HTML)
- replyMarkup
An Inline keyboard attached to the message
- inputMessageContent
Content of the message to be sent instead of the audio
- type
Type of the result, must be audio
- final case class InlineQueryResultCachedDocument(id: String, title: String, documentFileId: String, description: Option[String] = None, caption: Option[String] = None, parseMode: Option[ParseMode] = None, replyMarkup: Option[InlineKeyboardMarkup] = None, inputMessageContent: Option[InlineQueryResultContent] = None, type: String = "document") extends InlineQueryResult with Product with Serializable
Link to a file stored on the Telegram servers.
Link to a file stored on the Telegram servers.
By default, this file will be sent by the user with an optional caption. Alternatively, you can use input_message_content to send a message with the specified content instead of the file. Currently, only pdf-files and zip archives can be sent using this method.
Note: This will only work in Telegram versions released after 9 April, 2016. Older clients will ignore them.
- id
Unique identifier for this result, 1-64 bytes
- title
Title for the result
- documentFileId
A valid file identifier for the file
- description
Short description of the result
- caption
Caption of the document to be sent, 0-200 characters
- parseMode
Parse mode of captured text (Markdown or HTML)
- replyMarkup
An Inline keyboard attached to the message
- inputMessageContent
Content of the message to be sent instead of the file
- type
Type of the result, must be document
- final case class InlineQueryResultCachedGif(id: String, gifFileId: String, title: Option[String] = None, caption: Option[String] = None, parseMode: Option[ParseMode] = None, replyMarkup: Option[InlineKeyboardMarkup] = None, inputMessageContent: Option[InlineQueryResultContent] = None, type: String = "gif") extends InlineQueryResult with Product with Serializable
Link to an animated GIF file stored on the Telegram servers.
Link to an animated GIF file stored on the Telegram servers.
By default, this animated GIF file will be sent by the user with an optional caption. Alternatively, you can use input_message_content to send a message with specified content instead of the animation.
- id
String Unique identifier for this result, 1-64 bytes
- gifFileId
A valid file identifier for the GIF file
- title
Title for the result
- caption
Caption of the GIF file to be sent, 0-200 characters
- parseMode
Parse mode of captured text (Markdown or HTML)
- replyMarkup
An Inline keyboard attached to the message
- inputMessageContent
Content of the message to be sent instead of the GIF animation
- type
Type of the result, must be gif
- final case class InlineQueryResultCachedMpeg4Gif(id: String, mpeg4FileId: String, title: Option[String] = None, caption: Option[String] = None, parseMode: Option[ParseMode] = None, replyMarkup: Option[InlineKeyboardMarkup] = None, inputMessageContent: Option[InlineQueryResultContent] = None, type: String = "mpeg4_gif") extends InlineQueryResult with Product with Serializable
Link to a video animation (H.264/MPEG-4 AVC video without sound) stored on the Telegram servers.
Link to a video animation (H.264/MPEG-4 AVC video without sound) stored on the Telegram servers.
By default, this animated MPEG-4 file will be sent by the user with an optional caption. Alternatively, you can use input_message_content to send a message with the specified content instead of the animation.
- id
Unique identifier for this result, 1-64 bytes
- mpeg4FileId
A valid file identifier for the MP4 file
- title
Title for the result
- caption
Caption of the MPEG-4 file to be sent, 0-200 characters
- parseMode
Parse mode of captured text (Markdown or HTML)
- replyMarkup
An Inline keyboard attached to the message
- inputMessageContent
Content of the message to be sent instead of the video animation
- type
Type of the result, must be mpeg4_gif
- final case class InlineQueryResultCachedPhoto(id: String, photoFileId: String, title: Option[String] = None, description: Option[String] = None, caption: Option[String] = None, parseMode: Option[ParseMode] = None, replyMarkup: Option[InlineKeyboardMarkup] = None, inputMessageContent: Option[InlineQueryResultContent] = None, type: String = "photo") extends InlineQueryResult with Product with Serializable
Link to a photo stored on the Telegram servers.
Link to a photo stored on the Telegram servers.
By default, this photo will be sent by the user with an optional caption. Alternatively, you can use input_message_content to send a message with the specified content instead of the photo.
- id
Unique identifier for this result, 1-64 bytes
- photoFileId
A valid file identifier of the photo
- title
Title for the result
- description
Short description of the result
- caption
Caption of the photo to be sent, 0-200 characters
- parseMode
Parse mode of captured text (Markdown or HTML)
- replyMarkup
Inline keyboard attached to the message
- inputMessageContent
Content of the message to be sent instead of the photo
- type
Type of the result, must be photo
- final case class InlineQueryResultCachedSticker(id: String, stickerFileId: String, replyMarkup: Option[InlineKeyboardMarkup] = None, inputMessageContent: Option[InlineQueryResultContent] = None, type: String = "sticker") extends InlineQueryResult with Product with Serializable
Link to a sticker stored on the Telegram servers.
Link to a sticker stored on the Telegram servers.
By default, this sticker will be sent by the user. Alternatively, you can use input_message_content to send a message with the specified content instead of the sticker.
Note: This will only work in Telegram versions released after 9 April, 2016. Older clients will ignore them.
- id
Unique identifier for this result, 1-64 bytes
- stickerFileId
A valid file identifier of the sticker
- replyMarkup
An Inline keyboard attached to the message
- inputMessageContent
Content of the message to be sent instead of the sticker
- type
Type of the result, must be sticker
- final case class InlineQueryResultCachedVideo(id: String, videoFileId: String, title: String, description: Option[String] = None, caption: Option[String] = None, parseMode: Option[ParseMode] = None, replyMarkup: Option[InlineKeyboardMarkup] = None, inputMessageContent: Option[InlineQueryResultContent] = None, type: String = "video") extends InlineQueryResult with Product with Serializable
Link to a video file stored on the Telegram servers.
Link to a video file stored on the Telegram servers.
By default, this video file will be sent by the user with an optional caption. Alternatively, you can use input_message_content to send a message with the specified content instead of the video.
- id
Unique identifier for this result, 1-64 bytes
- videoFileId
A valid file identifier for the video file
- title
Title for the result
- description
Short description of the result
- caption
Caption of the video to be sent, 0-200 characters
- parseMode
Parse mode of captured text (Markdown or HTML)
- replyMarkup
An Inline keyboard attached to the message
- inputMessageContent
Content of the message to be sent instead of the video
- type
Type of the result, must be video
- final case class InlineQueryResultCachedVoice(id: String, voiceFileId: String, title: String, caption: Option[String] = None, parseMode: Option[ParseMode] = None, replyMarkup: Option[InlineKeyboardMarkup] = None, inputMessageContent: Option[InlineQueryResultContent] = None, type: String = "voice") extends InlineQueryResult with Product with Serializable
Link to a voice message stored on the Telegram servers.
Link to a voice message stored on the Telegram servers.
By default, this voice message will be sent by the user. Alternatively, you can use input_message_content to send a message with the specified content instead of the voice message.
Note: This will only work in Telegram versions released after 9 April, 2016. Older clients will ignore them.
- id
Unique identifier for this result, 1-64 bytes
- voiceFileId
A valid file identifier for the voice message
- title
Voice message title
- caption
Caption, 0-200 characters
- parseMode
Parse mode of captured text (Markdown or HTML)
- replyMarkup
An Inline keyboard attached to the message
- inputMessageContent
Content of the message to be sent instead of the voice message
- type
Type of the result, must be voice
- final case class InlineQueryResultContact(id: String, phoneNumber: String, firstName: String, lastName: Option[String] = None, vcard: Option[String] = None, replyMarkup: Option[InlineKeyboardMarkup] = None, inputMessageContent: Option[InlineQueryResultContent] = None, thumbUrl: Option[String] = None, thumbWidth: Option[Int] = None, thumbHeight: Option[Int] = None, type: String = "contact") extends InlineQueryResult with Product with Serializable
Contact with a phone number.
Contact with a phone number.
By default, this contact will be sent by the user. Alternatively, you can use input_message_content to send a message with the specified content instead of the contact.
Note: This will only work in Telegram versions released after 9 April, 2016. Older clients will ignore them.
- id
Unique identifier for this result, 1-64 Bytes
- phoneNumber
Contact's phone number
- firstName
Contact's first name
- lastName
Contact's last name
- vcard
Additional data about the contact in the form of a vCard, 0-2048 bytes
- replyMarkup
Inline keyboard attached to the message
- inputMessageContent
Content of the message to be sent instead of the contact
- thumbUrl
Url of the thumbnail for the result
- thumbWidth
Thumbnail width
- thumbHeight
Thumbnail height
- type
Type of the result, must be contact
- final case class InlineQueryResultContactContent(phoneNumber: String, firstName: String, lastName: Option[String] = None, vcard: Option[String] = None) extends InlineQueryResultContent with Product with Serializable
Content of a contact message to be sent as the result of an inline query.
Content of a contact message to be sent as the result of an inline query.
Note: This will only work in Telegram versions released after 9 April, 2016. Older clients will ignore them.
- phoneNumber
Contact's phone number
- firstName
Contact's first name
- lastName
Contact's last name
- vcard
Additional data about the contact in the form of a vCard, 0-2048 bytes
- sealed trait InlineQueryResultContent extends AnyRef
Content of a message to be sent as a result of an inline query.
- final case class InlineQueryResultDocument(id: String, title: String, caption: Option[String] = None, parseMode: Option[ParseMode] = None, documentUrl: Option[String] = None, mimeType: String, description: Option[String] = None, replyMarkup: Option[InlineKeyboardMarkup] = None, inputMessageContent: Option[InlineQueryResultContent] = None, thumbUrl: Option[String] = None, thumbWidth: Option[Int] = None, thumbHeight: Option[Int] = None, type: String = "document") extends InlineQueryResult with Product with Serializable
Link to a file.
Link to a file.
By default, this file will be sent by the user with an optional caption. Alternatively, you can use input_message_content to send a message with the specified content instead of the file. Currently, only .PDF and .ZIP files can be sent using this method.
- id
Unique identifier for this result, 1-64 bytes
- title
Title for the result
- caption
Caption of the document to be sent, 0-200 characters
- parseMode
Parse mode of captured text (Markdown or HTML)
- documentUrl
A valid URL for the file
- mimeType
Mime type of the content of the file, either "application/pdf" or "application/zip"
- description
Short description of the result
- replyMarkup
Inline keyboard attached to the message
- inputMessageContent
Content of the message to be sent instead of the file
- thumbUrl
URL of the thumbnail (jpeg only) for the file
- thumbWidth
Thumbnail width
- thumbHeight
Thumbnail height
- type
Type of the result, must be document
- final case class InlineQueryResultGame(id: String, gameShortName: String, replyMarkup: Option[InlineKeyboardMarkup] = None, type: String = "game") extends InlineQueryResult with Product with Serializable
Game.
Game.
Note: This will only work in Telegram versions released after October 1, 2016. Older clients will not display any inline results if a game result is among them.
- id
Unique identifier for this result, 1-64 bytes
- gameShortName
Short name of the game
- replyMarkup
Inline keyboard attached to the message
- type
Type of the result, must be game
- final case class InlineQueryResultGif(id: String, gifUrl: String, gifWidth: Option[Int] = None, gifHeight: Option[Int] = None, gifDuration: Option[Int] = None, thumbUrl: String, title: Option[String] = None, caption: Option[String] = None, parseMode: Option[ParseMode] = None, replyMarkup: Option[InlineKeyboardMarkup] = None, inputMessageContent: Option[InlineQueryResultContent] = None, type: String = "gif") extends InlineQueryResult with Product with Serializable
Link to an animated GIF file.
Link to an animated GIF file.
By default, this animated GIF file will be sent by the user with optional caption. Alternatively, you can use input_message_content to send a message with the specified content instead of the animation.
- id
Unique identifier for this result, 1-64 bytes
- gifUrl
A valid URL for the GIF file. File size must not exceed 1MB
- gifWidth
Width of the GIF
- gifHeight
Height of the GIF
- gifDuration
Duration of the GIF
- thumbUrl
URL of the static thumbnail for the result (jpeg or gif)
- title
Title for the result
- caption
Caption of the GIF file to be sent, 0-200 characters
- parseMode
Parse mode of captured text (Markdown or HTML)
- replyMarkup
Inline keyboard attached to the message
- inputMessageContent
Content of the message to be sent instead of the GIF animation
- type
Type of the result, must be gif
- final case class InlineQueryResultLocation(id: String, latitude: Double, longitude: Double, title: String, livePeriod: Option[Int] = None, replyMarkup: Option[InlineKeyboardMarkup] = None, inputMessageContent: Option[InlineQueryResultContent] = None, thumbUrl: Option[String] = None, thumbWidth: Option[Int] = None, thumbHeight: Option[Int] = None, type: String = "location") extends InlineQueryResult with Product with Serializable
Location on a map.
Location on a map.
By default, the location will be sent by the user. Alternatively, you can use input_message_content to send a message with the specified content instead of the location.
Note: This will only work in Telegram versions released after 9 April, 2016. Older clients will ignore them.
- id
Unique identifier for this result, 1-64 Bytes
- latitude
Location latitude in degrees
- longitude
Location longitude in degrees
- title
Location title
- livePeriod
Period in seconds for which the location can be updated, should be between 60 and 86400.
- replyMarkup
Inline keyboard attached to the message
- inputMessageContent
Content of the message to be sent instead of the location
- thumbUrl
Url of the thumbnail for the result
- thumbWidth
Thumbnail width
- thumbHeight
Thumbnail height
- type
Type of the result, must be location
- final case class InlineQueryResultLocationContent(latitude: Double, longitude: Double) extends InlineQueryResultContent with Product with Serializable
Content of a location message to be sent as the result of an inline query.
Content of a location message to be sent as the result of an inline query.
Note: This will only work in Telegram versions released after 9 April, 2016. Older clients will ignore them.
- latitude
Latitude of the location in degrees
- longitude
Longitude of the location in degrees
- final case class InlineQueryResultMpeg4Gif(id: String, mpeg4Url: String, mpeg4Width: Option[Int] = None, mpeg4Height: Option[Int] = None, mpeg4Duration: Option[Int] = None, thumbUrl: String, title: Option[String] = None, caption: Option[String] = None, parseMode: Option[ParseMode] = None, replyMarkup: Option[InlineKeyboardMarkup] = None, inputMessageContent: Option[InlineQueryResultContent] = None, type: String = "mpeg4_gif") extends InlineQueryResult with Product with Serializable
Link to a video animation (H.264/MPEG-4 AVC video without sound).
Link to a video animation (H.264/MPEG-4 AVC video without sound).
By default, this animated MPEG-4 file will be sent by the user with optional caption. Alternatively, you can use input_message_content to send a message with the specified content instead of the animation.
- id
Unique identifier for this result, 1-64 bytes
- mpeg4Url
A valid URL for the MP4 file. File size must not exceed 1MB
- mpeg4Width
Video width
- mpeg4Height
Video height
- mpeg4Duration
Video duration
- thumbUrl
URL of the static thumbnail (jpeg or gif) for the result
- title
Title for the result
- caption
Caption of the MPEG-4 file to be sent, 0-200 characters
- parseMode
Parse mode of captured text (Markdown or HTML)
- replyMarkup
Inline keyboard attached to the message
- inputMessageContent
Content of the message to be sent instead of the video animation
- type
Type of the result, must be mpeg4_gif
- final case class InlineQueryResultPhoto(id: String, photoUrl: String, thumbUrl: String, photoWidth: Option[Int] = None, photoHeight: Option[Int] = None, title: Option[String] = None, description: Option[String] = None, caption: Option[String] = None, parseMode: Option[ParseMode] = None, replyMarkup: Option[InlineKeyboardMarkup] = None, inputMessageContent: Option[InlineQueryResultContent] = None, type: String = "photo") extends InlineQueryResult with Product with Serializable
Link to a photo.
Link to a photo.
By default, this photo will be sent by the user with optional caption. Alternatively, you can use input_message_content to send a message with the specified content instead of the photo.
- id
Unique identifier for this result, 1-64 bytes
- photoUrl
A valid URL of the photo. Photo must be in jpeg format. Photo size must not exceed 5MB
- thumbUrl
URL of the thumbnail for the photo
- photoWidth
Width of the photo
- photoHeight
Height of the photo
- title
Title for the result
- description
Short description of the result
- caption
Caption of the photo to be sent, 0-200 characters
- parseMode
Parse mode of captured text (Markdown or HTML)
- replyMarkup
Inline keyboard attached to the message
- inputMessageContent
Content of the message to be sent instead of the photo
- type
Type of the result, must be photo
- final case class InlineQueryResultTextContent(messageText: String, parseMode: Option[ParseMode] = None, disableWebPagePreview: Option[Boolean] = None) extends InlineQueryResultContent with Product with Serializable
Content of a text message to be sent as the result of an inline query.
Content of a text message to be sent as the result of an inline query.
- messageText
Text of the message to be sent, 1-4096 characters
- parseMode
Parse mode of captured text (Markdown or HTML)
- disableWebPagePreview
Disables link previews for links in the sent message
- final case class InlineQueryResultVenue(id: String, latitude: Double, longitude: Double, title: String, address: String, foursquareId: Option[String] = None, foursquareType: Option[String] = None, replyMarkup: Option[InlineKeyboardMarkup] = None, inputMessageContent: Option[InlineQueryResultContent] = None, thumbUrl: Option[String] = None, thumbWidth: Option[Int] = None, thumbHeight: Option[Int] = None, type: String = "venue") extends InlineQueryResult with Product with Serializable
Venue.
Venue.
By default, the venue will be sent by the user. Alternatively, you can use input_message_content to send a message with the specified content instead of the venue.
Note: This will only work in Telegram versions released after 9 April, 2016. Older clients will ignore them.
- id
Unique identifier for this result, 1-64 Bytes
- latitude
Latitude of the venue location in degrees
- longitude
Longitude of the venue location in degrees
- title
Title of the venue
- address
Address of the venue
- foursquareId
Foursquare identifier of the venue if known
- foursquareType
Foursquare type of the venue, if known. For example, “arts_entertainment/default”, “arts_entertainment/aquarium” or “food/icecream”.
- replyMarkup
Inline keyboard attached to the message
- inputMessageContent
Content of the message to be sent instead of the venue
- thumbUrl
Url of the thumbnail for the result
- thumbWidth
Thumbnail width
- thumbHeight
Thumbnail height
- type
Type of the result, must be venue
- final case class InlineQueryResultVenueContent(latitude: Double, longitude: Double, title: String, address: String, foursquareId: Option[String] = None, foursquareType: Option[String] = None) extends InlineQueryResultContent with Product with Serializable
Content of a venue message to be sent as the result of an inline query.
Content of a venue message to be sent as the result of an inline query.
Note: This will only work in Telegram versions released after 9 April, 2016. Older clients will ignore them.
- latitude
Latitude of the venue in degrees
- longitude
Longitude of the venue in degrees
- title
Name of the venue
- address
Address of the venue
- foursquareId
Foursquare identifier of the venue, if known
- foursquareType
Foursquare type of the venue, if known. For example, “arts_entertainment/default”, “arts_entertainment/aquarium” or “food/icecream”.
- final case class InlineQueryResultVideo(id: String, videoUrl: String, mimeType: String, thumbUrl: String, title: Option[String] = None, caption: Option[String] = None, parseMode: Option[ParseMode] = None, videoWidth: Option[Int] = None, videoHeight: Option[Int] = None, videoDuration: Option[Int] = None, description: Option[String] = None, replyMarkup: Option[InlineKeyboardMarkup] = None, inputMessageContent: Option[InlineQueryResultContent] = None, type: String = "video") extends InlineQueryResult with Product with Serializable
Link to a page containing an embedded video player or a video file.
Link to a page containing an embedded video player or a video file.
By default, this video file will be sent by the user with an optional caption. Alternatively, you can use input_message_content to send a message with the specified content instead of the video.
- id
Unique identifier for this result, 1-64 bytes
- videoUrl
A valid URL for the embedded video player or video file
- mimeType
Mime type of the content of video url, "text/html" or "video/mp4"
- thumbUrl
URL of the thumbnail (jpeg only) for the video
- title
Title for the result
- caption
Caption of the video to be sent, 0-200 characters
- parseMode
Parse mode of captured text (Markdown or HTML)
- videoWidth
Video width
- videoHeight
Video height
- videoDuration
Video duration in seconds
- description
Short description of the result
- replyMarkup
Inline keyboard attached to the message
- inputMessageContent
Content of the message to be sent instead of the video
- type
Type of the result, must be video
- final case class InlineQueryResultVoice(id: String, voiceUrl: String, title: String, caption: Option[String] = None, parseMode: Option[ParseMode] = None, voiceDuration: Option[Int] = None, replyMarkup: Option[InlineKeyboardMarkup] = None, inputMessageContent: Option[InlineQueryResultContent] = None, type: String = "voice") extends InlineQueryResult with Product with Serializable
Link to a voice recording in an .ogg container encoded with OPUS.
Link to a voice recording in an .ogg container encoded with OPUS.
By default, this voice recording will be sent by the user. Alternatively, you can use input_message_content to send a message with the specified content instead of the the voice message.
Note: This will only work in Telegram versions released after 9 April, 2016. Older clients will ignore them.
- id
Unique identifier for this result, 1-64 bytes
- voiceUrl
A valid URL for the voice recording
- title
Recording title
- caption
Caption, 0-200 characters
- parseMode
Parse mode of captured text (Markdown or HTML)
- voiceDuration
Recording duration in seconds
- replyMarkup
Inline keyboard attached to the message
- inputMessageContent
Content of the message to be sent instead of the voice recording
- type
Type of the result, must be voice
- final case class InlineResultSelected(updateId: Long, chosenInlineResult: ChosenInlineResult) extends Update with Product with Serializable
The result of an inline query that was chosen by a user and sent to their chat partner.
- sealed trait InputFile extends AnyRef
This object represents the contents of a file to be uploaded.
This object represents the contents of a file to be uploaded. Must be posted using multipart/form-data in the usual way that files are uploaded via the browser.
Resending files without reuploading There are two ways of sending a file (photo, sticker, audio etc.). If it's a new file, you can upload it using multipart/form-data. If the file is already on our servers, you don't need to reupload it: each file object has a file_id field, you can simply pass this file_id as a parameter instead.
It is not possible to change the file type when resending by file_id. I.e. a video can't be sent as a photo, a photo can't be sent as a document, etc. It is not possible to resend thumbnails. Resending a photo by file_id will send all of its sizes.
- sealed trait InputMedia extends Product
Represents the content of a media message to be sent.
- final case class InputMediaAnimation(media: InputFile, thumb: Option[InputFile] = None, caption: Option[String] = None, parseMode: Option[ParseMode] = None, width: Option[Int] = None, height: Option[Int] = None, duration: Option[Int] = None, type: String = "animation") extends InputMedia with Product with Serializable
Represents an animation file (GIF or H.264/MPEG-4 AVC video without sound) to be sent.
Represents an animation file (GIF or H.264/MPEG-4 AVC video without sound) to be sent.
- media
Input media file
- thumb
Thumbnail of the file sent
- caption
Caption of the animation to be sent, 0-200 characters
- parseMode
Parse mode of captured text
- width
Animation width
- height
Animation height
- duration
Animation duration
- type
Type of the result, must be animation
- final case class InputMediaAudio(media: InputFile, thumb: Option[InputFile] = None, caption: Option[String] = None, parseMode: Option[ParseMode] = None, duration: Option[Int] = None, performer: Option[String] = None, title: Option[String] = None, type: String = "audio") extends InputMedia with Product with Serializable
Represents an audio file to be treated as music to be sent.
Represents an audio file to be treated as music to be sent.
- media
Input media file
- thumb
Thumbnail of the file sent
- caption
Caption of the audio to be sent, 0-200 characters
- parseMode
Parse mode of input text
- duration
Duration of the audio in seconds
- performer
Performer of the audio
- title
Title of the audio
- type
Type of the result, must be audio
- final case class InputMediaDocument(media: InputFile, thumb: Option[InputFile] = None, caption: Option[String] = None, parseMode: Option[ParseMode] = None, type: String = "document") extends InputMedia with Product with Serializable
Represents a general file to be sent.
Represents a general file to be sent.
- media
Input media file
- thumb
Thumbnail of the file sent
- caption
Caption of the document to be sent, 0-200 characters
- parseMode
Parse mode of input text
- type
String Type of the result, must be document
- final case class InputMediaPhoto(media: InputFile, caption: Option[String] = None, parseMode: Option[ParseMode] = None, type: String = "photo") extends InputMedia with Product with Serializable
Represents a photo to be sent.
Represents a photo to be sent.
- media
Input media file
- caption
Caption of the photo to be sent, 0-200 characters
- parseMode
Parse mode of captured text
- type
Type of the result, must be photo
- final case class InputMediaVideo(media: InputFile, caption: Option[String] = None, width: Option[Int] = None, height: Option[Int] = None, duration: Option[Int] = None, parseMode: Option[ParseMode] = None, supportsStreaming: Option[Boolean] = None, type: String = "video") extends InputMedia with Product with Serializable
Represents a video to be sent.
Represents a video to be sent.
- media
Input media file
- caption
Caption of the video to be sent, 0-200 characters
- width
Video width
- height
Video height
- duration
Video duration
- parseMode
Parse mode of captured text
- supportsStreaming
Pass True, if the uploaded video is suitable for streaming
- type
Type of the result, must be video
- final case class Invoice(title: String, description: String, startParameter: String, currency: Currency, totalAmount: Long) extends Product with Serializable
Basic information about an invoice.
Basic information about an invoice.
- title
Product name
- description
Product description
- startParameter
Unique bot deep-linking parameter that can be used to generate this invoice
- currency
Three-letter ISO 4217 currency code
- totalAmount
Total price in the smallest units of the currency (integer, not float/double). For example, for a price of US$ 1.45 pass amount = 145. See the exp parameter in currencies.json, it shows the number of digits past the decimal point for each currency (2 for the majority of currencies).
- final class KeyboardButton extends AnyRef
Button of the reply keyboard.
Button of the reply keyboard. For simple text buttons String can be used instead of this object to specify text of the button. Optional fields are mutually exclusive.
- case class KeyboardButtonPollType(type: Option[String]) extends Product with Serializable
- final case class KickedMember(user: User, untilDate: Option[Int]) extends ChatMember with Product with Serializable
- final case class LabeledPrice(label: String, amount: Long) extends Product with Serializable
Portion of the price for goods or services.
Portion of the price for goods or services.
- label
Portion label
- amount
Price of the product in the smallest units of the currency (integer, not float/double). For example, for a price of US$ 1.45 pass amount = 145. See the exp parameter in currencies.json, it shows the number of digits past the decimal point for each currency (2 for the majority of currencies).
- final case class LeftMember(user: User) extends ChatMember with Product with Serializable
- final case class Location(longitude: Double, latitude: Double) extends Product with Serializable
Represents a point on the map.
- final case class LoginUrl(url: String, forwardText: Option[String] = None, botUsername: Option[String] = None, requestWriteAccess: Option[Boolean] = None) extends Product with Serializable
Represents a parameter of the inline keyboard button used to automatically authorize a user
Represents a parameter of the inline keyboard button used to automatically authorize a user
- url
An HTTP URL to be opened with user authorization data added to the query string when the button is pressed. If the user refuses to provide authorization data, the original URL without information about the user will be opened. The data added is the same as described in Receiving authorization data.
- forwardText
New text of the button in forwarded messages.
- botUsername
Username of a bot, which will be used for user authorization. If not specified, the current bot's username will be assumed.
- requestWriteAccess
Pass True to request the permission for your bot to send messages to the user.
- final case class MaskPosition(point: MaskPositionType, xShift: Double, yShift: Double, scale: Double) extends Product with Serializable
The position on faces where a mask should be placed by default.
The position on faces where a mask should be placed by default.
- point
The part of the face relative to which the mask should be placed. One of “forehead”, “eyes”, “mouth”, or “chin”.
- xShift
Shift by X-axis measured in widths of the mask scaled to the face size, from left to right. For example, choosing -1.0 will place mask just to the left of the default mask position.
- yShift
Shift by Y-axis measured in heights of the mask scaled to the face size, from top to bottom. For example, 1.0 will place the mask just below the default mask position.
- scale
Mask scaling coefficient. For example, 2.0 means double size.
- final case class MessageEdited(updateId: Long, editedMessage: TelegramMessage) extends Update with Product with Serializable
New version of a message that is known to the bot and was edited.
- sealed trait MessageEntity extends AnyRef
Represents one special entity in a text message.
Represents one special entity in a text message. For example, hashtags, usernames, URLs, etc.
- final case class MessageReceived(updateId: Long, message: TelegramMessage) extends Update with Product with Serializable
New incoming message of any kind — text, photo, sticker, etc.
- final case class OrderInfo(name: String, phoneNumber: String, email: String, shippingAddress: ShippingAddress) extends Product with Serializable
- name
User name
- phoneNumber
User's phone number
User email
- shippingAddress
User shipping address
- final case class OrdinaryMember(user: User) extends ChatMember with Product with Serializable
- final case class PhotoSize(fileId: String, fileUniqueId: String, width: Int, height: Int, fileSize: Option[Int]) extends Product with Serializable
Version of a photo or a file / sticker thumbnail of specifi1c size.
- final case class Poll(id: String, question: String, options: List[PollOption], totalVoterCount: Int, isClosed: Boolean, isAnonymous: Boolean, type: String, allowsMultipleAnswers: Boolean, correctOptionId: Option[Int]) extends Product with Serializable
Represents a poll in one of the Telegram chats.
Represents a poll in one of the Telegram chats.
- id
Unique poll identifier
- question
Poll question, 1-255 characters
- options
List of poll options
- totalVoterCount
Total number of users that voted in the poll
- isClosed
True, if the poll is closed
- isAnonymous
True, if the poll is anonymous
- allowsMultipleAnswers
True, if the poll allows multiple answers
- correctOptionId
0-based identifier of the correct answer option. Available only for polls in the quiz mode, which are closed, or was sent (not forwarded) by the bot or to the private chat with the bot.
- final case class PollAnswer(pollId: String, user: User, optionIds: List[Int]) extends Product with Serializable
Answer of a user in a non-anonymous poll.
- final case class PollAnswerReceived(updateId: Long, pollAnswer: PollAnswer) extends Update with Product with Serializable
A user changed their answer in a non-anonymous poll.
A user changed their answer in a non-anonymous poll. Bots receive new votes only in polls that were sent by the bot itself.
- final case class PollOption(text: String, voterCount: Int) extends Product with Serializable
This object contains information about one answer option in a poll.
This object contains information about one answer option in a poll.
- text
Option text, 1-100 characters
- voterCount
Number of users that voted for this option
- final case class PollUpdated(updateId: Long, poll: Poll) extends Update with Product with Serializable
New poll state.
New poll state. Bots receive only updates about stopped polls and polls, which are sent by the bot.
- final case class PreCheckoutQuery(id: String, from: User, currency: Currency, totalAmount: Long, invoicePayload: String, shippingOptionId: Option[String], orderInfo: Option[OrderInfo]) extends Product with Serializable
Information about an incoming pre-checkout query.
Information about an incoming pre-checkout query.
- id
Unique query identifier
- from
User who sent the query
- currency
Three-letter ISO 4217 currency code
- totalAmount
Total price in the smallest units of the currency (integer, not float/double). For example, for a price of US$ 1.45 pass amount = 145. See the exp parameter in currencies.json, it shows the number of digits past the decimal point for each currency (2 for the majority of currencies).
- invoicePayload
Bot specified invoice payload
- shippingOptionId
Identifier of the shipping option chosen by the user
- orderInfo
Order info provided by the user
- final case class PreCheckoutQueryReceived(updateId: Long, preCheckoutQuery: PreCheckoutQuery) extends Update with Product with Serializable
New incoming pre-checkout query.
New incoming pre-checkout query. Contains full information about checkout.
- final case class PrivateChat(id: Long, username: Option[String], firstName: Option[String], lastName: Option[String]) extends Chat with Product with Serializable
- final case class ReplyKeyboardMarkup(keyboard: Seq[Seq[KeyboardButton]], resizeKeyboard: Option[Boolean] = None, oneTimeKeyboard: Option[Boolean] = None, selective: Option[Boolean] = None) extends ReplyMarkup with Product with Serializable
Represents a custom keyboard with reply options (see Introduction to bots for details).
Represents a custom keyboard with reply options (see Introduction to bots for details).
Example: A user requests to change the bot's language, bot replies to the request with a keyboard to select the new language. Other users in the group don't see the keyboard.
- keyboard
Sequence of button rows, each represented by an Array of KeyboardButton objects
- resizeKeyboard
Requests clients to resize the keyboard vertically for optimal fit (e.g., make the keyboard smaller if there are just two rows of buttons). Defaults to false, in which case the custom keyboard is always of the same height as the app's standard keyboard.
- oneTimeKeyboard
Requests clients to hide the keyboard as soon as it's been used. Defaults to false.
- selective
Use this parameter if you want to show the keyboard to specific users only. Targets: 1) users that are @mentioned in the text of the Message object; 2) if the bot's message is a reply (has replyToMessage_id), sender of the original message.
- final case class ReplyKeyboardRemove(removeKeyboard: Boolean = true, selective: Option[Boolean] = None) extends ReplyMarkup with Product with Serializable
Upon receiving a message with this object, Telegram clients will remove the current custom keyboard and display the default letter-keyboard.
Upon receiving a message with this object, Telegram clients will remove the current custom keyboard and display the default letter-keyboard. By default, custom keyboards are displayed until a new keyboard is sent by a bot. An exception is made for one-time keyboards that are hidden immediately after the user presses a button (see ReplyKeyboardMarkup).
- removeKeyboard
Requests clients to remove the custom keyboard (user will not be able to summon this keyboard; if you want to hide the keyboard from sight but keep it accessible, use one_time_keyboard in ReplyKeyboardMarkup)
- selective
Use this parameter if you want to remove the keyboard for specific users only. Targets: 1) users that are @mentioned in the text of the Message object; 2) if the bot's message is a reply (has reply_to_message_id), sender of the original message. Example: A user votes in a poll, bot returns confirmation message in reply to the vote and removes the keyboard for that user, while still showing the keyboard with poll options to users who haven't voted yet.
- sealed trait ReplyMarkup extends AnyRef
Base for custom (keyboard) markups.
- final case class Response[R](ok: Boolean, result: Option[R], description: Option[String], errorCode: Option[Int], parameters: Option[ResponseParameters]) extends Product with Serializable
Telegram Bot API Response object
Telegram Bot API Response object
The response contains a JSON object. If 'ok' equals true, the request was successful and the result of the query can be found in the 'result' field. In case of an unsuccessful request, 'ok' equals false and the error is explained in the 'description'. An Integer 'error_code' field is also returned, but its contents are subject to change in the future.
- R
Expected result type
- ok
Signals if the request was successful
- result
Contains the response in a type-safely way
- description
A human-readable description of the result
- errorCode
Error code
- sealed trait ResponseParameters extends Product
Contains information about why a request was unsuccessful.
- final case class RestrictedMember(user: User, untilDate: Option[Int], isMember: Option[Boolean], canChangeInfo: Option[Boolean], canInviteUsers: Option[Boolean], canPinMessages: Option[Boolean], canSendMessages: Option[Boolean], canSendMediaMessages: Option[Boolean], canSendOtherMessages: Option[Boolean], canAddWebPagePreviews: Option[Boolean]) extends ChatMember with Product with Serializable
- final case class ShippingAddress(countryCode: CountryCode, state: String, city: String, streetLine1: String, streetLine2: String, postCode: String) extends Product with Serializable
This object represents a shipping address.
This object represents a shipping address. See CountryCode for a full listing.
Country codes can be easily found/validated using the following:
Locale .getISOCountries() .map(cc => (cc, new Locale("", cc) .getDisplayCountry())) .toMap
- countryCode
ISO 3166-1 alpha-2 country code
- state
State, if applicable
- city
City
- streetLine1
First line for the address
- streetLine2
Second line for the address
- postCode
Address post code
- final case class ShippingOption(id: String, title: String, prices: List[LabeledPrice]) extends Product with Serializable
- id
Shipping option identifier
- title
Option title
- prices
List of price portions
- final case class ShippingQuery(id: String, from: User, invoicePayload: String, shippingAddress: ShippingAddress) extends Product with Serializable
Information about an incoming shipping query.
Information about an incoming shipping query.
- id
Unique query identifier
- from
User who sent the query
- invoicePayload
Bot specified invoice payload
- shippingAddress
User specified shipping address
- final case class ShippingQueryReceived(updateId: Long, shippingQuery: ShippingQuery) extends Update with Product with Serializable
New incoming shipping query.
New incoming shipping query. Only for invoices with flexible price.
- final case class Sticker(fileId: String, fileUniqueId: String, width: Int, height: Int, isAnimated: Boolean, thumb: Option[PhotoSize], emoji: Option[String], setName: Option[String], maskPosition: Option[MaskPosition], fileSize: Option[Int]) extends Product with Serializable
- fileId
Unique identifier for this file
- fileUniqueId
Unique identifier for this file, which is supposed to be the same over time and for different bots. Can't be used to download or reuse the file.
- width
Sticker width
- height
Sticker height
- thumb
Sticker thumbnail in .webp or .jpg format
- emoji
Emoji associated with the sticker
- setName
Name of the sticker set to which the sticker belongs
- maskPosition
For mask stickers, the position where the mask should be placed
- fileSize
File size
- final case class StickerSet(name: String, title: String, isAnimated: Boolean, containsMasks: Boolean, stickers: List[Sticker]) extends Product with Serializable
- name
Sticker set name
- title
Sticker set title
- containsMasks
True, if the sticker set contains masks
- stickers
List of all set stickers
- final case class SuccessfulPayment(currency: Currency, totalAmount: Long, invoicePayload: String, shippingOptionId: Option[String], orderInfo: Option[OrderInfo], telegramPaymentChargeId: String, providerPaymentChargeId: String) extends Product with Serializable
Represents successful payment transaction.
Represents successful payment transaction.
- currency
Three-letter ISO 4217 currency code
- totalAmount
Total price in the smallest units of the currency (integer, not float/double). For example, for a price of US$ 1.45 pass amount = 145. See the exp parameter in currencies.json, it shows the number of digits past the decimal point for each currency (2 for the majority of currencies).
- invoicePayload
Bot specified invoice payload
- shippingOptionId
Identifier of the shipping option chosen by the user
- orderInfo
Order info provided by the user
- telegramPaymentChargeId
Telegram payment identifier
- providerPaymentChargeId
Provider payment identifier
- final case class Supergroup(id: Long, title: Option[String], username: Option[String]) extends Chat with Product with Serializable
- sealed trait Update extends AnyRef
- final case class User(id: Int, isBot: Boolean, firstName: String, lastName: Option[String], username: Option[String], languageCode: Option[String], canJoinGroups: Option[Boolean], canReadAllGroupMessages: Option[Boolean], supportsInlineQueries: Option[Boolean]) extends Product with Serializable
Telegram user or bot.
Telegram user or bot.
- id
Unique identifier
- isBot
True, if this user is a bot
- firstName
User's or bot's first name
- lastName
User's or bot's last name
- username
User's or bot's username
- languageCode
IETF language tag of the user's language
- canJoinGroups
True, if the bot can be invited to groups. Returned only in getMe.
- canReadAllGroupMessages
True, if privacy mode is disabled for the bot. Returned only in getMe.
- supportsInlineQueries
True, if the bot supports inline queries. Returned only in getMe.
- final case class UserProfilePhotos(totalCount: Int, photos: List[List[PhotoSize]]) extends Product with Serializable
User's profile pictures.
User's profile pictures.
- totalCount
Total number of profile pictures the target user has
- photos
Requested profile pictures (in up to 4 sizes each)
- final case class Venue(location: Location, title: String, address: String, foursquareId: Option[String], foursquareType: Option[String]) extends Product with Serializable
This object represents a venue.
This object represents a venue.
- location
Venue location
- title
Name of the venue
- address
Address of the venue
- foursquareId
Foursquare identifier of the venue
- foursquareType
Foursquare type of the venue. For example, “arts_entertainment/default”, “arts_entertainment/aquarium” or “food/icecream”.
- final case class Video(fileId: String, fileUniqueId: String, width: Int, height: Int, duration: Int, thumb: Option[PhotoSize], mimeType: Option[String], fileSize: Option[Int]) extends Product with Serializable
This object represents a video file.
This object represents a video file.
- fileId
Unique identifier for this file
- fileUniqueId
Unique identifier for this file, which is supposed to be the same over time and for different bots. Can't be used to download or reuse the file.
- width
Video width as defined by sender
- height
Video height as defined by sender
- duration
Duration of the video in seconds as defined by sender
- thumb
Video thumbnail
- mimeType
Mime type of a file as defined by sender
- fileSize
File size
- final case class VideoNote(fileId: String, fileUniqueId: String, length: Int, duration: Int, thumb: Option[PhotoSize], fileSize: Option[Int]) extends Product with Serializable
Represents a video message (available in Telegram apps as of v.4.0).
Represents a video message (available in Telegram apps as of v.4.0).
- fileId
Unique identifier for this file
- fileUniqueId
Unique identifier for this file, which is supposed to be the same over time and for different bots. Can't be used to download or reuse the file.
- length
Video width and height as defined by sender
- duration
Duration of the video in seconds as defined by sender
- thumb
Video thumbnail
- fileSize
File size
- final case class Voice(fileId: String, fileUniqueId: String, duration: Int, mimeType: Option[String], fileSize: Option[Int]) extends Product with Serializable
Represents Telegram voice note
- final case class WebhookInfo(url: String, hasCustomCertificate: Boolean, pendingUpdateCount: Int, lastErrorDate: Option[Int] = None, lastErrorMessage: Option[String] = None, maxConnections: Int) extends Product with Serializable
Contains information about the current status of a webhook.
Contains information about the current status of a webhook.
- url
Webhook URL, may be empty if webhook is not set up
- hasCustomCertificate
True, if a custom certificate was provided for webhook certificate checks
- pendingUpdateCount
Number of updates awaiting delivery
- lastErrorDate
Unix time for the most recent error that happened when trying to deliver an update via webhook
- lastErrorMessage
Error message in human-readable format for the most recent error that happened when trying to deliver an update via webhook
Value Members
- object CallbackGame extends CallbackGame
- object Chat
- object ChatAction extends Enumeration
Type of action to broadcast.
Type of action to broadcast.
Choose one, depending on what the user is about to receive: typing for text messages, upload_photo for photos, record_video or upload_video for videos, record_audio or upload_audio for audio files, upload_document for general files, find_location for location data, record_video_note or upload_video_note for video notes.
- object ChatId
- object ChatMember
- object ChatPermissions extends Serializable
- object ChatType extends Enumeration
Type of chat, can be either "private", "group", "supergroup" or "channel"
- object CountryCode extends Enumeration
ISO 3166-1 alpha-2 country codes.
- object Currency extends Enumeration
Parsed from https://core.telegram.org/bots/payments/currencies.json.
- object InlineKeyboardButton
- object InlineKeyboardMarkup extends Serializable
- object InputFile
- object KeyboardButton
- object MaskPositionType extends Enumeration
The part of the face relative to which the mask should be placed.
The part of the face relative to which the mask should be placed. One of "forehead", "eyes", "mouth", or "chin".
- object MemberStatus extends Enumeration
- object MessageEntity
- object ParseMode extends Enumeration
Formatting options.
Formatting options. The Bot API supports basic formatting for messages. You can use bold and italic text, as well as inline links and pre-formatted code in your bots' messages. Telegram clients will render them accordingly. You can use either markdown-style or HTML-style formatting. Note that Telegram clients will display an alert to the user before opening an inline link ('Open this link?' together with the full URL).
Markdown style. To use this mode, pass Markdown in the parse_mode field when using sendMessage. Use the following syntax in your message: *bold text* _italic text_ [text](URL)
inline fixed-width codepre-formatted fixed-width code blockHTML style. To use this mode, pass HTML in the parse_mode field when using sendMessage. The following tags are currently supported: bold, bold italic, italic inline URL
inline fixed-width codepre-formatted fixed-width code block
Please note: Only the tags mentioned above are currently supported. Tags must not be nested. All <, > and & symbols that are not a part of a tag or an HTML entity must be replaced with the corresponding HTML entities (< with <, > with > and & with &). All numerical HTML entities are supported. The API currently supports only the following named HTML entities: <, >, & and ".
- object ReplyKeyboardMarkup extends Serializable
- object ReplyMarkup
- object Response extends Serializable
- object ResponseParameters
- object Update
- object UpdateType extends Enumeration
Provides grouped update types to filter updates (e.g.
Provides grouped update types to filter updates (e.g. message related, payments related).