24 августа 2026 года состоялся релиз Telegram Bot API 10.3, который привносит значительные изменения в работу с Rich Messages и эфемерным контентом. Ключевые обновления включают новые блоки для интеграции кнопок и файлов прямо в текст, а также рефакторинг параметров отправки исчезающих сообщений. Релиз требует внимания разработчиков из-за обратно несовместимых изменений в методах отправки медиа и текста.

Развитие Rich Messages: интерактивные элементы и новые блоки
Telegram продолжает развивать формат структурированных сообщений (Rich Messages), добавляя в версию 10.3 элементы для построения полноценных интерфейсов напрямую в теле сообщения.
- Кнопки в тексте: Введены классы
RichMessageButtonиRichTextButton. Для группировки кнопок в блочную структуру добавлены классыRichBlockButtonsиInputRichBlockButtons. - Поддержка файлов и документов: Появились классы
RichBlockDocumentиInputRichBlockDocument, позволяющие встраивать документы в Rich-сообщения. Также реализована поддержка ссылок форматаtg://document?id=для прямых загрузок файлов. - Сворачиваемые цитаты: Разработчики добавили классы
RichBlockExpandableBlockQuotationиInputRichBlockExpandableBlockQuotation, которые позволяют создавать блоки цитирования с возможностью скрытия и раскрытия текста пользователем. - Компактные таблицы: В классы
RichBlockTableиInputRichBlockTableдобавлено булево полеis_compactдля более плотного отображения данных.
Рефакторинг работы с эфемерными сообщениями
Логика маршрутизации эфемерных сообщений (видимых только конкретному пользователю или имеющих таймер самоуничтожения) подверглась существенной переработке. Это изменение напрямую затрагивает кодовую базу существующих ботов.
- Унификация параметров отправки: Введен новый объект
EphemeralMessageParameters. Он полностью заменяет разрозненные параметрыreceiver_user_idиcallback_query_idво всех базовых методах отправки контента, включаяsendMessage,sendPhoto,sendVideoи другие. Этот же параметр добавлен в методsendRichMessage. - Подмена исходного контента: Новое поле
replace_callback_query_messageв объектеEphemeralMessageParametersпозволяет боту отобразить эфемерное сообщение прямо на месте исходного (например, при нажатии на inline-кнопку). - Расширение возможностей редактирования: Метод
editEphemeralMessageMediaполучил поддержку загрузки новых файлов. ВeditEphemeralMessageCaptionинтегрирован параметрshow_caption_above_media, а методeditEphemeralMessageTextтеперь умеет работать со структурированным текстом через параметрrich_message.
Управление группами, клавиатуры и черновики
Помимо структурных изменений, версия 10.3 включает несколько точечных улучшений для управления чатами и пользовательским вводом:
- Приветственные сообщения: В права администраторов (
ChatAdministratorRightsиChatMemberAdministrator), а также в методpromoteChatMember, добавлен флагcan_send_welcome_messages. - Визуальная деактивация кнопок: Класс
InlineKeyboardButtonполучил свойствоdisabled, а также введен отдельный классDisabledButton. Это позволяет отображать неактивные кнопки (например, при достижении лимитов или окончании страниц) без их физического удаления из разметки. - Принудительные ответы: В разметки клавиатур
InlineKeyboardMarkupиReplyKeyboardMarkupдобавлено полеforce_reply. - Управление черновиками: Методы
sendMessageDraftиsendRichMessageDraftрасширены параметрамиcan_stopиkeep_on_stop.
Итоги и рекомендации по обновлению
Релиз Bot API 10.3 требует обязательного аудита кода перед обновлением используемых библиотек и SDK. Замена параметров receiver_user_id и callback_query_id на объект ephemeral_message_parameters является обратно несовместимым изменением, из-за которого старые методы отправки будут возвращать ошибки при работе с эфемерным контентом.
В то же время, нововведения значительно упрощают проектирование интерфейсов. Использование флага disabled для inline-кнопок избавляет разработчиков от необходимости перестраивать клавиатуры обходными путями, а интеграция кнопок и документов в структуру Rich Messages делает ботов более интерактивными без усложнения клиентского рендеринга. Обновление следует разворачивать поэтапно, предварительно убедившись, что выбранный API-клиент полностью поддерживает спецификацию 10.3.