NewYour coding agent can read the release notes before it upgrades.Set up the MCP server →
Packagist · #4030 most downloaded on Packagist
PHP Telegram bot
Last release 2 years ago
no release in 18 months
Release timing varies
gaps range from 1 weeks to 7 months
Nearly every release is documented
notes for 56 of the last 60 stable releases
Nothing withdrawn
no release was ever pulled
11 years old
79 releases · first in 2015
FastFix to Critical Error. by @r3bers in #1467
📒 View file changes ∙ 📃 DB migration script
One column per quarter.
📒 View file changes ∙ 📃 DB migration script
thumbnail_url renaming.📒 View file changes ∙ 📃 DB migration script
📒 View file changes ∙ 📃 DB migration script
FooBarCommand is handled by /foo_bar). (@mlocati) (#1365)VoiceChatX entities, use VideoChatX entities instead.
VoiceChatX entities, use VideoChatX entities instead.all_members_are_administrators property from Message entity. Database column still exists, but may be removed in the future.Request::getChatMembersCount(), use Request::getChatMemberCount() instead.Request::kickChatMember(), use Request::banChatMember() instead.VoiceChatX entities, use VideoChatX entities instead.all_members_are_administrators property from Message entity. Database column still exists, but may be removed in the future.Request::getChatMembersCount(), use Request::getChatMemberCount() instead.Request::kickChatMember(), use Request::banChatMember() instead.📒 View file changes ∙ 📃 DB migration script
Notes 📒 View file changes Fixed PHP8+ mixed type hint removed
mixed type hint removedTelegram changed voice_chat_X to video_chat_X . VoiceChatX event classes are deprecated, use new VideoChatX event classes instead.
voice_chat_X to video_chat_X. VoiceChatX event classes are deprecated, use new VideoChatX event classes instead.Entity::jsonSerialize (@TiiFuchs)voice_chat_X to video_chat_X. VoiceChatX event classes are deprecated, use new VideoChatX event classes instead.Entity::jsonSerialize (@TiiFuchs)Fix Entity serialising for Keyboards ( @TiiFuchs )
[:ledger: View file changes][0.76.0]
[][0.75.0-bc-removed-chatactions] Removed deprecated ChatAction:: RECORD_AUDIO and UPLOAD_AUDIO. Use RECORD_VOICE and UPLOAD_VOICE instead. (@TiiFuchs…
message_auto_delete_time was added to the Chat Entity (@TiiFuchs) (#1265)ChatAction:: RECORD_AUDIO and UPLOAD_AUDIO. Use RECORD_VOICE and UPLOAD_VOICE instead. (@TiiFuchs) (#1267)[:ledger: View file changes][0.74.0]
[:ledger: View file changes][0.73.1]
[:ledger: View file changes][0.73.0] ∙ [:page_with_curl: DB migration script][0.73.0-sql-migration]
Telegram::runCommands returns array of ServerResponse objects of executed commands. (#1223)Telegram::runCommands. (#1223)[:ledger: View file changes][0.72.0] ∙ [:page_with_curl: DB migration script][0.72.0-sql-migration]
Telegram::handleGetUpdates method should be passed a $data array for parameters. (#1202)message.edit_date is now of type timestamp. (#1191)getUpdates method. (#1202)[:ledger: View file changes][0.71.0]
getUpdates method wrongly sends only 1 Update when a limit of 0 is passed. (#1169)Telegram::runCommands() now passes the correct message text to the commands. (#1181)[:ledger: View file changes][0.70.1]
Request::sendMessage() to pass options and return all response objects for split messages. (#1163)[:ledger: View file changes][0.70.0] ∙ [:page_with_curl: DB migration script][0.70.0-sql-migration]
/clean query. (@dva-re) (#1139)[:ledger: View file changes][0.64.0]
[:ledger: View file changes][0.63.1]
getFileNamespace() that introduced a breaking bug in #1114. (@jacklul) (#1115)runCommands() not working due to custom namespace feature. (@jacklul) (#1115, #1118)[:ledger: View file changes][0.63.0] ∙ [:page_with_curl: DB migration script][0.63.0-sql-migration]
setUpdateFilter($callback) used to filter processUpdate(Update $update) calls. If $callback returns false the update isn't processed and an empty falsey ServerResponse is returned. (@VRciF) (#1045)Entity::escapeMarkdownV2 for MarkdownV2. (#1094)TelegramLog::$remove_bot_token parameter to false. (@jacklul) (#1095)TelegramLog::$always_log_request_and_response parameter to force output of the request and response data to the debug log, also for successful requests. (#1089)via_bot field). (#1112)Entity::escapeMarkdown static, to not require an Entity object. (#1094)poll_answer also requires the user_id. (#1087)[:ledger: View file changes][0.62.0] ∙ [:page_with_curl: DB migration script][0.62.0-sql-migration]
language_code in DB::selectChats() for filtering the chats selection. (#1058)Request::setClient() now accepts more flexible ClientInterface. (#1068)instanceof checks for entities. (#1068)Request::$input variable. (#1068)/start command without any custom implementation.animation type for GIF Message (which returns both animation and document). (#1044)mb_strtolower from strtolower because of latin-extented characters. (#1051)Request::mediaInputHelper() to include thumb parameter. (#1059)[:ledger: View file changes][0.61.1]
inline_query_id in InlineQuery::answerInlineQuery. (#1021)Static boolean property SystemCommand::$execute_deprecated (must be assigned before handling the request) to try and execute any deprecated system com…
GenericmessageCommand to keep obsolete service message system commands working. (#999)SystemCommand::$execute_deprecated (must be assigned before handling the request) to try and execute any deprecated system command. (#999)message table, making the cleanup much faster on bigger databases. (Thanks to @damianperez) (#1015)/cleanup command now supports dry run which simply outputs all queries that would be run. (#1015)GenericmessageCommand. (#999)Request::answerInlineQuery in InlineQuery::answer. (#1001)/cleanup command. (#1015)[:ledger: View file changes][0.60.0]
ChatPermissions). (#990)GenericCommand again. (#993):exclamation: Deprecated logging method will be removed in the next version, update to PSR-3 now! (see #964 for more info)
[:ledger: View file changes][0.59.0]
InputMedia interface, as method annotations didn't work for propagation. (#978)[:ledger: View file changes][0.58.0] ∙ [:page_with_curl: DB migration script][0.58.0-sql-migration]
LoggerInterface. Learn more about how to use it here: #964LoginUrl) (#957)reply_markup field to Message entity. (#957)null. (#969)TelegramLog now adheres to [PSR-3] LoggerInterface and allows custom logger implementations. (#964)TelegramLog::initialize($logger, $update_logger); from now on. (#964)StartCommand is now a UserCommand (not SystemCommand any more). (#970)forward_date is now correctly saved to the DB. (#967)StickerSet::getStickers() method. (#969)[:ledger: View file changes][0.57.0] ∙ [:page_with_curl: DB migration script][0.57.0-sql-migration]
getIsMember() method to ChatMember entity. (#948)getForwardSenderName() method to Message entity. (#948)forward_sender_name (and forgotten forward_signature) DB fields. (#948)shipping_query and pre_checkout_query. (#885)/cleanup command. (#947)[:ledger: View file changes][0.56.0] ∙ [:page_with_curl: DB migration script][0.56.0-sql-migration]
InputMedia objects using Request::sendMediaGroup() and Request::editMediaMessage() methods.Request::encodeFile($path). (#934)/cleanup command. (#930)[:ledger: View file changes][0.55.1]
Request::editMessageMedia() and CallbackQuery::getChatInstance() methods. (#916)[:ledger: View file changes][0.55.0] ∙ [:page_with_curl: DB migration script][0.55.0-sql-migration]
video_note to Message types.[:ledger: View file changes][0.54.1]
sendToActiveChats now works correctly for any valid Request action. (#898)[:ledger: View file changes][0.54.0] ∙ [:page_with_curl: DB migration script][0.54.0-sql-migration]
ChatAction class to simplify chat action selection. (#859)InvalidBotTokenException exception. (#855)BASE_PATH -> TB_BASE_PATH, BASE_COMMANDS_PATH -> TB_BASE_COMMANDS_PATH. (#813)getStickerSet. (#838)[:ledger: View file changes][0.53.0] ∙ [:page_with_curl: DB migration script][0.53.0-sql-migration]
Telegram::getLastUpdateId() method, returns ID of the last update that was processed. (#767)Telegram::useGetUpdatesWithoutDatabase() method, enables Telegram::handleGetUpdates() to run without a database. (#767)Telegram::handleGetUpdates() can now work without a database connection (not enabled by default). (#767)/sendtochannel and /sendtoall commands, using new message helpers. (#810)/sendtochannel. (#803)[:ledger: View file changes][0.52.0]
switch_inline_query and switch_inline_query_current_chat (InlineKeyboardButton). (#736)[:ledger: View file changes][0.51.0] ∙ [:page_with_curl: DB migration script][0.51.0-sql-migration]
[:ledger: View file changes][0.50.0]
Message::getCommand() returns null if not a command, instead of false. (#654)[:ledger: View file changes][0.49.0]
Request class.DB::selectChats().[:ledger: View file changes][0.48.0] ∙ [:page_with_curl: DB migration script][0.48.0-sql-migration]
is_bot added to user DB table.ServerResponse->printError method to print by default and return by setting $return parameter.reply_to_message to DB.[:ledger: View file changes][0.47.1]
[:ledger: View file changes][0.47.0]
Telegram::enableAdmin() now handles duplicate additions properly.Request::getMe() failure doesn't break cron execution any more.$private_only to enforce usage in private chats only (set by default for Admin commands).[:ledger: View file changes][0.46.0]
/cleanup command for admins, that cleans out old entries from the DB.Request class, removing most custom method implementations.Deprecated Message::getNewChatMember() (Use Message::getNewChatMembers() instead to get an array of all newly added members).
Request::sendToActiveChats and DB::selectChats now accept parameters as an options array and allow selecting of channels.Message::getNewChatMember() (Use Message::getNewChatMembers() instead to get an array of all newly added members).Telegram::getBotName() and Entity::getBotName() (Use ::getBotUsername() instead).Telegram::unsetWebhook() (Use Telegram::deleteWebhook() instead).PARAM_STR PDO data type, to allow huge numbers.custom_input into account when using getUpdates method (mainly for testing).[:ledger: View file changes][0.44.1]
[:ledger: View file changes][0.44.0]
scrutinizer.yml config.last_error_date_string for debug command.$update->getUpdateContent().[:ledger: View file changes][0.43.0]
isRunCommands() method to check if called via runCommands().tests folder with phpcs.examples folder.Deprecated Telegram::getBotName() (Use Telegram::getBotUsername() instead).
getBotId() to directly access bot ID.bot_name to bot_username everywhere.Telegram::getBotName() (Use Telegram::getBotUsername() instead).[:ledger: View file changes][0.41.0]
$show_in_help attribute for commands, to set if it should be displayed in the /help command.https://telegram.me/PHP_Telegram_Bot_Support[:ledger: View file changes][0.40.1]
[:ledger: View file changes][0.40.0]
[:ledger: View file changes][0.39.0]
DB::getPdo())./debug command that displays various system information to help debugging.[:ledger: View file changes][0.38.1]
allowed_updates webhook parameter.[:ledger: View file changes][0.38.0]
switch_inline_query_current_chat option for inline keyboard.channel_post and edited_channel_post.deleteWebhook (for unsetWebhook).setWebhook to allow passing of new arguments.[:ledger: View file changes][0.37.1]
/command@botname by correctly passing them the bot name.Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Your coding agent can read these notes before it upgrades. Set up the MCP server →