All notable changes to telegram-bot-api will be documented in this file.
-
- Added class
WebAppInfoType. ClassesInlineKeyboardButtonTypeandKeyboardButtonTypeextended with parameterwebApp;
- Added class
-
- Added class
MenuButtonType; - Added classes
GetChatMenuButtonMethodandSetChatMenuButtonMethodfor setting chat menu button and getting info about it; - Added class
SetChatMenuButtonNormalizerfor normalize data fromSetChatMenuButtonMethodbefore 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
ipAddressto the classSetWebhookMethod, allowing to bypass DNS resolving and use the specified fixed IP address to send webhook requests. - Added the field
ipAddressto 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
dropPendingUpdatesto the classSetWebhookMethodand toDeleteWebhookMethod.
- Added the parameter
-
- The
getChatrequest 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 thelinkedChatIdproperty. - The
getChatrequest now returns the location to which the supergroup is connected (seeChatType::$location). Added the classChatLocationTypeto represent the location. - Added the parameter
onlyIfBannedto the classUnbanChatMemberMethodto allow safe unban.
- The
-
- Added the property
fileNameto the classesAudioTypeandVideoType, containing the name of the original file. - Added the ability to disable server-side file content type detection using the property
disableContentTypeDetectionin theSendDocumentMethodand the class inputMediaDocument.
- Added the property
-
- Added the parameter
messageIdto theUnpinChatMessageMethodto 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
livePeriodto the classLocationType, representing a maximum period for which the live location can be updated. - Added support for live location heading: added the field
headingto the classesLocationType,InlineQueryResultLocationType,InputLocationMessageContentType,SendLocationMethodandEditMessageLiveLocationMethod. - Added support for proximity alerts in live locations: added the field
proximityAlertRadiusto the classesLocationType,InlineQueryResultLocationType,InputLocationMessageContentType,SendLocationMethodandEditMessageLiveLocationMethod. - Added the type
ProximityAlertTriggeredand the fieldproximityAlertTriggeredto the class Message. - Added possibility to specify the horizontal accuracy of a location. Added the field
horizontalAccuracyto the classesLocationType,InlineQueryResultLocationType,InputLocationMessageContentType,SendLocationMethodandEditMessageLiveLocationMethod.
- Added the field
-
- Added the field
senderChatto 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
isAnonymousto the classChatMemberType, which can be used to distinguish anonymous chat administrators. - Added the parameter
isAnonymousto thePromoteChatMemberMethod, which allows to promote anonymous chat administrators. The bot itself should have theisAnonymousright to do this. Despite the fact that bots can have theisAnonymousright, 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
MessageTypeasauthorSignature.
- Added the field
-
- Added the method
BotApi::copyMessageandCopyMessageMethod, which sends a copy of any message. - Maximum poll question length increased to 300.
- Added the ability to manually specify text entities (property
entitiesorcaptionEntities) instead of specifying theparseModein the classesInputMediaPhotoTypeInputMediaVideoTypeInputMediaAnimationTypeInputMediaAudioTypeInputMediaDocumentTypeInlineQueryResultPhotoTypeInlineQueryResultGifTypeInlineQueryResultMpeg4GifTypeInlineQueryResultVideoTypeInlineQueryResultAudioTypeInlineQueryResultVoiceTypeInlineQueryResultDocumentTypeInlineQueryResultCachedPhotoTypeInlineQueryResultCachedGifTypeInlineQueryResultCachedMpeg4GifTypeInlineQueryResultCachedVideoTypeInlineQueryResultCachedAudioTypeInlineQueryResultCachedVoiceTypeInlineQueryResultCachedDocumentTypeInputTextMessageContentTypeSendMessageMethodSendPhotoMethodSendVideoMethodSendAnimationMethodSendAudioMethodSendDocumentMethodSendVoiceMethodSendPollMethodEditMessageTextMethodEditMessageCaptionMethod
- Added the fields
googlePlaceIdandgooglePlaceTypeto the classesVenueType,InlineQueryResultVenueType,InputVenueMessageContentTypeand to the methodsSendVenueMethodto support Google Places as a venue API provider. - Added the field
allowSendingWithoutReplyto allow sending messages not a as reply if the replied-to message has already been deleted to following classes:sendMessageMethodsendPhotoMethodsendVideoMethodSendAnimationMethodSendAudioMethodSendDocumentMethodSendStickerMethodSendVideoNoteMethodSendVoiceMethodSendLocationMethodSendVenueMethodSendContactMethodSendPollMethodSendDiceMethodSendInvoiceMethodSendGameMethodSendMediaGroupMethod
- 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
viaBotto theMessageTypeclass. 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::createWithBasketballand new constantSendDiceMethod::EMOJI_BASKETBALL.
- fixed SendInvoiceMethod normalization #33.
- Supported explanations for
Quizzes 2.0.
Add explanations by specifying the parameters
explanation and
explanationParseModein the methodSendPollMethod. - Added the fields explanation and
explanationEntitiesto thePollTypeclass. - Supported timed polls that automatically close at a certain date and time.
Set up by specifying the parameter
openPeriodorcloseDatein theSendPollMethod. - Added the fields
openPeriodandcloseDateto thePollTypeclass. - Supported the new darts animation for the dice mini-game.
Choose between the default dice animation and darts animation
by specifying the parameter
emojiin theSendDiceMethod. Added two factory methodscreateWithDiceandcreateWithDartsforSendDiceMethod. - Added the field
emojito theDiceTypeclass.
- Added the method
sendDicesend(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
diceto theMessageTypeobject. - Added the method
getMyCommandsfor getting the current list of the bot's commands. - Added the method
setMyCommandsset(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
tgsStickerinstead ofpngStickerin the classCreateNewStickerSetMethod. - Added the ability to add animated stickers to sets created by the bot by specifying
the parameter
tgsStickerinstead ofpngStickerin the classAddStickerToSetMethod. - Added the field
thumbto theStickerSetTypeobject. - Added the ability to change thumbnails of sticker sets created by the bot
using the method
setStickerSetThumbset(SetStickerSetThumbMethod).
AddStickerToSetMethod::create()- please usecreateStaticorcreateAnimatedmethodsCreateNewStickerSetMethod::create()- please usecreateStaticorcreateAnimatedmethods
- 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,isClosedoptions to theSendPollMethodclass. - Added the class
Poll\KeyboardButtonPollTypeand the fieldrequestPollto theKeyboardButtonTypeclass. - Added
PollAnswerTypeclass - Added updates about changes of user answers in non-anonymous polls, represented by the
PollAnswerTypeclass and the fieldpollAnswerin theUpdateTypeclass. - Added the fields
totalVoterCount,isAnonymous,type,allowsMultipleAnswers,correctOptionIdto the Poll object. - Bots can now send polls to private chats.
- Added more information about the bot in response to the
getMerequest: added the fieldscanJoinGroups,canReadAllGroupMessagesandsupportsInlineQueriesto theUserTypeclass. - Added the optional field
languageto theMessageEntityTypeclass.
- Added support Bot API 4.5 (December 31, 2019)
- Added support for two new
MessageEntityTypetypes, underline and strikethrough. - Added support for nested
MessageEntityTypeobjects. 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
fileUniqueIdto the objectsAnimationType,AudioType,DocumentType,PassportFileType,PhotoSizeType,StickerType,VideoType,VideoNoteType,VoiceType, File and the fieldssmallFileUniqueIdandbigFileUniqueIdto 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
ChatMemberTypeobject. - Added the new method
SetChatAdministratorCustomTitleMethodto manage the custom titles of administrators promoted by the bot. - Added the field
slowModeDelayto 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
bugfixrenamed 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