All notable changes to telegram-bot-api
will be documented in this file.
-
- Added class
WebAppInfoType
. ClassesInlineKeyboardButtonType
andKeyboardButtonType
extended with parameterwebApp
;
- Added class
-
- Added class
MenuButtonType
; - Added classes
GetChatMenuButtonMethod
andSetChatMenuButtonMethod
for setting chat menu button and getting info about it; - Added class
SetChatMenuButtonNormalizer
for normalize data fromSetChatMenuButtonMethod
before making request;
- Added class
- Supported for symfony 6.x components
-
- You can pass url as 4th param in bot api
$bot = new \TgBotApi\BotApiBase\BotApi('<bot key>', $apiClient, new \TgBotApi\BotApiBase\BotApiNormalizer(), '<your-domain>');
- Added the method
logOut
(LogOutMethod
), which can be used to log out from the cloud Bot API server before launching your bot locally. You must log out the bot before running it locally, otherwise there is no guarantee that the bot will receive all updates. - Added the method
close
(CloseMethod
), which can be used to close the bot instance before moving it from one local server to another.
- You can pass url as 4th param in bot api
-
- Added the parameter
ipAddress
to the classSetWebhookMethod
, allowing to bypass DNS resolving and use the specified fixed IP address to send webhook requests. - Added the field
ipAddress
to the classWebhookInfoType
, containing the current IP address used for webhook connections creation. - Added the ability to drop all pending updates when changing webhook URL using the parameter
dropPendingUpdates
to the classSetWebhookMethod
and toDeleteWebhookMethod
.
- Added the parameter
-
- The
getChat
request now returns the identifier of the linked chat for supergroups and channels, i.e. the discussion group identifier for a channel and vice versa in thelinkedChatId
property. - The
getChat
request now returns the location to which the supergroup is connected (seeChatType::$location
). Added the classChatLocationType
to represent the location. - Added the parameter
onlyIfBanned
to the classUnbanChatMemberMethod
to allow safe unban.
- The
-
- Added the property
fileName
to the classesAudioType
andVideoType
, containing the name of the original file. - Added the ability to disable server-side file content type detection using the property
disableContentTypeDetection
in theSendDocumentMethod
and the class inputMediaDocument.
- Added the property
-
- Added the parameter
messageId
to theUnpinChatMessageMethod
to allow unpinning of the specific pinned message. - Added the method
UnpinAllChatMessagesMethod
, which can be used to unpin all pinned messages in a chat.
- Added the parameter
-
- Added support for sending and receiving audio and document albums in the
SendMediaGroupMethod
.
- Added support for sending and receiving audio and document albums in the
-
- Added the field
livePeriod
to the classLocationType
, representing a maximum period for which the live location can be updated. - Added support for live location heading: added the field
heading
to the classesLocationType
,InlineQueryResultLocationType
,InputLocationMessageContentType
,SendLocationMethod
andEditMessageLiveLocationMethod
. - Added support for proximity alerts in live locations: added the field
proximityAlertRadius
to the classesLocationType
,InlineQueryResultLocationType
,InputLocationMessageContentType
,SendLocationMethod
andEditMessageLiveLocationMethod
. - Added the type
ProximityAlertTriggered
and the fieldproximityAlertTriggered
to the class Message. - Added possibility to specify the horizontal accuracy of a location. Added the field
horizontalAccuracy
to the classesLocationType
,InlineQueryResultLocationType
,InputLocationMessageContentType
,SendLocationMethod
andEditMessageLiveLocationMethod
.
- Added the field
-
- Added the field
senderChat
to the classMessageType
, containing the sender of a message which is a chat (group or channel). For backward compatibility in non-channel chats, the field from in such messages will contain the user 777000 for messages automatically forwarded to the discussion group and the user 1087968824 (@GroupAnonymousBot) for messages from anonymous group administrators. - Added the field
isAnonymous
to the classChatMemberType
, which can be used to distinguish anonymous chat administrators. - Added the parameter
isAnonymous
to thePromoteChatMemberMethod
, which allows to promote anonymous chat administrators. The bot itself should have theisAnonymous
right to do this. Despite the fact that bots can have theisAnonymous
right, they will never appear as anonymous in the chat. Bots can use the right only for passing to other administrators. - Added the custom title of an anonymous message sender to the class
MessageType
asauthorSignature
.
- Added the field
-
- Added the method
BotApi::copyMessage
andCopyMessageMethod
, which sends a copy of any message. - Maximum poll question length increased to 300.
- Added the ability to manually specify text entities (property
entities
orcaptionEntities
) instead of specifying theparseMode
in the classesInputMediaPhotoType
InputMediaVideoType
InputMediaAnimationType
InputMediaAudioType
InputMediaDocumentType
InlineQueryResultPhotoType
InlineQueryResultGifType
InlineQueryResultMpeg4GifType
InlineQueryResultVideoType
InlineQueryResultAudioType
InlineQueryResultVoiceType
InlineQueryResultDocumentType
InlineQueryResultCachedPhotoType
InlineQueryResultCachedGifType
InlineQueryResultCachedMpeg4GifType
InlineQueryResultCachedVideoType
InlineQueryResultCachedAudioType
InlineQueryResultCachedVoiceType
InlineQueryResultCachedDocumentType
InputTextMessageContentType
SendMessageMethod
SendPhotoMethod
SendVideoMethod
SendAnimationMethod
SendAudioMethod
SendDocumentMethod
SendVoiceMethod
SendPollMethod
EditMessageTextMethod
EditMessageCaptionMethod
- Added the fields
googlePlaceId
andgooglePlaceType
to the classesVenueType
,InlineQueryResultVenueType
,InputVenueMessageContentType
and to the methodsSendVenueMethod
to support Google Places as a venue API provider. - Added the field
allowSendingWithoutReply
to allow sending messages not a as reply if the replied-to message has already been deleted to following classes:sendMessageMethod
sendPhotoMethod
sendVideoMethod
SendAnimationMethod
SendAudioMethod
SendDocumentMethod
SendStickerMethod
SendVideoNoteMethod
SendVoiceMethod
SendLocationMethod
SendVenueMethod
SendContactMethod
SendPollMethod
SendDiceMethod
SendInvoiceMethod
SendGameMethod
SendMediaGroupMethod
- Added the method
-
- Supported the new football and slot machine animations for the random dice. Choose between different animations (dice, darts, basketball, football, slot machine) by specifying the emoji parameter in the method sendDice.
- fixed EditMessageMediaMethod normalization (#33).
- fixed phpdocumentor/reflection-docblock version #33.
- Added the new field
viaBot
to theMessageType
class. You can now know which bot was used to send a message. - Supported video thumbnails for inline GIF and MPEG4 animations (Updated comments in classes).
- Supported the new basketball animation for the random dice.
Choose between different animations (dice, darts, basketball)
by specifying the emoji parameter in the
SendDiceMethod
. Added to the class new factory methodSendDiceMethod::createWithBasketball
and new constantSendDiceMethod::EMOJI_BASKETBALL
.
- fixed SendInvoiceMethod normalization #33.
- Supported explanations for
Quizzes 2.0.
Add explanations by specifying the parameters
explanation and
explanationParseMode
in the methodSendPollMethod
. - Added the fields explanation and
explanationEntities
to thePollType
class. - Supported timed polls that automatically close at a certain date and time.
Set up by specifying the parameter
openPeriod
orcloseDate
in theSendPollMethod
. - Added the fields
openPeriod
andcloseDate
to thePollType
class. - Supported the new darts animation for the dice mini-game.
Choose between the default dice animation and darts animation
by specifying the parameter
emoji
in theSendDiceMethod
. Added two factory methodscreateWithDice
andcreateWithDarts
forSendDiceMethod
. - Added the field
emoji
to theDiceType
class.
- Added the method
sendDice
send(SendDiceMethod)
for sending a dice message, which will have a random value from 1 to 6. (Yes, we're aware of the “proper” singular of die. But it's awkward, and we decided to help it change One dice at a time!) - Added the field
dice
to theMessageType
object. - Added the method
getMyCommands
for getting the current list of the bot's commands. - Added the method
setMyCommands
set(SetMyCommandMethod)
for changing the list of the bot's commands through the Bot API instead of @BotFather. - Added the ability to create animated sticker sets by specifying the
parameter
tgsSticker
instead ofpngSticker
in the classCreateNewStickerSetMethod
. - Added the ability to add animated stickers to sets created by the bot by specifying
the parameter
tgsSticker
instead ofpngSticker
in the classAddStickerToSetMethod
. - Added the field
thumb
to theStickerSetType
object. - Added the ability to change thumbnails of sticker sets created by the bot
using the method
setStickerSetThumb
set(SetStickerSetThumbMethod)
.
AddStickerToSetMethod::create()
- please usecreateStatic
orcreateAnimated
methodsCreateNewStickerSetMethod::create()
- please usecreateStatic
orcreateAnimated
methods
- fixed Poll field in MessageType. bug #24.
- fixed Poll normalization bug #21.
- fixed stdObject property call inUserProfilePhotosNormalizer, updated test for it.
- Added support Bot API 4.6 (January 23, 2020)
- Supported Polls 2.0.
- Added the ability to send non-anonymous, multiple answer, and quiz-style polls: added the parameters
isAnonymous
,type
,allowsMultipleAnswers
,correctOptionId
,isClosed
options to theSendPollMethod
class. - Added the class
Poll\KeyboardButtonPollType
and the fieldrequestPoll
to theKeyboardButtonType
class. - Added
PollAnswerType
class - Added updates about changes of user answers in non-anonymous polls, represented by the
PollAnswerType
class and the fieldpollAnswer
in theUpdateType
class. - Added the fields
totalVoterCount
,isAnonymous
,type
,allowsMultipleAnswers
,correctOptionId
to the Poll object. - Bots can now send polls to private chats.
- Added more information about the bot in response to the
getMe
request: added the fieldscanJoinGroups
,canReadAllGroupMessages
andsupportsInlineQueries
to theUserType
class. - Added the optional field
language
to theMessageEntityType
class.
- Added support Bot API 4.5 (December 31, 2019)
- Added support for two new
MessageEntityType
types, underline and strikethrough. - Added support for nested
MessageEntityType
objects. Entities can now contain other entities. If two entities have common characters then one of them is fully contained inside the other. - Added support for nested entities and the new tags
<u>/<ins>
(for underlined text) and<s>/<strike>/<del>
(for strikethrough text) in parse mode HTML. - Added a new parse mode, MarkdownV2, which supports nested entities
and two new entities (for underlined text) and (for strikethrough text).
Added a new parse mode,
MarkdownV2
, which supports nested entities and two new entities__
(for underlined text) and~
(for strikethrough text). Parse mode Markdown remains unchanged for backward compatibility. - Added the field
fileUniqueId
to the objectsAnimationType
,AudioType
,DocumentType
,PassportFileType
,PhotoSizeType
,StickerType
,VideoType
,VideoNoteType
,VoiceType
, File and the fieldssmallFileUniqueId
andbigFileUniqueId
to the object ChatPhoto. The new fields contain a unique file identifier, which is supposed to be the same over time and for different bots, but can't be used to download or reuse the file. - Added the field customTitle to the
ChatMemberType
object. - Added the new method
SetChatAdministratorCustomTitleMethod
to manage the custom titles of administrators promoted by the bot. - Added the field
slowModeDelay
to the Chat object.
- Added support for two new
- Fixed broken field ChatType::username thanks for Jan Dittrich
- Fixed constant visibility in ChatType class
- Support symfony 3.4
- minor bug fixes
implemented support of July update of api
- ChatPermissionsType
- SetChatPermissionsMethod
- $chatPermissions field to ChatType
- $canSendPolls field to ChatMemberType
- $chatPermissions field to RestrictChatMemberMethod
- $isAnimated field to StickerSetType
- $isAnimated field to StickerType
- $allMembersAreAdministrators in ChatType
- some fields in RestrictChatMemberMethod
- $canAddWebPagePreviews
- $canSendOtherMessages
- $canSendMediaMessages
- $canSendMessages
- createOld() method in RestrictChatMemberMethod
Implemented support for Telegram Bot API v4.2
-
- added LoginUrlType
- Type bugs in Update methods.
- Param must be of the type string, integer given, called in ApiClient.
- updated api docs
- upgraded package version to 1.0
Implemented support for Telegram Bot API v4.2
-
- added method sendPollMethod(SendPollMethod): MessageType to BotApiComplete
- allowed type SendPollMethod in send method of BotApi
- added method stopPoll(StopPollMethod): Poll to BotApi
-
- added PollOptionType and PollType
- added property $poll of PollType type to UpdateType class
- added property $forwardSenderName of string type to MessageType class
bugfix
renamed property $signature to $forwardSignature
Added webhook fetcher.
Method fetch()
of WebhookFetcher handling Psr\Http\Message\RequestInterface or string and always returns instance of UpdateType or throwing BadRequestException.
$fetcher = new \TgBotApi\BotApiBase\WebhookFetcher(new \TgBotApi\BotApiBase\BotApiNormalizer());
$update = $fetcher->fetch($request);
Implemented all methods and types referenced by official Api