Skip to content

Latest commit

 

History

History
1894 lines (1584 loc) · 76.9 KB

CHANGELOG.md

File metadata and controls

1894 lines (1584 loc) · 76.9 KB

[v21.*] - 2024-06-22

Starting with version 21.x, changes are documented here:
https://telegrambots.github.io/book/migrate/Version-21.x.html

We keep this library updated to the latest version of Telegram Bot API.
See the latest changes to Bot API here

[v20.0.0] - 2024-06-15

Bot API 7.0 (December 29, 2023)
Bot API 7.1 (February 16, 2024)
Bot API 7.2 (March 31, 2024)
Bot API 7.3 (May 6, 2024)
Bot Api 7.4 (May 28, 2024)

Added

  • API methods on ITelegramBotClient that accept request classes with parameters
  • Interface IBusinessConnectable
  • Property string? BusinessConnectionId to the following requests:
    • SendMessageRequest
    • SendPhotoRequest
    • SendVideoRequest
    • SendAnimationRequest
    • SendAudioRequest
    • SendDocumentRequest
    • SendStickerRequest
    • SendVideoNoteRequest
    • SendVoiceRequest
    • SendLocationRequest
    • SendVenueRequest
    • SendContactRequest
    • SendPollRequest
    • SendDiceRequest
    • SendGameRequest
    • SendMediaGroupRequest
    • SendChatActionRequest
    • ReplaceStickerInSetRequest
    • GetUserChatBoostsRequest
  • The following properties to class Message:
    • SenderBusinessBot
    • BusinessConnectionId
    • IsFromOffline
    • TextQuote
    • SenderBoostCount
    • ReplyToStory
    • BoostAdded
    • LinkPreviewOptions
    • ExternalReply
    • Giveaway
    • GiveawayCreated
    • GiveawayWinners
    • GiveawayCompleted
  • The following properties to class Update:
    • BusinessConnection
    • BusinessMessage
    • EditedBusinessMessage
    • DeletedBusinessMessages
    • MessageReaction
    • MessageReactionCount
    • ChatBoost
    • RemovedChatBoost
  • Members MessageReaction, MessageReactionCount, BusinessConnection, BusinessMessage, EditedBusinessMessage and DeletedBusinessMessages to enum UpdateType
  • The following requests:
    • GetBusinessConnectionRequest
    • UnpinAllGeneralForumTopicMessagesRequest
    • SetMessageReactionRequest
    • DeleteMessagesRequest
    • ForwardMessagesRequest
    • CopyMessagesRequest
  • Properties RequestTitle, RequestUsername and RequestPhoto to class KeyboardButtonRequestChat
  • Properties RequestName, RequestUsername and RequestPhoto to class KeyboardButtonRequestUsers
  • Property Format to class InputSticker
  • The classes BusinessConnection, BusinessOpeningHours, BusinessOpeningHoursInterval, BusinessIntro, BusinessLocation, BusinessMessagesDeleted and SharedUser
  • A class Birthday
  • Required property StickerFormat Format to class SetStickerSetThumbnailRequest
  • Property Users to class UsersShared
  • Properties Title, Username and Photo to class ChatShared
  • Property CanConnectToBusiness to class User
  • Type ChatFullRequest which includes all the properties from Chat
  • The classes ReactionType, ReactionTypeEmoji and ReactionTypeCustomEmoji representing different types of reaction.
  • Enum ReactionTypeKind
  • Enum ChatBoostSourceType
  • The class KnownReactionTypeEmoji containing emojis available for ReactionTypeEmoji.
  • The classes MessageReactionUpdated, MessageReactionCountUpdated and ReactionCount.
  • New methods ITelegramBotClient.SetMessageReactionAsync, ITelegramBotClient.GetUserChatBoostsAsync, ITelegramBotClient.DeleteMessagesAsync, ITelegramBotClient.ForwardMessagesAsync and ITelegramBotClient.CopyMessagesAsync
  • The class ExternalReplyInfo containing information about a message that is replied to by the current message, but can be from another chat or forum topic.
  • The class TextQuote which contains the part of the replied message text or caption that is quoted in the current message.
  • The classes ReplyParameters and LinkPreviewOptions.
  • New enum value Blockquote for MessageEntityType.
  • The classes ChatBoostAdded, ChatBoostUpdated and ChatBoostRemoved, ChatBoostSourcePremium, ChatBoostSourceGiftCode and ChatBoostSourceGiveaway
  • The class Giveaway, GiveawayCreated, GiveawayWinners and GiveawayCompleted
  • Members Giveaway, GiveawayCreated, GiveawayWinners and GiveawayCompleted to enum MessageType
  • The Classes MaybeInaccessibleMessage and InaccessibleMessage.
  • Classes MessageOrigin, MessageOriginUser, MessageOriginHiddenUser and MessageOriginChannel
  • Enum MessageOriginType
  • Enum member MessageType.BoostAdded
  • Fields Chat and Id to type Story
  • Property bool? ShowCaptionAboveMedia to types:
    • CopyMessageRequest
    • SendAnimationRequest
    • SendPhotoRequest
    • SendVideoRequest
    • EditMessageCaptionRequest
    • InlineQueryResultCachedGif
    • InlineQueryResultCachedMpeg4Gif
    • InlineQueryResultCachedPhoto
    • InlineQueryResultCachedVideo
    • InlineQueryResultGif
    • InlineQueryResultMpeg4Gif
    • InlineQueryResultPhoto
    • InlineQueryResultVideo
    • InputMediaAnimation
    • InputMediaPhoto
    • InputMediaVideo
    • Message
  • Property int? LivePeriod to types EditMessageLiveLocationRequest and EditInlineMessageLiveLocationRequest
  • Property string? MessageEffectId to types:
    • SendLocationRequest
    • SendVenueRequest
    • SendAnimationRequest
    • SendAudioRequest
    • SendContactRequest
    • SendDiceRequest
    • SendDocumentRequest
    • SendMediaGroupRequest
    • SendMessageRequest
    • SendPhotoRequest
    • SendPollRequest
    • SendVideoNoteRequest
    • SendVideoRequest
    • SendVoiceRequest
    • SendGameRequest
    • SendStickerRequest
  • Properties ParseMode? QuestionParseMode and IEnumerable<MessageEntity>? QuestionEntities to type SendPollRequest
  • Request RefundStarPaymentRequest and the corresponding extensions method ITelegramBotClient.RefundStarPaymentAsync accepting the request
  • Type BackgroundFill and it's inheritors BackgroundFillSolid, BackgroundFillGradient and BackgroundFillFreeformGradient
  • Type BackgroundType and it's inheritors BackgroundTypeFill, BackgroundTypeWallpaper, BackgroundTypePattern and BackgroundTypeChatTheme
  • Enums BackgroundFillKind and ``BackgroundTypeKind`
  • Type ChatBackground
  • Property bool? ViaJoinRequest to type ChatMemberUpdated
  • Enum member ExpandableBlockquote to enum MessageEntityType
  • Enum member ChatBackgroundSet to enum MessageType
  • Type InputPollOption
  • Property string? EffectId to type Message
  • Property MessageEntity[]? QuestionEntities to type Poll
  • Property MessageEntity[]? TextEntities to type PollOptions

Changed

  • All required properties without setters marked as required using required keyword
  • All non-default ctors are marked as obsolete in favor of the default ctors with object initialization syntax and required properties
  • All API methods with positional parameters on ITelegramBotClient are marked obsolete
  • Class UnpinAllGeneralForumTopicMessages marked as obsolete
  • Replaced parameters ReplyToMessageId and AllowSendingWithoutReply with the property ReplyParameters of type ReplyParameters in the methods
    • ITelegramBotClient.CopyMessageAsync,
    • ITelegramBotClient.SendMessageAsync,
    • ITelegramBotClient.SendPhotoAsync,
    • ITelegramBotClient.SendVideoAsync,
    • ITelegramBotClient.SendAnimationAsync,
    • ITelegramBotClient.SendAudioAsync,
    • ITelegramBotClient.SendDocumentAsync,
    • ITelegramBotClient.SendStickerAsync,
    • ITelegramBotClient.SendVideoNoteAsync,
    • ITelegramBotClient.SendVoiceAsync,
    • ITelegramBotClient.SendLocationAsync,
    • ITelegramBotClient.SendVenueAsync,
    • ITelegramBotClient.SendContactAsync,
    • ITelegramBotClient.SendPollAsync,
    • ITelegramBotClient.SendDiceAsync,
    • ITelegramBotClient.SendInvoiceAsync,
    • ITelegramBotClient.SendGameAsync,
    • ITelegramBotClient.SendMediaGroupAsync
  • Replaced properties ReplyToMessageId and AllowSendingWithoutReply with the property ReplyParameters of type ReplyParameters in the request classes
    • CopyMessageRequest,
    • SendMessageRequest,
    • SendPhotoRequest,
    • SendVideoRequest,
    • SendAnimationRequest,
    • SendAudioRequest,
    • SendDocumentRequest,
    • SendStickerRequest,
    • SendVideoNoteRequest,
    • SendVoiceRequest,
    • SendLocationRequest,
    • SendVenueRequest,
    • SendContactRequest,
    • SendPollRequest,
    • SendDiceRequest,
    • SendInvoiceRequest,
    • SendGameRequest,
    • SendMediaGroupRequest
  • Replaced the parameter DisableWebPagePreview with LinkPreviewOptions in the methods SendTextMessageAsync and EditMessageTextAsync.
  • Replaced the property DisableWebPagePreview with LinkPreviewOptions in the request classes SendMessageRequest, EditMessageTextRequest and EditInlineMessageTextRequest.
  • Replaced the property disable_web_page_preview with DisableWebPagePreview in the class InputTextMessageContent.
  • Renamed the class KeyboardButtonRequestUser to KeyboardButtonRequestUsers and added the property MaxQuantity to it.
  • Renamed the property RequestUser in the class KeyboardButton to RequestUsers. The old name will still work for backward compatibility.
  • Renamed the class UserShared to UsersShared and changed the property UserId to UserIds.
  • Replaced the property UserShared in the class Message with the property UsersShared.
  • Replaced enum member MessageType.UserShared with MessageType.UsersShared
  • Fields ForwardFrom, ForwardFromChat, ForwardFromMessageId, ForwardSignature, ForwardSenderName and ForwardDate replaced with the field ForwardOrigin of type MessageOrigin in the class Message.
  • Type of the property Message of the class CallbackQuery to MaybeInaccessibleMessage
  • Type of the property PinnedMessage of the class Message to MaybeInaccessibleMessage.
  • Property StickerFormat in the class CreateNewStickerSetRequest is marked as obsolete
  • Property UserIds in the class UsersShared is marked as obsolete
  • GetChatRequest and subsequently methods ITelegramBotClientExtensions.GetChatAsync return type ChatFullInfo instead of Chat
  • Property Options type changed to IEnumerable<InputPollOption> in type SendPollRequest and the corresponding extension method ITelegramBotClient.SendPollAsync
  • Property ProviderToken is made optional, and it's type is made nullable in types SendInvoiceToken, CreateInvoiceLinkRequest and InputInvoiceMessageContent
  • All extension method on ITelegramBotClient returning Task<bool> now return just Task since they will never return false in case of an error and throw an exception instead

Removed

  • Fields ForwardFrom, ForwardFromChat, ForwardFromMessageId, ForwardSignature, ForwardSenderName and ForwardDate from type Message
  • Most optional properties are removed from the type Chat, all of them are now in ChatFullInfo type

[Unreleased] - 2023-09-23

Bot API 6.9 (September 22, 2023)

Added

  • The new administrator privileges CanPostStories, CanEditStories and CanDeleteStories to the classes ChatMemberAdministrator and ChatAdministratorRights.
  • The parameters CanPostStories, CanEditStories and CanDeleteStories to the method ITelegramBotClient.PromoteChatMemberAsync and PromoteChatMemberRequest.Currently, bots have no use for these privileges besides assigning them to other administrators.
  • The properties FromRequest and FromAttachmentMenu to the class WriteAccessAllowed.

Bot API 6.8 (August 18, 2023)

Added

  • Type Story.
  • Member Story to the enum MessageType
  • Property Story? Story to the class Message. Currently, it holds no information.
  • Property Chat? VoterChat to the PollAnswer class. For backward compatibility, the field user in such objects will contain the user 136817688 (@Channel_Bot).
  • Property DateTime? EmojiStatusExpirationDate to the Chat class.
  • New request related to topics:
    • UnpinAllGeneralForumTopicMessages
  • New method related to topics:
    • ITelegramBotClient.UnpinAllGeneralForumTopicMessagesAsync

Changed

  • Property User? User in the PollAnswer class is optional now.

[v19.0.0] - 2023-05-07

Bot API 6.7 (April 21, 2023)

Bot API 6.6 (March 9, 2023)

Added

  • Type InlineQueryResultsButton
  • Type SwitchInlineQueryChosenChat
  • Type BotName
  • Property WebAppName to the class WriteAccessAllowed
  • Property SwitchInlineQueryChosenChat to the class InlineKeyboardButton
  • Property ViaChatFolderInviteLink to the class ChatMemberUpdated
  • Static method InlineKeyboardButton.WithSwitchInlineQueryChosenChat
  • Requests related to bot's name:
    • SetMyNameRequest
    • GetMyNameRequest
  • Methods related to bot's name:
    • ITelegramBotClient.SetMyNameAsync
    • ITelegramBotClient.GetMyNameAsync
  • New requests related to description:
    • GetMyDescriptionRequest
    • SetMyDescriptionRequest
  • New requests related to short description:
    • GetMyShortDescriptionRequest
    • SetMyShortDescriptionRequest
  • New requests related to stickers:
    • DeleteStickerSetRequest
    • SetCustomEmojiStickerSetThumbnailRequest
    • SetStickerEmojiListRequest
    • SetStickerKeywordsRequest
    • SetStickerMaskPositionRequest
    • SetStickerSetThumbnailRequest
    • SetStickerSetTitleRequest
  • New methods related to description:
    • ITelegramBotClient.SetMyDescriptionAsync
    • ITelegramBotClient.GetMyDescriptionAsync
  • New methods related to short description:
    • ITelegramBotClient.SetMyShortDescriptionAsync
    • ITelegramBotClient.GetMyShortDescriptionAsync
  • New methods related to stickers:
    • ITelegramBotClient.DeleteStickerSetAsync
    • ITelegramBotClient.SetCustomEmojiStickerSetThumbnailAsync
    • ITelegramBotClient.SetStickerEmojiListAsync
    • ITelegramBotClient.SetStickerKeywordsAsync
    • ITelegramBotClient.SetStickerMaskPositionAsync
    • ITelegramBotClient.SetStickerSetThumbnailAsync
    • ITelegramBotClient.SetStickerSetTitleAsync
  • Enum StickerFormat
  • Type BotDescription
  • Type BotShortDescription
  • Type InputSticker
  • Added property string? Emoji to class SendStickerRequest
  • Added property bool? NeedsRepainting to the following classes:
    • CreateNewStickerSetRequest
    • Sticker
  • Added property IEnumerable<InputSticker> Stickers to class CreateNewStickerSetRequest
  • Added property StickerFormat to class CreateNewStickerSetRequest
  • Added property InputSticker Stickers to class AddStickerToSetRequest

Changed

  • Replace the parameters switchPmText and switchPmParameter of the method AnswerInlineQueryAsync with the parameter button of type InlineQueryResultsButton.
  • Replace the properties SwitchPmText and SwitchPmParameter of the class AnswerInlineQueryRequest with the property Button of type InlineQueryResultsButton.
  • Class SetStickerSetThumbRequest renamed to SetStickerSetThumbnailRequest
  • Class CreateNewStickerSetRequest is no longer abstract
  • Class AddStickerToSetRequest is no longer abstract
  • Method ITelegramBotClient.SetStickerSetThumbAsync renamed to ITelegramBotClient.SetStickerSetThumbnailAsync
  • Properties PngSticker, TgsSticker, WebmSticker, Emojis, MaskPostion in class AddStickerToSetRequest replaced with Sticker on Type InputSticker
  • Properties PngSticker, TgsSticker, WebmSticker, Emojis, MaskPostion in class CreateNewStickerSetRequest replaced with Stickers on Type IEnumerable<InputSticker>
  • Renamed property Thumb to Thumbnail to the following Types:
    • Animation
    • Audio
    • Document
    • Sticker
    • Video
    • VideoNote
    • InputMediaAnimation
    • InputMediaAudio
    • InputMediaDocument
    • InputMediaVideo
    • StickerSet
  • Renamed property Thumb to Thumbnail in the following classes:
    • SendAnimationRequest
    • SendAudioRequest
    • SendDocumentRequest
    • SendVideoRequest
    • SendVideoNoteRequest
  • Renamed properties ThumbUrl, ThumbWidth, ThumbHeight to ThumbnailUrl, ThumbnailWidth, ThumbnailHeight in the following Types:
    • InlineQueryResultArticle
    • InlineQueryResultContact
    • InlineQueryResultDocument
    • InlineQueryResultLocation
    • InlineQueryResultVenue
  • Renamed property ThumbUrl to ThumbnailUrl in the following Types:
    • InlineQueryResultPhoto
    • InlineQueryResultVideo
  • Renamed properties ThumbUrl, ThumbMimeType to ThumbnailUrl, ThumbnailMimeType in the following Types:
    • InlineQueryResultGif
    • InlineQueryResultMpeg4Gif
  • Type of property Sticker changed from string to InputFileId in the following classes:
    • SetStickerPositionInSetRequest
    • DeleteStickerFromSetRequest

Fixed

  • Stickers tests

Removed

  • Class AddAnimatedStickerToSetRequest
  • Class AddStaticStickerToSetRequest
  • Class AddVideoStickerToSetRequest
  • Class CreateNewAnimatedStickerSetRequest
  • Class CreateNewStaticStickerSetRequest
  • Class CreateNewVideoStickerSetRequest
  • Method ITelegramBotClient.AddAnimatedStickerToSetAsync
  • Method ITelegramBotClient.AddStaticStickerToSetAsync
  • Method ITelegramBotClient.AddVideoStickerToSetAsync
  • Method ITelegramBotClient.CreateNewAnimatedStickerSetAsync
  • Method ITelegramBotClient.CreateNewStaticStickerSetAsync
  • Method ITelegramBotClient.CreateNewVideoStickerSetAsync
  • Properties Emojis, MaskPostion in classes CreateNewStickerSetRequest, AddStickerToSetRequest

[v19.0.0-preview.3] - Unreleased

Bot API 6.5 (February 3, 2023)

Added

  • Types KeyboardButtonRequestUser and KeyboardButtonRequestChat
  • Properties RequestUser and RequestChat to the type KeyboardButton
  • Static methods KeyboardButton.WithRequestUser and KeyboardButton.WithRequestChat
  • Types UserShared and ChatShared
  • Properties UserShared and ChatShared to the type Message
  • Members UserShared and ChatShared to the enum MessageType
  • Following properties to the types ChatMemberRestricted and ChatPermissions:
    • CanSendAudios
    • CanSendDocuments
    • CanSendPhotos
    • CanSendVideos
    • CanSendVideoNotes
    • CanSendVoiceNotes
  • Property UseIndependentChatPermissions to the types RestrictChatMemberRequest and SetChatPermissionsRequest
  • Optional parameter useIndependentChatPermissions to the methods ITelegramBotClient.RestrictChatMemberAsync and ITelegramBotClient.SetChatPermissionsAsync
  • Property UserChatId to the type ChatJoinRequest

Removed

  • Properties CanSendMediaMessages from the types ChatMemberRestricted and ChatPermissions
  • Obsolete types GetChatMembersCountRequest, KickChatMemberRequest, VoiceChatEnded, VoiceChatParticipantsInvited, VoiceChatScheduled, VoiceChatStarted.
  • Obsolete methods ITelegramBotClient.KickChatMemberAsync, ITelegramBotClient.GetChatMembersCountAsync.
  • Obsolete properties CanManageVoiceChat from PromoteChatMemberRequest, CanManageVoiceChats from ChatMember.

[v19.0.0-preview.2] - 2023-01-02

Bot API 6.4 (December 30, 2022)

Added

  • New requests related to topics:
    • CloseGeneralForumTopicRequest
    • EditGeneralForumTopicRequest
    • ReopenGeneralForumTopicRequest
    • HideGeneralForumTopicRequest
    • UnhideGeneralForumTopicRequest
  • New methods related to topics:
    • ITelegramBotClient.CloseGeneralForumTopicAsync
    • ITelegramBotClient.EditGeneralForumTopicAsync
    • ITelegramBotClient.ReopenGeneralForumTopicAsync
    • ITelegramBotClient.HideGeneralForumTopicAsync
    • ITelegramBotClient.UnhideGeneralForumTopicAsync
  • Following properties to type Chat:
    • bool? IsForum
    • string[]? ActiveUsernames
  • Optional property HasSpoiler
  • Added property bool? HasSpoiler to the following classes:
    • SendAnimationRequest
    • SendVideoRequest
    • SendPhotoRequest
    • InputMediaAnimation
    • InputMediaPhoto
    • InputMediaVideo
  • Added following properties to class Message:
    • HasMediaSpoiler
    • WriteAccessAllowed
    • ForumTopicEdited
    • GeneralForumTopicHidden
    • GeneralForumTopicUnhidden
  • Property IsPersistent to class ReplyKeyboardMarkup
  • Types ForumTopicEdited, GeneralForumTopicHidden, GeneralForumTopicUnhidden, WriteAccessAllowed
  • Property int? MessageThreadId to class SendChatActionRequest
  • Properties HasAggressiveAntiSpamEnabled and HasHiddenMembers to class Chat
  • Enum members ForumTopicEdited, GeneralForumTopicHidden, GeneralForumTopicUnhidden, WriteAccessAllowed to enum MessageType,

Changed

  • Properties EditForumTopicRequest.Name and EditForumTopicRequest.IconCustomEmojiId are made nullable
  • Added setters to properties EditForumTopicRequest.Name and EditForumTopicRequest.IconCustomEmojiId
  • Parameters name and iconCustomEmojiId and ctor of EditForumTopicRequest are made nullable and optional
  • Added optional parameter bool? hasSpoiler to the following methods
    • ITelegramBotClient.SendAnimationAsync
    • ITelegramBotClient.SendVideoAsync
    • ITelegramBotClient.SendPhotoAsync
  • Added optional parameter int? messageThreadId to method ITelegramBotClient.SendAnimationRequest
  • Parameters name and iconCustomEmojiId in method ITelegramBotClient.EditForumTopicAsync are made nullable and optional

[v19.0.0-preview.1] - 2022-12-03

Bot API 6.1 (June 20, 2022)
Bot API 6.2 (August 12, 2022)
Bot API 6.3 (November 5, 2022)

Added

  • .NET 6 to targeted frameworks
  • Following topic releated types:
    • Color to represent color of topics
    • ForumTopic
    • ForumTopicClosed
    • ForumTopicCreated
    • ForumTopicReopened
  • New requests for managing topics:
    • CloseForumTopicRequest
    • CreateForumTopicRequest
    • DeleteForumTopicRequest
    • EditForumTopicRequest
    • ReopenForumTopicRequest
    • UnpinAllForumTopicMessagesRequest
  • Property MessageThreadId to following requests
    • SendMessageRequest
    • SendPhotoRequest
    • SendVideoRequest
    • SendAnimationRequest
    • SendAudioRequest
    • SendDocumentRequest
    • SendStickerRequest
    • SendVideoNoteRequest
    • SendVoiceRequest
    • SendLocationRequest
    • SendVenueRequest
    • SendContactRequest
    • SendPollRequest
    • SendDiceRequest
    • SendInvoiceRequest
    • SendGameRequest
    • SendMediaGroupRequest
    • CopyMessageRequest
    • ForwardMessageRequest
  • Following properties to type Chat:
    • bool? IsForum
    • string[]? ActiveUsernames
    • string? EmojiStatusCustomEmojiId
    • bool? HasRestrictedVoiceAndVideoMessages
  • Property bool? CanManageTopics to following types:
    • ChatAdministratorRights
    • ChatPermissions
    • ChatMemberOwner
    • ChatMemberRestricted
    • PromoteChatMemberRequest
  • Following enum members to MessageType:
    • ForumTopicCreated
    • ForumTopicClosed
    • ForumTopicReopened
    • Animation
  • Following properties to type Message:
    • int? MessageThreadId
    • bool? IsTopicMessage
    • ForumTopicCreated? ForumTopicCreated
    • ForumTopicClosed? ForumTopicClosed
    • ForumTopicClosed? ForumTopicClosed
  • Enum member CustomEmoji to MessageEntityType
  • Property CustomEmojiId to MessageEntity
  • Extension method GetCustomEmojiStickersAsync
  • Request GetCustomEmojiStickersRequest
  • Enum StickerType
  • Properties Type and CustomEmojiId to Sticker
  • Property StickerType to StickerSet
  • Property StickerType to CreateNewStickerSetRequest
  • Parameter stickerType to CreateNew*StickerSetAsync extension methods
  • Property HasRestrictedVoiceAndVideoMessages to Chat
  • Properties JoinToSendMessages, JoinByRequest to Chat
  • Properties IsPremium, AddedToAttachmentMenu to User
  • Property PremiumAnimation to Sticker
  • Property SecretToken to SetWebhookRequest
  • Parameter secretToken to SetWebhookAsync
  • Request CreateInvoiceLinkRequest
  • Method CreateInvoiceLinkAsync

Changed

  • Constructors in following requests accept IInputFile or inheritors instead of
    • AddAnimatedStickerToSetRequest
    • AddStaticStickerToSetRequest
    • AddVideoStickerToSetRequest
    • CreateNewAnimatedStickerSetRequest
    • CreateNewStaticStickerSetRequest
    • CreateNewVideoStickerSetRequest
  • Added optional parameter int? messageThreadId to following methods:
    • ITelegramBotClient.SendTextMessageAsync
    • ITelegramBotClient.SendPhotoAsync
    • ITelegramBotClient.SendVideoAsync
    • ITelegramBotClient.SendAnimationAsync
    • ITelegramBotClient.SendAudioAsync
    • ITelegramBotClient.SendDocumentAsync
    • ITelegramBotClient.SendStickerAsync
    • ITelegramBotClient.SendVideoNoteAsync
    • ITelegramBotClient.SendVoiceAsync
    • ITelegramBotClient.SendLocationAsync
    • ITelegramBotClient.SendVenueAsync
    • ITelegramBotClient.SendContactAsync
    • ITelegramBotClient.SendPollAsync
    • ITelegramBotClient.SendDiceAsync
    • ITelegramBotClient.SendInvoiceAsync
    • ITelegramBotClient.SendGameAsync
    • ITelegramBotClient.SendMediaGroupAsync
    • ITelegramBotClient.CopyMessageAsync
    • ITelegramBotClient.ForwardMessageAsync
  • Added optional parameter bool? canManageTopic to method ITelegramBotClient.PromoteChatMemberAsync

Fixed

  • Property 'Message.Type' returns MessageType.Animation when a message contains Animation

Removed

  • Implicit conversion from ChatId to string
  • .NET Core 3.1 from targeted frameworks
  • Property ContainsMasks from StickerSet
  • Property ContainsMasks from CreateNewStickerSetRequest
  • Parameter containsMasks from CreateNew*StickerSetAsync extension methods

[v18.0.0] - 2022-06-16

Bot API 6.0 (April 16, 2022)

Added

  • Package Telegram.Bot.Extensions.Polling is merged in the main package
  • Type TelegramBotClientOptions
  • Types WebAppInfo, SentWebAppMessage, WebAppData, MenuButton, MenuButtonCommands, MenuButtonWebApp, MenuButtonDefault, ChatAdministratorRights
  • Requests AnswerWebAppQueryRequest, SetChatMenuButtonRequest, GetChatMenuButtonRequest, SetMyDefaultAdministratorRightsRequest, GetMyDefaultAdministratorRightsRequest
  • Properties WebAppInfo KeyboardButton.WebApp, WebAppInfo InlineKeyboardButton.WebApp
  • Property DateTime? WebHookInfo.LastSynchronizationErrorDate
  • Static methods KeyboardButton.WithWebApp, InlineKeyboardButton.WithWebApp
  • Properties VideoChatScheduled, VideoChatStarted, VideoChatEnded, VideoChatParticipantsInvited and WebAppData in type Message
  • Enum members VideoChatScheduled, VideoChatStarted, VideoChatEnded, and VideoChatParticipantsInvited in type MessageType
  • Property bool ITelegramBotClient.LocalBotServer
  • TelegramBotClient constructor that accepts an instance TelegramBotClientOptions and HttpClient

Changed

  • Renamed properties ChatMemberAdministrator.CanManageVoiceChats, PromoteChatMemberRequest.CanManageVoiceChats to ChatMemberAdministrator.CanManageVideoChats and PromoteChatMemberRequest.CanManageVideoChats
  • Removed baseUrl parameter from constructor in TelegramBotClient that accepts a token
  • Type of property FileBase.FileSize changed from int? to long?

Fixed

  • Argument protectContent in method TelegramBotClientExtensions.ForwardMessageAsync is passed to the corresponding request

Removed

  • Enum members VoiceChatScheduled, VoiceChatStarted, VoiceChatEnded, and VoiceChatParticipantsInvited in type MessageType
  • Properties VoiceChatScheduled, VoiceChatStarted, VoiceChatEnded and VoiceChatParticipantsInvited in type Message
  • Property PinChatMessageRequest.ProtectedContent

[v18.0.0-alpha.1] - 2022-02-13

Bot API 5.7 (January 31, 2022)
Bot API 5.6 (December 30, 2021)
Bot API 5.5 (December 7, 2021)

Changed

  • ApiRequestEventArgs has full request information

Added

  • Requests CreateNewVideoStickerSetRequest, AddVideoStickerToSetRequest, BanChatSenderChatRequest, UnbanChatSenderChatRequest
  • Extension methods TelegramBotClientExtensions.CreateNewVideoStickerSetAsync, TelegramBotClientExtensions.AddVideoStickerToSetAsync, TelegramBotClientExtensions.BanChatSenderChatRequestAsync, TelegramBotClientExtensions.UnbanChatSenderChatRequestAsync
  • Property int? MessageAutoDeleteTime to class Chat
  • Property bool? HasPrivateForwards to class Chat
  • Property bool? HasProtectedContent to class Chat
  • Property int? MessageAutoDeleteTime to class Message
  • Property bool? IsAutomaticForward to class Message
  • Property bool? HasProtectedContent to class Message
  • Property bool? ProtectContent to following requests:
    • SendLocationRequest
    • SendVenueRequest
    • CopyMessageRequest
    • ForwardMessageRequest
    • SendAnimationRequest
    • SendAudioRequest
    • SendContactRequest
    • SendDiceRequest
    • SendDocumentRequest
    • SendMediaGroupRequest
    • SendMessageRequest
    • SendPhotoRequest
    • SendPollRequest
    • SendVideoNoteRequest
    • SendVideoRequest
    • SendVoiceRequest
  • Property IsVideo to class Sticker
  • Property IsVideo to class StickerSet
  • Parameter bool? protectContent = default to following methods:
    • TelegramBotExtensions.SendLocationRequestAsync
    • TelegramBotExtensions.SendVenueRequestAsync
    • TelegramBotExtensions.CopyMessageRequestAsync
    • TelegramBotExtensions.ForwardMessageRequestAsync
    • TelegramBotExtensions.SendAnimationRequestAsync
    • TelegramBotExtensions.SendAudioRequestAsync
    • TelegramBotExtensions.SendContactRequestAsync
    • TelegramBotExtensions.SendDiceRequestAsync
    • TelegramBotExtensions.SendDocumentRequestAsync
    • TelegramBotExtensions.SendMediaGroupRequestAsync
    • TelegramBotExtensions.SendMessageRequestAsync
    • TelegramBotExtensions.SendPhotoRequestAsync
    • TelegramBotExtensions.SendPollRequestAsync
    • TelegramBotExtensions.SendVideoNoteRequestAsync
    • TelegramBotExtensions.SendVideoRequestAsync
    • TelegramBotExtensions.SendVoiceRequestAsync
  • Enum member MessageEntityType.Spoiler

Changed

  • Method TelegramBotClient.MakeRequestAsync is made virtual
  • Class CreateNewStickerSetRequest renamed to CreateNewStaticStickerSetRequest
  • Class CreateNewStickerSetRequest is made abstract
  • Class AddStickerToSetRequest renamed to AddStaticStickerToSetRequest
  • Class AddStickerToSetRequest is made abstract
  • Method TelegramBotClientExtensions.AddStickerToSetAsync is renamed to AddStaticStickerToSetAsync
  • Method TelegramBotClientExtensions.CreateNewStaticStickerSetAsync is renamed to CreateNewStaticStickerSetAsync

Fixed

  • DeleteWebhookRequest parameters are now properly serializing
  • Added missing json attribute to property ChatInviteLink.Name

Removed

  • Parameter untilDate is removed from TelegramBotClientExtensions.BanChatSenderChatAsync
  • Property UntilDate is removed from BanChatSenderChatRequest

[v17.0.0] - 2021-11-17

  • v17 release

[v17.0.0-alpha.5] - 2021-11-12

Added

  • Added missing JSON attributes on types ApproveChatJoinRequest and DeclineChatJoinRequest
  • Types ApproveChatJoinRequest and DeclineChatJoinRequest implement IChatTargetable interface

[v17.0.0-alpha.4] - 2021-11-06

Bot API 5.4 (November 5, 2021)

Added

  • Request ApproveChatJoinRequest
  • Request DeclineChatJoinRequest
  • Property bool? CreateChatInviteLinkRequest.CreatesJoinRequest
  • Property string? CreateChatInviteLinkRequest.Name
  • Property bool? EditChatInviteLinkRequest.CreatesJoinRequest
  • Property string? EditChatInviteLinkRequest.Name
  • Property bool ChatInviteLink.CreatesJoinRequest
  • Property int? ChatInviteLink.PendingJoinRequestCount
  • Type ChatJoinRequest
  • Property ChatJoinRequest Update.ChatJoinRequest
  • Enum member ChatAction.ChooseSticker
  • Extension method TelegramBotClientExtensions.ApproveChatJoinRequestAsync
  • Extension method TelegramBotClientExtensions.DeclineChatJoinRequestAsync

Changed

  • Extension method TelegramBotClientExtensions.EditChatInviteLinkAsync:
    • Added parameters string? name and bool? createsJoinRequest
  • Extension method TelegramBotClientExtensions.CreateChatInviteLinkAsync:
    • Added parameters string? name and bool? createsJoinRequest

Changed

  • Fields ChatId.Identifier and ChatId.Username changed into get-only properties

[v17.0.0-alpha.3] - 2021-09-01

Changed

  • Method GetInfoAndDownloadFileAsync moved into static class TelegramBotClientExtensions as an extension method
  • Symbols are always include in the package

[v17.0.0-alpha.2] - 2021-09-01

Added

  • Interface IExceptionsParser
  • Type ApiResponse
  • Property ITelegramBotClient.ExceptionsParser

[v.16.0.2] - 2021-08-16

Fixed

  • Parameter name ChatLocation.String replaced with ChatLocation.Address

[v16.0.1] - 2021-07-10

Fixed

  • ITelegramBotClient.SendDocumentAsync passed wrong value into DisableContentTypeDetection property

[v17.0.0-alpha.1] - 2021-06-13

Bot API 5.3 (June 25, 2021)

Added

  • Enum InputMediaType
  • Type BanCommandScope
  • Type BanCommandScopeDefault
  • Type BanCommandScopeAllPrivateChats
  • Type BanCommandScopeAllGroupChats
  • Type BanCommandScopeAllChatAdministrators
  • Type BanCommandScopeChat
  • Type BanCommandScopeChatAdministrators
  • Type BanCommandScopeChatMember
  • Enum BanCommandScopeType
  • Type ChatMemberOwner
  • Type ChatMemberAdministrator
  • Type ChatMemberMember
  • Type ChatMemberRestricted
  • Type ChatMemberLeft
  • Type ChatMemberBanned
  • Request BanChatMemberRequest
  • Request BanChatMemberRequest
  • Request DeleteMyCommandsRequest
  • Request GetChatMemberCountRequest
  • Method ITelegramBotClient.DeleteMyCommandsAsync
  • Method ITelegramBotClient.BanChatMemberAsync
  • Method ITelegramBotClient.GetChatMemberCountAsync
  • Property BotCommandScope GetMyCommandsRequest.Scope { get; set; }
  • Property string GetMyCommandsRequest.LanguageCode { get; set; }
  • Property BotCommandScope SetMyCommandsRequest.Scope { get; set; }
  • Property string SetMyCommandsRequest.LanguageCode { get; set; }
  • Property IRequest<TResponse>.IsWebhookResponse { get; set; }
  • Protected constructor InputMediaBase that accepts InputMedia
  • Protected constructor InputTelegramFile that accepts FileType
  • Property string ForceReplyMarkup.InputFieldPlaceholder { get; set; }
  • Property string ReplyKeyboardMarkup.InputFieldPlaceholder { get; set; }
  • Enum EncryptedPassportElementType
  • Interface IChatTargetable
  • Interface IUserTargetable

Changed

  • Type InlineQueryResultBase renamed to InlineQueryResult
  • Type ChatMember is made abstract
  • Property ChatMember.Status is made abstract
  • Every use of enum ParseMode is made nullable to represent default text mode without any markup
  • Type KickChatMemberRequest is marked as obsolete
  • Type GetChatMembersCountRequest is marked as obsolete
  • Method ITelegramBotClient.KickChatMemberAsync is marked as obsolete
  • Method ITelegramBotClient.GetChatMembersCountAsync is marked as obsolete
  • All underlying enum values changed to start from 1 instead of 0. 0 value are reserved for unknown enum values.
  • Type ChatMember is made abstract and it's properties are moved into separate inheriting classes
  • Changed parameters in ITelegramBotClient.GetMyCommandsAsync: added parameters BotCommandScope scope and string language
  • Changed parameters in ITelegramBotClient.SetMyCommandsAsync: added parameters BotCommandScope scope and string language
  • Type of property IInputMedia.Type changed from string to InputMediaType
  • Property InputFileStream.FileType is no longer virtual
  • Constructor of type InputFileStream that accepts both Stream content and string fileName: filename parameter is made optional
  • Constructor of type InputOnlineFile that accepts both Stream content and string fileName: filename parameter is made optional
  • Constructor of type InputTelegramFile that accepts both Stream content and string fileName: filename parameter is made optional
  • Property InputMediaBase.Type is made abstract
  • Protected setter InputTelegramFile.FileId is made private protected
  • Type of property EncryptedPassportElement.Type changed from string to EncryptedPassportElementType
  • All optional types are made nullable be it value or reference types

Removed

  • Public setter ChatMember.Status
  • Enum member ParseMode.Default
  • Enum members ChatAction.RecordAudio and ChatAction.UploadAudio
  • Protected setter from property InputFileStream.Content
  • Constructor of type InputFileStream that accepts only Stream
  • Constructor of type InputOnlineFile that accepts only Stream
  • Constructor of type InputTelegramFile that accepts only Stream
  • Property setter InputMediaBase.Media
  • Protected setter InputOnlineFile.Url
  • All obsolete types, methods and properties related to polling events
  • Following interfaces: ICaptionEntities, IEntities, IFormattableEntities, IInlineMessage, IInlineReplyMarkupMessage, INotifiableMessage, IReplyMarkupMessage, IReplyMessage, IThumbMediaMessage, ICaptionInlineQueryResult, ILocationInlineQueryResult, IThumbnailInlineQueryResult, IThumbnailUrlInlineQueryResult

[v16.0.0] - 2021-06-13

Changed

  • Animation inherits from FileBase
  • All custom exceptions are marked as obsolete

[v16.0.0-alpha.2] - 2021-05-10

Bot API 5.2 (April 26, 2021)

Added

  • Property VoiceChatScheduled to the class Message.
  • Types VoiceChatScheduled, InputInvoiceMessageContent
  • New MessageType value: VoiceChatScheduled
  • Property ChatType to the class InlineQuery.
  • New ChatType value: Sender
  • New ChatAction values: RecordVoice, UploadVoice
  • Optional parameters maxTipAmount and suggestedTipAmounts to ITelegramBotClient.SendInvoiceAsync
  • Properties MaxTipAmount and SuggestedTipAmounts to SendInvoiceRequest

Changed

  • Parameter order in ITelegramBotClient.UnpinChatMessageAsync
  • Parameter startParameter of the method ITelegramBotClient.SendInvoiceAsync became optional
  • ChatAction values RecordAudio and UploadAudio marked as obsolete
  • ReplyToMessageId and AllowSendingWithoutReply in IReplyMessage, CopyMessageRequest, SendLocationRequest, SendAnimationRequest, SendAudioRequest, SendContactRequest, SendDiceRequest, SendDocumentRequest, SendMediaGroupRequest, SendMessageRequest, SendPhotoRequest, SendPollRequest, SendVenueRequest, SendVideoNoteRequest, SendVideoRequest, SendVoiceRequest, SendGameRequest, SendStickerRequest marked as optional

⚠️ WARNING! ⚠️ After the next Bot API update (Bot API 5.3) there will be a one-time change of the value of the field FileUniqueId in objects of the type PhotoSize and of the fields SmallFileUniqueId and BigFileUniqueId in objects of the type ChatPhoto.

⚠️ WARNING! ⚠️ Service messages about non-bot users joining the chat will be soon removed from large groups. We recommend using the “chat_member” update as a replacement.

⚠️ WARNING! ⚠️ After one of the upcoming Bot API updates, user identifiers will become bigger than 2^31 - 1 and it will be no longer possible to store them in a signed 32-bit integer type. User identifiers will have up to 52 significant bits, so a 64-bit integer or double-precision float type would still be safe for storing them. Please make sure that your code can correctly handle such user identifiers.

Fixed

  • Align property order and description with official docs

Removed

  • Parameter startParameter from SendInvoiceRequest constructor

[v16.0.0-alpha.1] - 2021-05-01

Bot API 5.1 (March 9, 2021)
Bot API 5.0 (November 4, 2020)

Added

  • The method ITelegramBotClient.CreateChatInviteLinkAsync
  • The method ITelegramBotClient.EditChatInviteLinkAsync
  • The method ITelegramBotClient.RevokeChatInviteLinkAsync
  • Optional parameter revokeMessages to ITelegramBotClient.KickChatMemberAsync
  • Optional parameters canManageChat, canManageVoiceChats to ITelegramBotClient.KickChatMemberAsync
  • Property RevokeMessages to KickChatMemberRequest
  • Properties CanManageChat, CanManageVoiceChats to PromoteChatMemberRequest
  • Properties CanManageChat, CanManageVoiceChats to ChatMember
  • Properties MessageAutoDeleteTimerChanged, VoiceChatStarted, VoiceChatEnded, VoiceChatParticipantsInvited to Message
  • Properties MyChatMember and ChatMember to Update
  • Types CreateChatInviteLinkRequest, EditChatInviteLinkRequest, RevokeChatInviteLinkRequest, ChatInviteLink, ChatMemberUpdated, MessageAutoDeleteTimerChanged, VoiceChatEnded, VoiceChatParticipantsInvited, VoiceChatStarted
  • New enum value Bowling for Emoji
  • New enum values MessageAutoDeleteTimerChanged, ProximityAlertTriggered, VoiceChatStarted, VoiceChatEnded, VoiceChatParticipantsInvited for MessageType
  • New enum values MyChatMember, ChatMember for UpdateType
  • Delegate AsyncEventHandler<T>
  • Methods:
    • ITelegramBotClient.LogOutAsync
    • ITelegramBotClient.CloseAsync
    • ITelegramBotClient.CopyMessageAsync
    • ITelegramBotClient.UnpinAllChatMessages
  • Optional parameter ipAddress to ITelegramBotClient.SetWebhookAsync
  • Optional parameter dropPendingUpdates to ITelegramBotClient.SetWebhookAsync, ITelegramBotClient.DeleteWebhookAsync
  • Optional parameter allowSendingWithoutReply to the methods SendTextMessageAsync, SendPhotoAsync, SendVideoAsync, SendAnimationAsync, SendAudioAsync, SendDocumentAsync, SendStickerAsync, SendVideoNoteAsync, SendVoiceAsync, SendLocationAsync, SendVenueAsync, SendContactAsync, SendPollAsync, SendDiceAsync, SendInvoiceAsync, SendGameAsync, SendMediaGroupAsync
  • Optional parameter captionEntities to SendTextMessageAsync, SendPhotoAsync, SendVideoAsync, SendAnimationAsync, SendAudioAsync, SendDocumentAsync, SendVoiceAsync, SendPollAsync, EditMessageTextAsync, EditMessageCaptionAsync
  • Optional parameter isAnonymous to ITelegramBotClient.PromoteChatMemberAsync
  • Optional parameter messageId to ITelegramBotClient.UnpinChatMessageAsync
  • Optional parameter onlyIfBanned to ITelegramBotClient.UnbanChatMemberAsync
  • Optional parameter disableContentTypeDetection to ITelegramBotClient.SendDocumentAsync
  • Optional parameter heading to ITelegramBotClient.SendLocationAsync, ITelegramBotClient.EditMessageLiveLocationAsync
  • Optional parameter proximityAlertRadius to ITelegramBotClient.SendLocationAsync, ITelegramBotClient.EditMessageLiveLocationAsync
  • Optional parameter horizontalAccuracy to ITelegramBotClient.SendLocationAsync, ITelegramBotClient.EditMessageLiveLocationAsync
  • Optional parameters googlePlaceId, googlePlaceType to ITelegramBotClient.SendVenueAsync
  • Property IpAddress to SetWebhookRequest, WebhookInfo
  • Property DropPendingUpdates to SetWebhookRequest, DeleteWebhookRequest
  • Property AllowSendingWithoutReply to SendMessageRequest, SendPhotoRequest, SendAudioRequest, SendDocumentRequest, SendStickerRequest, SendVideoRequest, SendAnimationRequest, SendVoiceRequest, SendVideoNoteRequest, SendMediaGroupRequest, SendLocationRequest, SendVenueRequest, SendContactRequest, SendPollRequest, SendDiceRequest, SendInvoiceRequest, SendGameRequest
  • Property CaptionEntities to InputMediaBase, InlineQueryResultPhoto, InlineQueryResultGif, InlineQueryResultMpeg4Gif, InlineQueryResultVideo, InlineQueryResultAudio, InlineQueryResultVoice, InlineQueryResultDocument, InlineQueryResultCachedPhoto, InlineQueryResultCachedGif, InlineQueryResultCachedMpeg4Gif, InlineQueryResultCachedVideo, InlineQueryResultCachedAudio, InlineQueryResultCachedVoice, InlineQueryResultCachedDocument
  • Property Entities to InputTextMessageContent
  • Properties SenderChat, AuthorSignature, ProximityAlertTriggered to Message
  • Properties Bio, LinkedChatId, Location to Chat
  • Property IsAnonymous to ChatMember, PromoteChatMemberRequest
  • Property LivePeriod to Location
  • Property ProximityAlertRadius to Location, InlineQueryResultLocation, InputLocationMessageContent, SendLocationRequest, EditMessageLiveLocationRequest, EditInlineMessageLiveLocationRequest
  • Property HorizontalAccuracy to Location, InlineQueryResultLocation, InputLocationMessageContent, SendLocationRequest, EditMessageLiveLocationRequest, EditInlineMessageLiveLocationRequest
  • Property Heading to Location, InlineQueryResultLocation, SendLocationRequest, EditMessageLiveLocationRequest, EditInlineMessageLiveLocationRequest
  • Property MessageId to PinChatMessageRequest
  • Property OnlyIfBanned to UnbanChatMemberRequest
  • Property FileName to Audio, Video
  • Property DisableContentTypeDetection to MakeRequestAsync, InputMediaDocument
  • Properties GooglePlaceId, GooglePlaceType to SendVenueRequest, Venue, InlineQueryResultVenue, InputVenueMessageContent
  • New enum values Football, SlotMachine for Emoji
  • Type ChatLocation
  • Type ProximityAlertTriggered
  • Support for sending and receiving audio and document albums in the method SendMediaGroupAsync

Changed

  • Constructor in TelegramBotClient accepts base url for custom Bot API server as optional third parameter, it accepts only URL's with protocol, host and port parts, everything else is ignored
  • Marked constructor for TelegramBotClient accepting IWebProxy as obsolete
  • Property ITelegramBotClient.BotId to long?
  • Event MakingApiRequest renamed to OnMakingApiRequest and it's type is changed to AsyncEventHandler<ApiRequestEventArgs>
  • Event ApiResponseReceived renamed to OnApiResponseReceived and it's type is changed to AsyncEventHandler<ApiResponseEventArgs>
  • Parameters order in following methods (to reflect official docs):
    • SetWebhookAsync, DeleteWebhookAsync, SendTextMessageAsync, SendPhotoAsync, SendAudioAsync, SendDocumentAsync, SendStickerAsync, SendVideoAsync, SendAnimationAsync, SendVoiceAsync, SendVideoNoteAsync, SendMediaGroupAsync, SendLocationAsync, SendVenueAsync, SendContactAsync, SendPollAsync, SendDiceAsync, KickChatMemberAsync, UnbanChatMemberAsync, PromoteChatMemberAsync, EditMessageTextAsync, EditMessageCaptionAsync, EditMessageLiveLocationAsync, SendInvoiceAsync, SendGameAsync
  • Polling inside the library is now considered obsolete. The code, related to polling will be removed. It is recommended to use Telegram.Bot.Extensions.Polling package instead.
    • These methods are now obsolete: StartReceiving, StopReceiving
    • These events are now obsolete: OnUpdate, OnMessage, OnMessageEdited, OnInlineQuery, OnInlineResultChosen, OnCallbackQuery, OnReceiveError, OnReceiveGeneralError
    • These fields are now obsolete: IsReceiving, MessageOffset
  • Error 429 Too Many Request is now handled by the client and is thrown as ApiRequestException

⚠️ WARNING! ⚠️

After one of the upcoming Bot API updates, some user identifiers will become bigger than 2^31 - 1 and it will be no longer possible to store them in a signed 32-bit integer type. User identifiers will have up to 52 significant bits, so a 64-bit integer or double-precision float type would still be safe for storing them. Please make sure that your code can correctly handle such user identifiers.

Fixed

  • Incorrect property name ExplanationCaptionEntities -> ExplanationEntities in SendPollRequest

Removed

  • Obsolete overload method ITelegramBotClient.DownloadFileAsync
  • Obsolete overload method ITelegramBotClient.SendMediaGroupAsync
  • Obsolete constructor for SendMediaGroupRequest
  • Obsolete constructor for InputMediaPhoto
  • Obsolete constructor for InputMediaVideo
  • Obsolete property AllMembersAreAdministrators from Chat
  • Obsolete property IsForwarded from Message
  • Obsolete value Animation from enum MessageType

[15.7.1] - 2020-06-18

Added

  • Source Link support
  • Fully deterministic build

[15.7.0] - 2020-06-13

Added

  • Enum member Emoji.Basketball
  • Property InlineQueryResultGif.ThumbMimeType
  • Property InlineQueryResultMpeg4Gif.ThumbMimeType
  • Property Message.ViaBot

[15.6.0] - 2020-05-30

Added

  • Enum Emoji
  • Property Poll.Explanation
  • Property Poll.ExplanationEntities
  • Property Poll.OpenPeriod
  • Property Poll.CloseDate
  • Property Dice.Emoji
  • Following optional properties to SendPollRequest:
    • Explanation
    • ExplanationParseMode
    • OpenPeriod
    • CloseDate
  • Optional property Emoji to SendDiceRequest

Changed

  • Following optional parameters to ITelegramBotClient.SendPollAsync:
    • explanation
    • explanationParseMode
    • openPeriod
    • closeDate
  • Optional parameter emoji to ITelegramBotClient.SendDiceAsync

[15.5.1] - 2020-04-02

Fixed

  • Implementation of ITelegramBotClient.CreateNewAnimatedStickerSetAsync

[15.5.0] - 2020-04-02

Added

  • Requests
    • GetMyCommandsRequest
    • SetMyCommandsRequest
    • CreateNewAnimatedStickerSetRequest
    • AddNewAnimatedStickerToSetRequest
    • SendDiceRequest
    • SetStickerSetThumbRequest
  • Methods:
    • ITelegramBotClient.SendDiceAsync
    • ITelegramBotClient.CreateNewAnimatedStickerSetAsync
    • ITelegramBotClient.AddNewAnimatedStickerToSetAsync
    • ITelegramBotClient.SetStickerSetThumbAsync
    • ITelegramBotClient.GetMyCommandsAsync
    • ITelegramBotClient.SetMyCommandsAsync
  • Type Dice
  • Type BotCommand
  • Enum member MessageType.Dice
  • Property Message.Dice
  • Property StickerSet.Thumb

[15.4.0] - 2020-02-22

Added

  • Property SendInvoiceRequest.SendPhoneNumberToProvider
  • Property SendInvoiceRequest.SendEmailToProvider
  • Optional parameter sendPhoneNumberToProvider to method ITelegramBotClient.SendInvoiceAsync
  • Optional parameter sendEmailToProvider to method ITelegramBotClient.SendInvoiceAsync

[15.3.0] - 2020-01-31

Added

  • Type KeyboardButtonPollType
  • Static method KeyboardButton.WithRequestPoll
  • Type PollAnswer
  • Property KeyboardButton.RequestPoll
  • Enum PollType
  • Property MessageEntity.Language
  • Following properties to type Poll:
    • bool? IsAnonymous
    • string Type
    • bool? AllowsMultipleAnswers
    • int? CorrectOptionId
  • Following properties to type SendPollRequest:
    • bool? IsAnonymous
    • string Type
    • bool? AllowsMultipleAnswers
    • int? CorrectOptionId
    • bool? IsClosed
  • Property Update.PollAnswer
  • Enum member UpdateType.PollAnswer
  • Following properties to type User:
    • bool? CanJoinGroups
    • bool? CanReadAllGroupMessages
    • bool? SupportsInlineQueries

Changed

  • Method ITelegramBotClient.SendPollAsync, added following optional parameters:
    • bool? isAnonymous
    • string type
    • bool? allowsMultipleAnswers
    • int? correctOptionId
    • bool? isClosed
  • Method User.Equals takes into account new properties

[15.2.1] - 2020-01-23

Changed

  • All base request classes use explicit opt-in serialization strategy
  • All non Bot API properties in base request classes are annotated by JsonIgnoreAttribute
  • Type ContactRequestException is made obsolete due to Telegram changed it's error message

Fixed

  • A bug that prevented requests to be serialized when default JsonSerializerSettings were set

[15.2.0] - 2020-01-03

Added

  • Type SetChatAdministratorCustomTitleRequest
  • Method ITelegramBotClient.SetChatAdministratorCustomTitleAsync
  • Property FileBase.FileUniqueId
  • Property Animation.FileUniqueId
  • Property ChatPhoto.BigFileUniqueId
  • Property ChatPhoto.SmallFileUniqueId
  • Property Chat.SlowModeDelay
  • Property ChatMember.CustomTitle
  • Enum value ParseMode.MarkdownV2
  • Enum value MessageEntityType.Underline
  • Enum value MessageEntityType.Strikethrough

[15.1.0] - 2019-11-29

Added

  • Property RequestBase.IsWebhookResponse
  • The client outputs method property in the resulting HTTP body with the value from IRequest<T>.MethodName when RequestBase.IsWebhookResponse is set to true
  • Constructor with Uri param for InputOnlineFile (overloaded)

[15.0.0] - 2019-08-07

Added

  • Type ChatPermissions
  • Type SetChatPermissionsRequest
  • Property Sticker.IsAnimated
  • Property StickerSet.IsAnimated
  • Property Chat.Permissions
  • Property ChatMember.CanSendPolls

Changed

  • Individual permission properties in RestrictChatMemberRequest changed to Permissions property of type ChatPermissions
  • Individual permission parameters in ITelegramBotClient.RestrictChatMemberAsync changed to a single parameter of type ChatPermissions
  • Marked Chat.AllMembersAreAdministrators as obsolete

Fixed

  • XML doc comments about caption maximum length

[14.12.0] - 2019-06-10

Added

  • Type LoginUrl
  • Property Message.ReplyMarkup
  • Property InlineKeyboardButton.LoginUrl
  • Method InlineKeyboardButton.WithLoginUrl

[14.11.0] - 2019-04-23

Added

  • Type Poll
  • Type PollOption
  • Type SendPollRequest
  • Type StopPollRequest
  • Method SendPollAsync
  • Method StopPollAsync
  • Property Update.Poll
  • Property Message.Poll
  • Property Message.ForwardSenderName
  • Property ChatMember.IsMember
  • Enum value UpdateType.Poll
  • Enum value MessageType.Poll

Changed

  • Marked InvalidQueryIdException as obsolete

[14.10.0] - 2018-09-04

Added

  • Telegram Passport support
  • Type EncryptedCredentials
  • Type EncryptedPassportElement
  • Type PassportData
  • Type PassportFile
  • Property ITelegramBotClient.BotId
  • Property Message.PassportData

Changed

  • Marked DownloadFileAsync(string,CancellationToken) obsolete

[14.9.0] - 2018-08-06

Added

  • Method SendAnimationAsync
  • Parameter thumb to method SendAudioAsync
  • Parameter thumb to method SendDocumentAsync
  • Parameter thumb to method SendVideoAsync
  • Parameter thumb to method SendVideoNoteAsync
  • Type IChatMessage
  • Type IThumbMediaMessage
  • Type SendAnimationRequest
  • Property SendAudioRequest.Thumb
  • Property SendDocumentRequest.Thumb
  • Property SendVideoRequest.Thumb
  • Property SendVideoNoteRequest.Thumb
  • Property Audio.Thumb

[14.8.0] - 2018-07-29

Added

  • Parameter vCard to method SendContactAsync
  • Parameter foursquareType to method SendVenueAsync
  • Property SendContactRequest.Vcard
  • Property SendVenueRequest.FoursquareType
  • Property InlineQueryResultContact.Vcard
  • Property InlineQueryResultVenue.FoursquareType
  • Property InputContactMessageContent.Vcard
  • Property InputVenueMessageContent.FoursquareType
  • Property Contact.Vcard
  • Property Venue.FoursquareType
  • Enum value MessageEntityType.Cashtag

Changed

  • Marked MessageType.Animation as obsolete

[14.7.0] - 2018-07-29

Added

  • Partial support for Bot API v4.0
  • Method SendMediaGroupAsync (overloaded)
  • Method EditMessageMediaAsync
  • Method EditMessageMediaAsync
  • Type EditMessageMediaRequest
  • Type EditInlineMessageMediaRequest
  • Type InputMediaAudio
  • Type InputMediaDocument
  • Type InputMediaAnimation
  • Type IInputMedia
  • Type IAlbumInputMedia
  • Type IInputMediaThumb
  • Property Animation.Width
  • Property Animation.Height
  • Property Animation.Duration
  • Enum member MessageType.Animation
  • Property InputMediaVideo.Thumb
  • Property Message.Animation
  • Constructor with required parameters for InputMediaPhoto (overloaded)
  • Constructor with required parameters for InputMediaVideo (overloaded)
  • Constructor with required parameters for SendMediaGroupRequest (overloaded)

Fixed

  • Serialization error of InlineQueryResultDocument.Description being required
  • Incorrect serialization of InputMediaVideo

Changed

  • Marked method SendMediaGroupAsync as obsolete. An overload is provided.
  • Marked parameterless constructor of InputMediaPhoto as obsolete. An overload is provided.
  • Marked parameterless constructor of InputMediaVideo as obsolete. An overload is provided.

[14.6.0] - 2018-06-12

Added

  • Property ParseMode to requests with a caption
    • EditMessageCaptionRequest
    • EditInlineMessageCaptionRequest
  • Parameter parseMode to method ITelegramBotClient.EditMessageCaptionAsync

[14.5.0] - 2018-06-06

Added

  • New enum member MessageEntityType.PhoneNumber
  • New enum member MessageEntityType.Unknown

Fixed

  • Exception during deserialization of unknown message entity type

[14.4.0] - 2018-05-17

Changed

  • MakeRequestAsync throws ApiRequestException with ErrorCode = HttpStatusCode.Unauthorized and Message = apiResponse.Description ("Unauthorized"), to be consistent with Telegram Bot API
  • TelegramBotClient ctor does not check API token format: Telegram Bot API does not provide token format specification
  • TestApiAsync return false when ApiRequestException.ErrorCode == 401 (API Token is modified or recalled)
  • Stop catching user exceptions from event handlers
  • Make Message.IsForward property obsolete

Fixed

  • EditMessageTextAsync pass ParseMode to request

[14.3.0] - 2018-05-05

Added

  • Implicit cast of IEnumerable<InlineKeyboardButton>[] to InlineKeyboardMarkup
  • Implicit cast of InlineKeyboardButton[] to InlineKeyboardMarkup
  • Exception InvalidGameShortNameException
  • Exception InvalidQueryIdException

Changed

  • Made callbackGame parameter of InlineKeyboardButton.WithCallBackGame optional
  • Newtonsoft.Json updated to version 11.0.2

Fixed

  • Assigning param foursquareId of SendInvoiceAsync method to its request
  • Access modifier of abstract class BadRequestException and ForbiddenException ctors to protected

Removed

  • Parameterless ctor of InlineKeyboardMarkup
  • Exception BotBlockedException
  • Exception BotRestrictedException
  • Exception MissingParameterException
  • Exception NotEnoughRightsException
  • Exception WrongChatTypeException

[14.2.0-rc-452] - 2018-02-24

Added

  • Property Message.MediaGroupId
  • Property ICaptionInlineQueryResult.ParseMode
  • Property ParseMode to inline query results with a caption
    • InlineQueryResultPhoto
    • InlineQueryResultGif
    • InlineQueryResultCachedMpeg4Gif
    • InlineQueryResultVideo
    • InlineQueryResultAudio
    • InlineQueryResultVoice
    • InlineQueryResultDocument
    • InlineQueryResultCachedPhoto
    • InlineQueryResultCachedGif
    • InlineQueryResultCachedMpeg4Gif
    • InlineQueryResultCachedDocument
    • InlineQueryResultVideo
    • InlineQueryResultCachedVoice
    • InlineQueryResultCachedAudio

[14.1.0-rc-424] - 2018-02-24

Added

  • Support for Bot API v3.6
  • Override equality comparison for User type
  • Property ParseMode to file requests with a caption
    • SendVideoRequest
    • SendPhotoRequest
    • SendAudioRequest
    • SendDocumentRequest
    • SendVoiceRequest
  • Property InputMediaBase.ParseMode
  • Property SendVideoRequest.SupportsStreaming
  • Property InputMediaVideo.SupportsStreaming
  • Property Message.ConnectedWebsite
  • Parameter parseMode to methods
    • ITelegramBotClient.SendVideoAsync
    • ITelegramBotClient.SendAudioAsync
    • ITelegramBotClient.SendPhotoAsync
    • ITelegramBotClient.SendDocumentAsync
    • ITelegramBotClient.SendVoiceAsync
  • Parameter supportsStreaming to method ITelegramBotClient.SendVideoAsync
  • New members to enum MessageType
    • WebsiteConnected
    • ChatMembersAdded
    • ChatMemberLeft
    • ChatTitleChanged
    • ChatPhotoChanged
    • MessagePinned
    • ChatPhotoDeleted
    • GroupCreated
    • SupergroupCreated
    • ChannelCreated
    • MigratedToSupergroup
    • MigratedFromGroup
  • Exception MessageIsNotModifiedException

Changed

  • Changed InputMessageContent to abstract class InputMessageContentBase
  • Access modifier of parameterless ctors of all InlineQueryResult and InputMessageContent types to private

Fixed

  • Renamed InputVenueMessageContent.Name to InputVenueMessageContent.Title
  • Property Message.Type returns correct value after group chat migration

Removed

  • Enum member MessageType.Service

[14.0.0-rc-367] - 2018-01-04

Added

  • Type InvalidParameterException
  • Type FileBase

Changed

  • Moved all types in namespace Telegram.Bot.Types.InputMessageContents to namespace Telegram.Bot.Types.InlineQueryResults
  • Value names of enums MessageType and UpdateType

Removed

  • Property File.Stream
  • Property FilePath from Types Audio, Document, PhotoSize, Sticker, Video, VideoNote, and Voice
  • Property Message.NewChatMember

[14.0.0-beta-342] - 2018-01-03

Added

  • More PaymentTests cases
  • Type IKeyboardButton
  • Implicit cast of string[] to ReplyKeyboardMarkup
  • Implicit cast of string[][] to ReplyKeyboardMarkup
  • Inline query results
    • Type ICaptionInlineQueryResult
    • Type IInputMessageContentResult
    • Type ILocationInlineQueryResult
    • Type IThumbnailInlineQueryResult
    • Type IThumbnailUrlInlineQueryResult
    • Type ITitleInlineQueryResult
    • Constructor with required parameters in InlineQueryResult and all derived classes
    • Property InlineQueryResultVoice.Caption

Changed

  • All keyboard button classes inherit IKeyboardButton interface
  • All keyboard buttons moved to namespace Telegram.Bot.Types.ReplyMarkups.Buttons
  • Renamed type ReplyMarkup to ReplyMarkupBase
  • Renamed type ForceReply to ForceReplyMarkup
  • InlineQueryResult to abstract

Removed

  • All specific KeyboardButton types
  • All specific InlineKeyboardButton types
  • Implicit cast of InlineKeyboardButton to KeyboardButton
  • Type InlineQueryResultNew
  • Type InlineQueryResultCached
  • Property InlineQueryResult.Title
  • Property InlineQueryResult.InputMessageContent
  • Property InlineQueryResultAudio.FileId
  • JSON serialization attribute Required.Always of property InlineQueryResultAudio.Duration

Fixed

  • Invalid default value for SwitchInlineQueryCurrentChat in InlineKeyboardSwitchInlineQueryCurrentChatButton constructor

[14.0.0-alpha0] - 2017-12-31

Added

  • Request classes
    • Type GetUpdatesRequest
    • Type SetWebhookRequest
    • Type DeleteWebhookRequest
    • Type GetWebhookInfoRequest
    • Type GetMeRequest
    • Type SendMessageRequest
    • Type ForwardMessageRequest
    • Type SendPhotoRequest
    • Type SendAudioRequest
    • Type SendDocumentRequest
    • Type SendVideoRequest
    • Type SendVoiceRequest
    • Type SendVideoNoteRequest
    • Type SendLocationRequest
    • Type EditMessageLiveLocationRequest
    • Type EditInlineMessageLiveLocationRequest
    • Type StopMessageLiveLocationRequest
    • Type StopInlineMessageLiveLocationRequest
    • Type SendVenueRequest
    • Type SendContactRequest
    • Type SendChatActionRequest
    • Type GetUserProfilePicturesRequest
    • Type KickChatMemberRequest
    • Type UnbanChatMemberRequest
    • Type RestrictChatMemberRequest
    • Type PromoteChatMemberRequest
    • Type ExportChatInviteLinkRequest
    • Type SetChatPhotoRequest
    • Type DeleteChatPhotoRequest
    • Type SetChatTitleRequest
    • Type SetChatDescriptionRequest
    • Type PinChatMessageRequest
    • Type UnpinChatMessageRequest
    • Type LeaveChatRequest
    • Type GetChatRequest
    • Type GetChatAdministratorsRequest
    • Type GetChatMembersCountRequest
    • Type GetChatMemberRequest
    • Type SetChatStickerSetRequest
    • Type DeleteChatStickerSetRequest
    • Type AnswerCallbackQueryRequest
    • Type EditMessageTextRequest
    • Type EditInlineMessageTextRequest
    • Type EditMessageCaptionRequest
    • Type EditInlineMessageCaptionRequest
    • Type EditMessageReplyMarkupRequest
    • Type EditInlineMessageReplyMarkupRequest
    • Type DeleteMessageRequest
    • Type SendStickerRequest
    • Type GetStickerSetRequest
    • Type SetStickerPositionInSetRequest
    • Type AnswerInlineQueryRequest
    • Type DeleteStickerFromSetRequest
    • Type AddStickerToSetRequest
    • Type CreateNewStickerSetRequest
    • Type SendInvoiceRequest
    • Type AnswerShippingQueryRequest
    • Type AnswerPreCheckoutQueryRequest
    • Type SendGameRequest
    • Type SetGameScoreRequest
    • Type SetInlineGameScoreRequest
    • Type GetGameHighScoresRequest
    • Type GetInlineGameHighScoresRequest
    • Type GetFileRequest
    • Type FileRequestBase
    • Type UploadStickerFileRequest
    • Type INotifiableMessage
    • Type IReplyMessage
    • Type IFormattableMessage
    • Type IInlineMessage
    • Type IReplyMarkupMessage
    • Type IInlineReplyMarkupMessage
  • Type IInputFile
  • Type InputFileStream
  • Type InputTelegramFile
  • Type InputOnlineFile
  • Type InputFileConverter

Changed

  • Type of parameter allowedUpdates in method SetWebhookAsync changed to IEnumerable<UpdateType>
  • Type of parameter allowedUpdates in method GetUpdatesAsync changed to IEnumerable<UpdateType>
  • Type of parameter offset in method GetUserProfilePhotosAsync changed to int
  • Type of parameter replyMarkup in methods EditMessageLiveLocationAsync changed to InlineKeyboardMarkup
  • Type of parameter replyMarkup in methods StopMessageLiveLocationAsync changed to InlineKeyboardMarkup
  • Type of parameter replyMarkup in method EditMessageTextAsync changed to InlineKeyboardMarkup
  • Type of parameter replyMarkup in method EditMessageCaptionAsync changed to InlineKeyboardMarkup
  • Type of parameter replyMarkup in method EditMessageReplyMarkupAsync changed to InlineKeyboardMarkup
  • Type of parameter replyMarkup in method SendGameAsync changed to InlineKeyboardMarkup
  • Type of parameter replyMarkup in method SendInvoiceAsync changed to InlineKeyboardMarkup
  • Type of parameter prices in method SendInvoiceAsync changed to IEnumerable<LabeledPrice>
  • Type of parameter shippingOptions in method AnswerShippingQueryAsync changed to IEnumerable<ShippingOption>
  • Type of parameter chatId in method SendInvoiceAsync changed to int
  • Type of parameter chatId in method SendGameAsync changed to long
  • Type of parameter chatId in methods SetGameScoreAsync changed to long
  • Type of parameter chatId in methods GetGameHighScoresAsync changed to long
  • Type parameter of type SendMediaGroupRequest changed to Message[]
  • Return type of method GetChatIdFromTesterAsync in TestFixture changed to Task<long>
  • Type of property TesterPrivateChatId on type PaymentTestsFixture changed to long
  • Replace method EditInlineMessageTextAsync with overload for EditMessageTextAsync
  • Replace method EditInlineMessageCaptionAsync with overload for EditMessageCaptionAsync
  • Replace method EditInlineMessageReplyMarkupAsync with overload for EditMessageReplyMarkupAsync
  • Reorder parameters of method SendInvoiceAsync
  • Divide AnswerShippingQueryAsync method into two overloads
  • Divide AnswerPreCheckoutQueryAsync method into two overloads
  • Method CreateNewStickerSetAsync renamed to CreateNewStickerSetAsync
  • Method return type changed from Task<bool> to Task:
    • Method DeleteWebhookAsync
    • Method KickChatMemberAsync
    • Method LeaveChatAsync
    • Method UnbanChatMemberAsync
    • Method AnswerCallbackQueryAsync
    • Method RestrictChatMemberAsync
    • Method PromoteChatMemberAsync
    • Method StopMessageLiveLocationAsync
    • Method EditMessageTextAsync
    • Method EditMessageCaptionAsync
    • Method EditMessageReplyMarkupAsync
    • Method EditMessageLiveLocationAsync
    • Method DeleteMessageAsync
    • Method AnswerInlineQueryAsync
    • Method AnswerShippingQueryAsync
    • Method AnswerPreCheckoutQueryAsync
    • Method SetGameScoreAsync
    • Method CreateNewStickerSetAsync
    • Method AddStickerToSetAsync
    • Method SetStickerPositionInSetAsync
    • Method DeleteStickerFromSetAsync
    • Method SetChatPhotoAsync
    • Method DeleteChatPhotoAsync
    • Method SetChatTitleAsync
    • Method SetChatDescriptionAsync
    • Method PinChatMessageAsync
    • Method UnpinChatMessageAsync
    • Method SetChatStickerSetAsync
    • Method DeleteChatStickerSetAsync
  • Type of StickerSet.Stickers from List<Sticker> to Sticker[]
  • Type of ChatMember properties to nullable e.g. bool to bool?
  • Type of Message.Entities from List<MessageEntity> to MessageEntity[]
  • Type of Message.CaptionEntities from List<MessageEntity> to MessageEntity[]
  • Type of Message.EntityValues from List<string> to IEnumerable<string>
  • Type InputMediaType to InputMedia
  • Type InputMediaTypeConverter to InputMediaConverter
  • Changed member type from FileToSend to an implementation of IInputFile
    • Parameter certificate of method SetWebhookAsync
    • Parameter photo of method SendPhotoAsync
    • Parameter video of method SendVideoAsync
    • Parameter videoNote of method SendVideoNoteAsync
    • Parameter document of method SendDocumentAsync
    • Parameter sticker of method SendStickerAsync
    • Parameter pngSticker of method UploadStickerFileAsync
    • Parameter pngSticker of method CreateNewStickerSetAsync
    • Parameter pngSticker of method AddStickerToSetAsync
    • Parameter photo of method SetChatPhotoAsync
    • Parameter audio of method SendAudioAsync

Removed

  • Type FileToSend
  • Interface IResponse
  • Type parameter constraint from interface IRequest
  • Redundant parameter editMessage in methods SetGameScoreAsync
  • Redundant custom converter ParseModeConverter
  • Value All from UpdateType enum
  • Value Unknown from FileType enum
  • Default value of parameter url of method SetWebhookAsync
  • Property Width of VideoNote
  • Property Height of VideoNote
  • Property Zoom of MaskPosition

Fixed

  • Method SetWebhookAsync interface ITelegramBotClient returns bool on success
  • Passing wrong chatId value in method GetGameHighScoresAsync
  • Passing wrong chatId value in method SendGameAsync
  • Passing wrong chatId value in method SendInvoiceAsync
  • Passing wrong replyMarkup value in method SendGameAsync
  • Passing wrong replyMarkup value in method SendInvoiceAsync
  • Passing wrong replyMarkup value in method EditMessageLiveLocationAsync
  • Passing wrong replyMarkup value in method EditMessageReplyMarkupAsync
  • Passing wrong replyMarkup value in method EditMessageCaptionAsync
  • Passing wrong replyMarkup value in method EditMessageTextAsync
  • Passing wrong replyMarkup value in method StopMessageLiveLocationAsync
  • Passing wrong pngSticker value in method UploadStickerFileAsync
  • Passing wrong photo value in method SetChatPhotoAsync
  • Passing wrong certificate value in method SetWebhookAsync
  • Incorrect spelling of the method CreateNewStickerSetAsync
  • TestApiAsync() throws exception instead of returning false

[13.4.0] - 2017-12-07

Added

  • Stickers test cases
  • StickerOwnerUserId parameter to Systems Integration Tests settings
  • Exception ChatNotFoundException
  • Exception ContactRequestException
  • Exception InvalidUserIdException
  • Exception UserNotFoundException
  • Exception InvalidStickerSetNameException
  • Exception InvalidStickerEmojisException
  • Exception InvalidStickerDimensionsException
  • Exception StickerSetNameExistsException
  • Exception StickerSetNotModifiedException

Changed

  • Include XML docs in NuGet package

[13.4.0-rc2] - 2017-11-26

Fixed

  • Default snake-cased property name serialization

[13.4.0-rc1] - 2017-11-26

Added

  • Support for Bot API 3.5
  • Method SendMediaGroupAsync
  • Types InputFileBase and InputMediaBase
  • Test Collection AlbumMessageTests
  • Test Collection ChannelAdminBotTests

[13.3.0-rc1]

ToDo

[13.2.2-rc]

ToDo

[13.2.1] - 2017-09-04

Added

  • Systems integrations test project

Changed

  • Sandcastle project moved to docs branch
  • TravisCI configurations to run systems integrations tests

Fixed

  • Quoting the string containing channel ids
  • Double escaping the escape character in the caption of messages
  • Serialization errors of PhotoSize
  • Sending wrong filenames containing non-ASCII characters
  • Deserialization of PhotoSize

[13.1.0] - 2017-07-23

Added

  • Method KickChatMemberAsync parameter untilDate
  • Method RestrictChatMemberAsync
  • Method PromoteChatMemberAsync
  • Method ExportChatInviteLinkAsync
  • Method SetChatPhotoAsync
  • Method DeleteChatPhotoAsync
  • Method SetChatTitleAsync
  • Method SetChatDescriptionAsync
  • Method PinChatMessageAsync
  • Method UnpinChatMessageAsync
  • Method SendVideoNoteAsync parameter length
  • Method GetStickerSetAsync
  • Method UploadStickerFileAsync
  • Method CreateNewStickerSetAsync
  • Method AddStickerToSetAsync
  • Method SetStickerPositionInSetAsync
  • Method DeleteStickerFromSetAsync
  • Type VideoNote property Length
  • Type Chatproperties Photo, Description, InviteLink
  • Type ChatMember properties UntilDate, Can*
  • Type Sticker properties SetName and MaskPosition
  • Type MaskPosition
  • Type StickerSet
  • Type ChatPhoto
  • Types InlineKeyboard*Button
  • Enum MaskPositionPoint

Changed

  • User and Chat Ids reverted to base types
  • DateTimes are now in local time zone
  • Split Keyboard buttons to InlineKeyboardCallbackButton, InlineKeyboardCallbackGameButton, InlineKeyboardPayButton, InlineKeyboardSwitchCallbackQueryCurrentButton, InlineKeyboardSwitchInlineQueryButton and InlineKeyboardUrlButton

Fixed

  • Inline message editing
  • InlineQueryResult* ThumbHight and ThumbWidth
  • Method SetWebHookAsync parameter max_connections
  • Method SetGameStoreAsync
  • Type CallbackQuery Property Data optimal
  • Type Message can now be a VideoNoteMessage

[12.0.0] - Beta only

Added

  • Method DeleteMessageAsync
  • Method SendVideoNoteAsync
  • Method SendInvoiceAsync
  • Method AnswerShippingQueryAsync
  • Method AnswerPreCheckoutQueryAsync
  • Type Invoice
  • Type LabeledPrice
  • Type ShippingAddress
  • Type ShippingOption
  • Type ShippingQuery
  • Type SuccessfulPayment
  • Type OrderInfo
  • Type PreCheckoutQuery
  • Type VideoNote
  • Type Message properties VideoNote, Invoice and SuccessfulPayment
  • Type User property LanguageCode
  • Type Update properties ShippingQuery and PreCheckoutQuery
  • Type InlineQueryResultGif property Duration
  • Type InlineQueryResultMpeg4Gif property Duration
  • Type InlineKeyboardButton property Pay
  • Enum ChatAction members RecordVideoNote and UploadVideoNote
  • Enum UpdateType members ShippingQuery and PreCheckoutQuery

Changed

  • Property NewChatMember replaced with NewChatMembers on Type Message

[Past]

Added

  • Method SetWebHookAsync parameters maxConnections, allowedUpdates
  • Method AnswerCallbackQueryAsync parameter cacheTime
  • Method StartReceiving parameter allowedUpdates
  • Method DeleteWebhookAsync
  • Method GetWebhookInfoAsync
  • Type ApiExceptions property Parameters
  • Type InlineKeyboardButton property SwitchInlineQueryCurrentChat
  • Type ResponseParameters
  • Type WebhookInfo
  • Type ChatId
  • Type Chat property AllMembersAreAdministrators
  • Type Messageproperty ForwardFromMessageId
  • Type Update property ChannelPost, EditedChannelPost
  • Event OnReceiveGeneralError
  • Enum UpdateType member ChannelPost, EditedChannelPost
  • Enum FileType
  • Game Support
    • Method SetGameScoreAsync
    • Method SendGameAsync
    • Method GetGameHighScoresAsync
    • Method AnswerCallbackQueryAsync parameter url
    • Type Animation
    • Type CallbackGame
    • Type CallbackQuery properties ChatInstance, GameShortName
    • Type GameHighScore
    • Type InlineKeyboardButton property CallbackGame
    • Type InlineQueryResults
    • Type Message property Game
    • Enum InlineQueryResultType member Game
    • Enum MessageType member Game

Changed

  • Now the HttpClient will be reused
  • Consolidated timeouts
  • To use a proxy, use the constructor
  • Unified the chatId parameters
  • Replaced ReplyKeyboardHide with ReplyKeyboardRemove
  • Replaced all file sending overloads with FileToSend

Removed

  • Removed deprecated API class
  • Removed deprecated methods and events
  • Removed StartReceiving overload with timeout parameter