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.
- 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
CreateNewStickerSetAsnyc
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
- Splitedd Keyboardbuttons in
InlineKeyboardCallbackButton
,InlineKeyboardCallbackGameButton
,InlineKeyboardPayButton
,InlineKeyboardSwitchCallbackQueryCurrentButton
,InlineKeyboardSwitchInlineQueryButton
andInlineKeyboardUrlButton
- Inline messge 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
popertyLanguageCode
- Type
Update
propertiesShippingQuery
andPreCheckoutQuery
- Type
InlineQueryResultGif
porpertyDuration
- Type
InlineQueryResultMpeg4Gif
porpertyDuration
- Type
InlineeyboardButton
propertyPay
- Enum
ChatAction
membersRecordVideoNote
andUplaodVideoNote
- 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
propertiyCallbackGame
- Type
InlineQueryResults
- Type
Message
propertyGame
- Enum
InlineQueryResultType
memberGame
- Enum
MesageType
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