All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog and this project adheres to Semantic Versioning.
Bot API 6.4 (December 30, 2022)
- 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
- 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 classReplyKeyboardMarkup
- Types
ForumTopicEdited
,GeneralForumTopicHidden
,GeneralForumTopicUnhidden
,WriteAccessAllowed
- Property
int? MessageThreadId
to classSendChatActionRequest
- Properties
HasAggressiveAntiSpamEnabled
andHasHiddenMembers
to classChat
- Enum members
ForumTopicEdited
,GeneralForumTopicHidden
,GeneralForumTopicUnhidden
,WriteAccessAllowed
to enumMessageType
,
- Properties
EditForumTopicRequest.Name
andEditForumTopicRequest.IconCustomEmojiId
are made nullable - Added setters to properties
EditForumTopicRequest.Name
andEditForumTopicRequest.IconCustomEmojiId
- Parameters
name
andiconCustomEmojiId
and ctor ofEditForumTopicRequest
are made nullable and optional - Added optional parameter
bool? hasSpoiler
to the following methodsITelegramBotClient.SendAnimationAsync
ITelegramBotClient.SendVideoAsync
ITelegramBotClient.SendPhotoAsync
- Added optional parameter
int? messageThreadId
to methodITelegramBotClient.SendAnimationRequest
- Parameters
name
andiconCustomEmojiId
in methodITelegramBotClient.EditForumTopicAsync
are made nullable and optional
Bot API 6.1 (June 20, 2022)
Bot API 6.2 (August 12, 2022)
Bot API 6.3 (November 5, 2022)
- .NET 6 to targeted frameworks
- Following topic releated types:
Color
to represent color of topicsForumTopic
ForumTopicClosed
ForumTopicCreated
ForumTopicReopened
- New requests for managing topics:
CloseForumTopicRequest
CreateForumTopicRequest
DeleteForumTopicRequest
EditForumTopicRequest
ReopenForumTopicRequest
UnpinAllForumTopicMessagesRequest
- Property
MessageThreadId
to following requestsSendMessageRequest
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
toMessageEntityType
- Property
CustomEmojiId
toMessageEntity
- Extension method
GetCustomEmojiStickersAsync
- Request
GetCustomEmojiStickersRequest
- Enum
StickerType
- Properties
Type
andCustomEmojiId
toSticker
- Property
StickerType
toStickerSet
- Property
StickerType
toCreateNewStickerSetRequest
- Parameter
stickerType
toCreateNew*StickerSetAsync
extension methods - Property
HasRestrictedVoiceAndVideoMessages
toChat
- Properties
JoinToSendMessages
,JoinByRequest
toChat
- Properties
IsPremium
,AddedToAttachmentMenu
toUser
- Property
PremiumAnimation
toSticker
- Property
SecretToken
toSetWebhookRequest
- Parameter
secretToken
toSetWebhookAsync
- Request
CreateInvoiceLinkRequest
- Method
CreateInvoiceLinkAsync
- Constructors in following requests accept
IInputFile
or inheritors instead ofAddAnimatedStickerToSetRequest
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 methodITelegramBotClient.PromoteChatMemberAsync
- Property 'Message.Type' returns
MessageType.Animation
when amessage
containsAnimation
- Implicit conversion from
ChatId
tostring
- .NET Core 3.1 from targeted frameworks
- Property
ContainsMasks
fromStickerSet
- Property
ContainsMasks
fromCreateNewStickerSetRequest
- Parameter
containsMasks
fromCreateNew*StickerSetAsync
extension methods
Bot API 6.0 (April 16, 2022)
- 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
andWebAppData
in typeMessage
- Enum members
VideoChatScheduled
,VideoChatStarted
,VideoChatEnded
, andVideoChatParticipantsInvited
in typeMessageType
- Property
bool ITelegramBotClient.LocalBotServer
TelegramBotClient
constructor that accepts an instanceTelegramBotClientOptions
andHttpClient
- Renamed properties
ChatMemberAdministrator.CanManageVoiceChats
,PromoteChatMemberRequest.CanManageVoiceChats
toChatMemberAdministrator.CanManageVideoChats
andPromoteChatMemberRequest.CanManageVideoChats
- Removed
baseUrl
parameter from constructor inTelegramBotClient
that accepts a token - Type of property
FileBase.FileSize
changed fromint?
tolong?
- Argument
protectContent
in methodTelegramBotClientExtensions.ForwardMessageAsync
is passed to the corresponding request
- Enum members
VoiceChatScheduled
,VoiceChatStarted
,VoiceChatEnded
, andVoiceChatParticipantsInvited
in typeMessageType
- Properties
VoiceChatScheduled
,VoiceChatStarted
,VoiceChatEnded
andVoiceChatParticipantsInvited
in typeMessage
- Property
PinChatMessageRequest.ProtectedContent
Bot API 5.7 (January 31, 2022)
Bot API 5.6 (December 30, 2021)
Bot API 5.5 (December 7, 2021)
ApiRequestEventArgs
has full request information
- Requests
CreateNewVideoStickerSetRequest
,AddVideoStickerToSetRequest
,BanChatSenderChatRequest
,UnbanChatSenderChatRequest
- Extension methods
TelegramBotClientExtensions.CreateNewVideoStickerSetAsync
,TelegramBotClientExtensions.AddVideoStickerToSetAsync
,TelegramBotClientExtensions.BanChatSenderChatRequestAsync
,TelegramBotClientExtensions.UnbanChatSenderChatRequestAsync
- Property
int? MessageAutoDeleteTime
to classChat
- Property
bool? HasPrivateForwards
to classChat
- Property
bool? HasProtectedContent
to classChat
- Property
int? MessageAutoDeleteTime
to classMessage
- Property
bool? IsAutomaticForward
to classMessage
- Property
bool? HasProtectedContent
to classMessage
- 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 classSticker
- Property
IsVideo
to classStickerSet
- 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
- Method
TelegramBotClient.MakeRequestAsync
is made virtual - Class
CreateNewStickerSetRequest
renamed toCreateNewStaticStickerSetRequest
- Class
CreateNewStickerSetRequest
is made abstract - Class
AddStickerToSetRequest
renamed toAddStaticStickerToSetRequest
- Class
AddStickerToSetRequest
is made abstract - Method
TelegramBotClientExtensions.AddStickerToSetAsync
is renamed toAddStaticStickerToSetAsync
- Method
TelegramBotClientExtensions.CreateNewStaticStickerSetAsync
is renamed toCreateNewStaticStickerSetAsync
DeleteWebhookRequest
parameters are now properly serializing- Added missing json attribute to property
ChatInviteLink.Name
- Parameter
untilDate
is removed fromTelegramBotClientExtensions.BanChatSenderChatAsync
- Property
UntilDate
is removed fromBanChatSenderChatRequest
- v17 release
- Added missing JSON attributes on types
ApproveChatJoinRequest
andDeclineChatJoinRequest
- Types
ApproveChatJoinRequest
andDeclineChatJoinRequest
implementIChatTargetable
interface
Bot API 5.4 (November 5, 2021)
- 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
- Extension method
TelegramBotClientExtensions.EditChatInviteLinkAsync
:- Added parameters
string? name
andbool? createsJoinRequest
- Added parameters
- Extension method
TelegramBotClientExtensions.CreateChatInviteLinkAsync
:- Added parameters
string? name
andbool? createsJoinRequest
- Added parameters
- Fields
ChatId.Identifier
andChatId.Username
changed into get-only properties
- Method
GetInfoAndDownloadFileAsync
moved into static classTelegramBotClientExtensions
as an extension method - Symbols are always include in the package
- Interface
IExceptionsParser
- Type
ApiResponse
- Property
ITelegramBotClient.ExceptionsParser
- Parameter name
ChatLocation.String
replaced withChatLocation.Address
ITelegramBotClient.SendDocumentAsync
passed wrong value intoDisableContentTypeDetection
property
Bot API 5.3 (June 25, 2021)
- 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 acceptsInputMedia
- Protected constructor
InputTelegramFile
that acceptsFileType
- Property
string ForceReplyMarkup.InputFieldPlaceholder { get; set; }
- Property
string ReplyKeyboardMarkup.InputFieldPlaceholder { get; set; }
- Enum
EncryptedPassportElementType
- Interface
IChatTargetable
- Interface
IUserTargetable
- Type
InlineQueryResultBase
renamed toInlineQueryResult
- 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 of0
.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 parametersBotCommandScope scope
andstring language
- Changed parameters in
ITelegramBotClient.SetMyCommandsAsync
: added parametersBotCommandScope scope
andstring language
- Type of property
IInputMedia.Type
changed fromstring
toInputMediaType
- Property
InputFileStream.FileType
is no longer virtual - Constructor of type
InputFileStream
that accepts bothStream content
andstring fileName
:filename
parameter is made optional - Constructor of type
InputOnlineFile
that accepts bothStream content
andstring fileName
:filename
parameter is made optional - Constructor of type
InputTelegramFile
that accepts bothStream content
andstring 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 fromstring
toEncryptedPassportElementType
- All optional types are made nullable be it value or reference types
- Public setter
ChatMember.Status
- Enum member
ParseMode.Default
- Enum members
ChatAction.RecordAudio
andChatAction.UploadAudio
- Protected setter from property
InputFileStream.Content
- Constructor of type
InputFileStream
that accepts onlyStream
- Constructor of type
InputOnlineFile
that accepts onlyStream
- Constructor of type
InputTelegramFile
that accepts onlyStream
- 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
Animation
inherits fromFileBase
- All custom exceptions are marked as obsolete
Bot API 5.2 (April 26, 2021)
- Property
VoiceChatScheduled
to the classMessage
. - Types
VoiceChatScheduled
,InputInvoiceMessageContent
- New
MessageType
value:VoiceChatScheduled
- Property
ChatType
to the classInlineQuery
. - New
ChatType
value:Sender
- New
ChatAction
values:RecordVoice
,UploadVoice
- Optional parameters
maxTipAmount
andsuggestedTipAmounts
toITelegramBotClient.SendInvoiceAsync
- Properties
MaxTipAmount
andSuggestedTipAmounts
toSendInvoiceRequest
- Parameter order in
ITelegramBotClient.UnpinChatMessageAsync
- Parameter
startParameter
of the methodITelegramBotClient.SendInvoiceAsync
became optional ChatAction
valuesRecordAudio
andUploadAudio
marked as obsoleteReplyToMessageId
andAllowSendingWithoutReply
inIReplyMessage
,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 fieldFileUniqueId
in objects of the typePhotoSize
and of the fieldsSmallFileUniqueId
andBigFileUniqueId
in objects of the typeChatPhoto
.
⚠️ 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.
- Align property order and description with official docs
- Parameter
startParameter
fromSendInvoiceRequest
constructor
Bot API 5.1 (March 9, 2021) Bot API 5.0 (November 4, 2020)
- The method
ITelegramBotClient.CreateChatInviteLinkAsync
- The method
ITelegramBotClient.EditChatInviteLinkAsync
- The method
ITelegramBotClient.RevokeChatInviteLinkAsync
- Optional parameter
revokeMessages
toITelegramBotClient.KickChatMemberAsync
- Optional parameters
canManageChat
,canManageVoiceChats
toITelegramBotClient.KickChatMemberAsync
- Property
RevokeMessages
toKickChatMemberRequest
- Properties
CanManageChat
,CanManageVoiceChats
toPromoteChatMemberRequest
- Properties
CanManageChat
,CanManageVoiceChats
toChatMember
- Properties
MessageAutoDeleteTimerChanged
,VoiceChatStarted
,VoiceChatEnded
,VoiceChatParticipantsInvited
toMessage
- Properties
MyChatMember
andChatMember
toUpdate
- Types
CreateChatInviteLinkRequest
,EditChatInviteLinkRequest
,RevokeChatInviteLinkRequest
,ChatInviteLink
,ChatMemberUpdated
,MessageAutoDeleteTimerChanged
,VoiceChatEnded
,VoiceChatParticipantsInvited
,VoiceChatStarted
- New enum value
Bowling
forEmoji
- New enum values
MessageAutoDeleteTimerChanged
,ProximityAlertTriggered
,VoiceChatStarted
,VoiceChatEnded
,VoiceChatParticipantsInvited
forMessageType
- New enum values
MyChatMember
,ChatMember
forUpdateType
- Delegate
AsyncEventHandler<T>
- Methods:
ITelegramBotClient.LogOutAsync
ITelegramBotClient.CloseAsync
ITelegramBotClient.CopyMessageAsync
ITelegramBotClient.UnpinAllChatMessages
- Optional parameter
ipAddress
toITelegramBotClient.SetWebhookAsync
- Optional parameter
dropPendingUpdates
toITelegramBotClient.SetWebhookAsync
,ITelegramBotClient.DeleteWebhookAsync
- Optional parameter
allowSendingWithoutReply
to the methodsSendTextMessageAsync
,SendPhotoAsync
,SendVideoAsync
,SendAnimationAsync
,SendAudioAsync
,SendDocumentAsync
,SendStickerAsync
,SendVideoNoteAsync
,SendVoiceAsync
,SendLocationAsync
,SendVenueAsync
,SendContactAsync
,SendPollAsync
,SendDiceAsync
,SendInvoiceAsync
,SendGameAsync
,SendMediaGroupAsync
- Optional parameter
captionEntities
toSendTextMessageAsync
,SendPhotoAsync
,SendVideoAsync
,SendAnimationAsync
,SendAudioAsync
,SendDocumentAsync
,SendVoiceAsync
,SendPollAsync
,EditMessageTextAsync
,EditMessageCaptionAsync
- Optional parameter
isAnonymous
toITelegramBotClient.PromoteChatMemberAsync
- Optional parameter
messageId
toITelegramBotClient.UnpinChatMessageAsync
- Optional parameter
onlyIfBanned
toITelegramBotClient.UnbanChatMemberAsync
- Optional parameter
disableContentTypeDetection
toITelegramBotClient.SendDocumentAsync
- Optional parameter
heading
toITelegramBotClient.SendLocationAsync
,ITelegramBotClient.EditMessageLiveLocationAsync
- Optional parameter
proximityAlertRadius
toITelegramBotClient.SendLocationAsync
,ITelegramBotClient.EditMessageLiveLocationAsync
- Optional parameter
horizontalAccuracy
toITelegramBotClient.SendLocationAsync
,ITelegramBotClient.EditMessageLiveLocationAsync
- Optional parameters
googlePlaceId
,googlePlaceType
toITelegramBotClient.SendVenueAsync
- Property
IpAddress
toSetWebhookRequest
,WebhookInfo
- Property
DropPendingUpdates
toSetWebhookRequest
,DeleteWebhookRequest
- Property
AllowSendingWithoutReply
toSendMessageRequest
,SendPhotoRequest
,SendAudioRequest
,SendDocumentRequest
,SendStickerRequest
,SendVideoRequest
,SendAnimationRequest
,SendVoiceRequest
,SendVideoNoteRequest
,SendMediaGroupRequest
,SendLocationRequest
,SendVenueRequest
,SendContactRequest
,SendPollRequest
,SendDiceRequest
,SendInvoiceRequest
,SendGameRequest
- Property
CaptionEntities
toInputMediaBase
,InlineQueryResultPhoto
,InlineQueryResultGif
,InlineQueryResultMpeg4Gif
,InlineQueryResultVideo
,InlineQueryResultAudio
,InlineQueryResultVoice
,InlineQueryResultDocument
,InlineQueryResultCachedPhoto
,InlineQueryResultCachedGif
,InlineQueryResultCachedMpeg4Gif
,InlineQueryResultCachedVideo
,InlineQueryResultCachedAudio
,InlineQueryResultCachedVoice
,InlineQueryResultCachedDocument
- Property
Entities
toInputTextMessageContent
- Properties
SenderChat
,AuthorSignature
,ProximityAlertTriggered
toMessage
- Properties
Bio
,LinkedChatId
,Location
toChat
- Property
IsAnonymous
toChatMember
,PromoteChatMemberRequest
- Property
LivePeriod
toLocation
- Property
ProximityAlertRadius
toLocation
,InlineQueryResultLocation
,InputLocationMessageContent
,SendLocationRequest
,EditMessageLiveLocationRequest
,EditInlineMessageLiveLocationRequest
- Property
HorizontalAccuracy
toLocation
,InlineQueryResultLocation
,InputLocationMessageContent
,SendLocationRequest
,EditMessageLiveLocationRequest
,EditInlineMessageLiveLocationRequest
- Property
Heading
toLocation
,InlineQueryResultLocation
,SendLocationRequest
,EditMessageLiveLocationRequest
,EditInlineMessageLiveLocationRequest
- Property
MessageId
toPinChatMessageRequest
- Property
OnlyIfBanned
toUnbanChatMemberRequest
- Property
FileName
toAudio
,Video
- Property
DisableContentTypeDetection
toMakeRequestAsync
,InputMediaDocument
- Properties
GooglePlaceId
,GooglePlaceType
toSendVenueRequest
,Venue
,InlineQueryResultVenue
,InputVenueMessageContent
- New enum values
Football
,SlotMachine
forEmoji
- Type
ChatLocation
- Type
ProximityAlertTriggered
- Support for sending and receiving audio and document albums in the method
SendMediaGroupAsync
- 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
acceptingIWebProxy
as obsolete - Property
ITelegramBotClient.BotId
tolong?
- Event
MakingApiRequest
renamed toOnMakingApiRequest
and it's type is changed toAsyncEventHandler<ApiRequestEventArgs>
- Event
ApiResponseReceived
renamed toOnApiResponseReceived
and it's type is changed toAsyncEventHandler<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
- These methods are now obsolete:
- Error
429 Too Many Request
is now handled by the client and is thrown asApiRequestException
⚠️ 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.
- Incorrect property name
ExplanationCaptionEntities
->ExplanationEntities
inSendPollRequest
- 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
fromChat
- Obsolete property
IsForwarded
fromMessage
- Obsolete value
Animation
from enumMessageType
- Source Link support
- Fully deterministic build
- Enum member
Emoji.Basketball
- Property
InlineQueryResultGif.ThumbMimeType
- Property
InlineQueryResultMpeg4Gif.ThumbMimeType
- Property
Message.ViaBot
- 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
toSendDiceRequest
- Following optional parameters to
ITelegramBotClient.SendPollAsync
:explanation
explanationParseMode
openPeriod
closeDate
- Optional parameter
emoji
toITelegramBotClient.SendDiceAsync
- Implementation of
ITelegramBotClient.CreateNewAnimatedStickerSetAsync
- 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
- Property
SendInvoiceRequest.SendPhoneNumberToProvider
- Property
SendInvoiceRequest.SendEmailToProvider
- Optional parameter
sendPhoneNumberToProvider
to methodITelegramBotClient.SendInvoiceAsync
- Optional parameter
sendEmailToProvider
to methodITelegramBotClient.SendInvoiceAsync
- 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
- 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
- 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
- A bug that prevented requests to be serialized when default
JsonSerializerSettings
were set
- 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
- Property
RequestBase.IsWebhookResponse
- The client outputs
method
property in the resulting HTTP body with the value fromIRequest<T>.MethodName
whenRequestBase.IsWebhookResponse
is set to true - Constructor with
Uri
param forInputOnlineFile
(overloaded)
- Type
ChatPermissions
- Type
SetChatPermissionsRequest
- Property
Sticker.IsAnimated
- Property
StickerSet.IsAnimated
- Property
Chat.Permissions
- Property
ChatMember.CanSendPolls
- Individual permission properties in
RestrictChatMemberRequest
changed toPermissions
property of typeChatPermissions
- Individual permission parameters in
ITelegramBotClient.RestrictChatMemberAsync
changed to a single parameter of typeChatPermissions
- Marked
Chat.AllMembersAreAdministrators
as obsolete
- XML doc comments about caption maximum length
- Type
LoginUrl
- Property
Message.ReplyMarkup
- Property
InlineKeyboardButton.LoginUrl
- Method
InlineKeyboardButton.WithLoginUrl
- 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
- Marked
InvalidQueryIdException
as obsolete
- Telegram Passport support
- Type
EncryptedCredentials
- Type
EncryptedPassportElement
- Type
PassportData
- Type
PassportFile
- Property
ITelegramBotClient.BotId
- Property
Message.PassportData
- Marked
DownloadFileAsync(string,CancellationToken)
obsolete
- Method
SendAnimationAsync
- Parameter
thumb
to methodSendAudioAsync
- Parameter
thumb
to methodSendDocumentAsync
- Parameter
thumb
to methodSendVideoAsync
- Parameter
thumb
to methodSendVideoNoteAsync
- Type
IChatMessage
- Type
IThumbMediaMessage
- Type
SendAnimationRequest
- Property
SendAudioRequest.Thumb
- Property
SendDocumentRequest.Thumb
- Property
SendVideoRequest.Thumb
- Property
SendVideoNoteRequest.Thumb
- Property
Audio.Thumb
- Parameter
vCard
to methodSendContactAsync
- Parameter
foursquareType
to methodSendVenueAsync
- 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
- Marked
MessageType.Animation
as obsolete
- 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)
- Serialization error of
InlineQueryResultDocument.Description
being required - Incorrect serialization of
InputMediaVideo
- 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.
- Property
ParseMode
to requests with a captionEditMessageCaptionRequest
EditInlineMessageCaptionRequest
- Parameter
parseMode
to methodITelegramBotClient.EditMessageCaptionAsync
- New enum member
MessageEntityType.PhoneNumber
- New enum member
MessageEntityType.Unknown
- Exception during deserialization of unknown message entity type
MakeRequestAsync
throwsApiRequestException
withErrorCode = HttpStatusCode.Unauthorized
andMessage = apiResponse.Description
("Unauthorized"), to be consistent with Telegram Bot APITelegramBotClient
ctor does not check API token format: Telegram Bot API does not provide token format specificationTestApiAsync
returnfalse
whenApiRequestException.ErrorCode == 401
(API Token is modified or recalled)- Stop catching user exceptions from event handlers
- Make
Message.IsForward
property obsolete
EditMessageTextAsync
passParseMode
to request
- Implicit cast of
IEnumerable<InlineKeyboardButton>[]
toInlineKeyboardMarkup
- Implicit cast of
InlineKeyboardButton[]
toInlineKeyboardMarkup
- Exception
InvalidGameShortNameException
- Exception
InvalidQueryIdException
- Made
callbackGame
parameter ofInlineKeyboardButton.WithCallBackGame
optional Newtonsoft.Json
updated to version11.0.2
- Assigning param
foursquareId
ofSendInvoiceAsync
method to its request - Access modifier of abstract class
BadRequestException
andForbiddenException
ctors toprotected
- Parameterless ctor of
InlineKeyboardMarkup
- Exception
BotBlockedException
- Exception
BotRestrictedException
- Exception
MissingParameterException
- Exception
NotEnoughRightsException
- Exception
WrongChatTypeException
- Property
Message.MediaGroupId
- Property
ICaptionInlineQueryResult.ParseMode
- Property
ParseMode
to inline query results with a captionInlineQueryResultPhoto
InlineQueryResultGif
InlineQueryResultCachedMpeg4Gif
InlineQueryResultVideo
InlineQueryResultAudio
InlineQueryResultVoice
InlineQueryResultDocument
InlineQueryResultCachedPhoto
InlineQueryResultCachedGif
InlineQueryResultCachedMpeg4Gif
InlineQueryResultCachedDocument
InlineQueryResultVideo
InlineQueryResultCachedVoice
InlineQueryResultCachedAudio
- Support for Bot API v3.6
- Override equality comparison for
User
type - Property
ParseMode
to file requests with a captionSendVideoRequest
SendPhotoRequest
SendAudioRequest
SendDocumentRequest
SendVoiceRequest
- Property
InputMediaBase.ParseMode
- Property
SendVideoRequest.SupportsStreaming
- Property
InputMediaVideo.SupportsStreaming
- Property
Message.ConnectedWebsite
- Parameter
parseMode
to methodsITelegramBotClient.SendVideoAsync
ITelegramBotClient.SendAudioAsync
ITelegramBotClient.SendPhotoAsync
ITelegramBotClient.SendDocumentAsync
ITelegramBotClient.SendVoiceAsync
- Parameter
supportsStreaming
to methodITelegramBotClient.SendVideoAsync
- New members to enum
MessageType
WebsiteConnected
ChatMembersAdded
ChatMemberLeft
ChatTitleChanged
ChatPhotoChanged
MessagePinned
ChatPhotoDeleted
GroupCreated
SupergroupCreated
ChannelCreated
MigratedToSupergroup
MigratedFromGroup
- Exception
MessageIsNotModifiedException
- Changed
InputMessageContent
to abstract classInputMessageContentBase
- Access modifier of parameterless ctors of all
InlineQueryResult
andInputMessageContent
types toprivate
- Renamed
InputVenueMessageContent.Name
toInputVenueMessageContent.Title
- Property
Message.Type
returns correct value after group chat migration
- Enum member
MessageType.Service
- Type
InvalidParameterException
- Type
FileBase
- Moved all types in namespace
Telegram.Bot.Types.InputMessageContents
to namespaceTelegram.Bot.Types.InlineQueryResults
- Value names of enums
MessageType
andUpdateType
- Property
File.Stream
- Property
FilePath
from TypesAudio
,Document
,PhotoSize
,Sticker
,Video
,VideoNote
, andVoice
- Property
Message.NewChatMember
- More
PaymentTests
cases - Type
IKeyboardButton
- Implicit cast of
string[]
toReplyKeyboardMarkup
- Implicit cast of
string[][]
toReplyKeyboardMarkup
- 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
- Type
- All keyboard button classes inherit
IKeyboardButton
interface - All keyboard buttons moved to namespace
Telegram.Bot.Types.ReplyMarkups.Buttons
- Renamed type
ReplyMarkup
toReplyMarkupBase
- Renamed type
ForceReply
toForceReplyMarkup
InlineQueryResult
to abstract
- All specific
KeyboardButton
types - All specific
InlineKeyboardButton
types - Implicit cast of
InlineKeyboardButton
toKeyboardButton
- Type
InlineQueryResultNew
- Type
InlineQueryResultCached
- Property
InlineQueryResult.Title
- Property
InlineQueryResult.InputMessageContent
- Property
InlineQueryResultAudio.FileId
- JSON serialization attribute
Required.Always
of propertyInlineQueryResultAudio.Duration
- Invalid default value for
SwitchInlineQueryCurrentChat
inInlineKeyboardSwitchInlineQueryCurrentChatButton
constructor
- 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
- Type
IInputFile
- Type
InputFileStream
- Type
InputTelegramFile
- Type
InputOnlineFile
- Type
InputFileConverter
- Type of parameter
allowedUpdates
in methodSetWebhookAsync
changed toIEnumerable<UpdateType>
- Type of parameter
allowedUpdates
in methodGetUpdatesAsync
changed toIEnumerable<UpdateType>
- Type of parameter
offset
in methodGetUserProfilePhotosAsync
changed toint
- Type of parameter
replyMarkup
in methodsEditMessageLiveLocationAsync
changed toInlineKeyboardMarkup
- Type of parameter
replyMarkup
in methodsStopMessageLiveLocationAsync
changed toInlineKeyboardMarkup
- Type of parameter
replyMarkup
in methodEditMessageTextAsync
changed toInlineKeyboardMarkup
- Type of parameter
replyMarkup
in methodEditMessageCaptionAsync
changed toInlineKeyboardMarkup
- Type of parameter
replyMarkup
in methodEditMessageReplyMarkupAsync
changed toInlineKeyboardMarkup
- Type of parameter
replyMarkup
in methodSendGameAsync
changed toInlineKeyboardMarkup
- Type of parameter
replyMarkup
in methodSendInvoiceAsync
changed toInlineKeyboardMarkup
- Type of parameter
prices
in methodSendInvoiceAsync
changed toIEnumerable<LabeledPrice>
- Type of parameter
shippingOptions
in methodAnswerShippingQueryAsync
changed toIEnumerable<ShippingOption>
- Type of parameter
chatId
in methodSendInvoiceAsync
changed toint
- Type of parameter
chatId
in methodSendGameAsync
changed tolong
- Type of parameter
chatId
in methodsSetGameScoreAsync
changed tolong
- Type of parameter
chatId
in methodsGetGameHighScoresAsync
changed tolong
- Type parameter of type
SendMediaGroupRequest
changed toMessage[]
- Return type of method
GetChatIdFromTesterAsync
inTestFixture
changed toTask<long>
- Type of property
TesterPrivateChatId
on typePaymentTestsFixture
changed tolong
- Replace method
EditInlineMessageTextAsync
with overload forEditMessageTextAsync
- Replace method
EditInlineMessageCaptionAsync
with overload forEditMessageCaptionAsync
- Replace method
EditInlineMessageReplyMarkupAsync
with overload forEditMessageReplyMarkupAsync
- Reorder parameters of method
SendInvoiceAsync
- Divide
AnswerShippingQueryAsync
method into two overloads - Divide
AnswerPreCheckoutQueryAsync
method into two overloads - Method
CreateNewStickerSetAsync
renamed toCreateNewStickerSetAsync
- Method return type changed from
Task<bool>
toTask
:- 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
- Method
- Type of
StickerSet.Stickers
fromList<Sticker>
toSticker[]
- Type of
ChatMember
properties to nullable e.g.bool
tobool?
- Type of
Message.Entities
fromList<MessageEntity>
toMessageEntity[]
- Type of
Message.CaptionEntities
fromList<MessageEntity>
toMessageEntity[]
- Type of
Message.EntityValues
fromList<string>
toIEnumerable<string>
- Type
InputMediaType
toInputMedia
- Type
InputMediaTypeConverter
toInputMediaConverter
- Changed member type from
FileToSend
to an implementation ofIInputFile
- Parameter
certificate
of methodSetWebhookAsync
- Parameter
photo
of methodSendPhotoAsync
- Parameter
video
of methodSendVideoAsync
- Parameter
videoNote
of methodSendVideoNoteAsync
- Parameter
document
of methodSendDocumentAsync
- Parameter
sticker
of methodSendStickerAsync
- Parameter
pngSticker
of methodUploadStickerFileAsync
- Parameter
pngSticker
of methodCreateNewStickerSetAsync
- Parameter
pngSticker
of methodAddStickerToSetAsync
- Parameter
photo
of methodSetChatPhotoAsync
- Parameter
audio
of methodSendAudioAsync
- Parameter
- Type
FileToSend
- Interface
IResponse
- Type parameter constraint from interface
IRequest
- Redundant parameter
editMessage
in methodsSetGameScoreAsync
- Redundant custom converter
ParseModeConverter
- Value
All
fromUpdateType
enum - Value
Unknown
fromFileType
enum - Default value of parameter
url
of methodSetWebhookAsync
- Property
Width
ofVideoNote
- Property
Height
ofVideoNote
- Property
Zoom
ofMaskPosition
- Method
SetWebhookAsync
interfaceITelegramBotClient
returnsbool
on success - Passing wrong
chatId
value in methodGetGameHighScoresAsync
- Passing wrong
chatId
value in methodSendGameAsync
- Passing wrong
chatId
value in methodSendInvoiceAsync
- Passing wrong
replyMarkup
value in methodSendGameAsync
- Passing wrong
replyMarkup
value in methodSendInvoiceAsync
- Passing wrong
replyMarkup
value in methodEditMessageLiveLocationAsync
- Passing wrong
replyMarkup
value in methodEditMessageReplyMarkupAsync
- Passing wrong
replyMarkup
value in methodEditMessageCaptionAsync
- Passing wrong
replyMarkup
value in methodEditMessageTextAsync
- Passing wrong
replyMarkup
value in methodStopMessageLiveLocationAsync
- Passing wrong
pngSticker
value in methodUploadStickerFileAsync
- Passing wrong
photo
value in methodSetChatPhotoAsync
- Passing wrong
certificate
value in methodSetWebhookAsync
- Incorrect spelling of the method
CreateNewStickerSetAsync
TestApiAsync()
throws exception instead of returningfalse
Stickers
test casesStickerOwnerUserId
parameter to Systems Integration Tests settings- Exception
ChatNotFoundException
- Exception
ContactRequestException
- Exception
InvalidUserIdException
- Exception
UserNotFoundException
- Exception
InvalidStickerSetNameException
- Exception
InvalidStickerEmojisException
- Exception
InvalidStickerDimensionsException
- Exception
StickerSetNameExistsException
- Exception
StickerSetNotModifiedException
- Include XML docs in NuGet package
- Default snake-cased property name serialization
- Support for Bot API 3.5
- Method
SendMediaGroupAsync
- Types
InputFileBase
andInputMediaBase
- Test Collection
AlbumMessageTests
- Test Collection
ChannelAdminBotTests
ToDo
ToDo
- Systems integrations test project
- Sandcastle project moved to
docs
branch - TravisCI configurations to run systems integrations tests
- 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
- Method
KickChatMemberAsync
parameteruntilDate
- Method
RestrictChatMemberAsync
- Method
PromoteChatMemberAsync
- Method
ExportChatInviteLinkAsync
- Method
SetChatPhotoAsync
- Method
DeleteChatPhotoAsync
- Method
SetChatTitleAsync
- Method
SetChatDescriptionAsync
- Method
PinChatMessageAsync
- Method
UnpinChatMessageAsync
- Method
SendVideoNoteAsync
parameterlength
- Method
GetStickerSetAsync
- Method
UploadStickerFileAsync
- Method
CreateNewStickerSetAsync
- Method
AddStickerToSetAsync
- Method
SetStickerPositionInSetAsync
- Method
DeleteStickerFromSetAsync
- Type
VideoNote
propertyLength
- Type
Chat
propertiesPhoto
,Description
,InviteLink
- Type
ChatMember
propertiesUntilDate
,Can*
- Type
Sticker
propertiesSetName
andMaskPosition
- Type
MaskPosition
- Type
StickerSet
- Type
ChatPhoto
- Types
InlineKeyboard*Button
- Enum
MaskPositionPoint
- User and Chat Ids reverted to base types
- DateTimes are now in local time zone
- Split Keyboard buttons to
InlineKeyboardCallbackButton
,InlineKeyboardCallbackGameButton
,InlineKeyboardPayButton
,InlineKeyboardSwitchCallbackQueryCurrentButton
,InlineKeyboardSwitchInlineQueryButton
andInlineKeyboardUrlButton
- Inline message editing
- InlineQueryResult*
ThumbHight
andThumbWidth
- Method
SetWebHookAsync
parametermax_connections
- Method
SetGameStoreAsync
- Type
CallbackQuery
PropertyData
optimal - Type
Message
can now be aVideoNoteMessage
- 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
propertiesVideoNote
,Invoice
andSuccessfulPayment
- Type
User
propertyLanguageCode
- Type
Update
propertiesShippingQuery
andPreCheckoutQuery
- Type
InlineQueryResultGif
propertyDuration
- Type
InlineQueryResultMpeg4Gif
propertyDuration
- Type
InlineKeyboardButton
propertyPay
- Enum
ChatAction
membersRecordVideoNote
andUploadVideoNote
- Enum
UpdateType
membersShippingQuery
andPreCheckoutQuery
- Property
NewChatMember
replaced withNewChatMembers
on TypeMessage
- Method
SetWebHookAsync
parametersmaxConnections
,allowedUpdates
- Method
AnswerCallbackQueryAsync
parametercacheTime
- Method
StartReceiving
parameterallowedUpdates
- Method
DeleteWebhookAsync
- Method
GetWebhookInfoAsync
- Type
ApiExceptions
propertyParameters
- Type
InlineKeyboardButton
propertySwitchInlineQueryCurrentChat
- Type
ResponseParameters
- Type
WebhookInfo
- Type
ChatId
- Type
Chat
propertyAllMembersAreAdministrators
- Type
Message
propertyForwardFromMessageId
- Type
Update
propertyChannelPost
,EditedChannelPost
- Event
OnReceiveGeneralError
- Enum
UpdateType
memberChannelPost
,EditedChannelPost
- Enum
FileType
- Game Support
- Method
SetGameScoreAsync
- Method
SendGameAsync
- Method
GetGameHighScoresAsync
- Method
AnswerCallbackQueryAsync
parameterurl
- Type
Animation
- Type
CallbackGame
- Type
CallbackQuery
propertiesChatInstance
,GameShortName
- Type
GameHighScore
- Type
InlineKeyboardButton
propertyCallbackGame
- Type
InlineQueryResults
- Type
Message
propertyGame
- Enum
InlineQueryResultType
memberGame
- Enum
MessageType
memberGame
- Method
- Now the
HttpClient
will be reused - Consolidated timeouts
- To use a proxy, use the constructor
- Unified the
chatId
parameters - Replaced
ReplyKeyboardHide
withReplyKeyboardRemove
- Replaced all file sending overloads with
FileToSend
- Removed deprecated API class
- Removed deprecated methods and events
- Removed
StartReceiving
overload withtimeout
parameter