🆕 Новое обновление Bot API.
Вчера Telegram выпустил Bot API 10.3. Обновление в основном развивает то, что появилось летом: rich-сообщения и инструменты для ИИ-ботов. Ниже - что добавили и как это применить в своем боте.
📄 Что такое Rich Messages?
Это новый интересный формат сообщений бота, который появился в Bot API 10.1 в июне. Обычное сообщение - это текст с простой разметкой: жирный, курсив, ссылки. Rich-сообщение - это уже полноценный структурированный документ прямо в чате: заголовки, настоящие таблицы, списки и чек-листы, фото и видео между абзацами, сворачиваемые блоки, карты. Все это рендерится нативно во всех клиентах Telegram. Отправляется такое сообщение методом sendRichMessage, текст пишется в Rich Markdown или Rich HTML, а для ИИ-ботов есть sendRichMessageDraft - ответ появляется по частям, но сразу с форматированием, а не превращается в кашу из символов. Советуем посмотреть это вживую в @RichTextDemoBot.
🔘 Кнопки прямо внутри сообщения.
Раньше кнопки были только в клавиатуре под сообщением. Теперь в rich-сообщении их можно разместить в любом месте: отдельным блоком между абзацами или прямо в строке текста, с несколькими стилями и выравниванием.
Собираете сообщение через блоки InputRichMessage и ставите блок с кнопками туда, где он нужен по смыслу - например, кнопку “Купить” сразу под таблицей с тарифами, а не в самом низу длинного сообщения.
Для обычных inline-клавиатур тоже есть новое: у кнопки появилось поле disabled - ее можно показать неактивной, вместо того чтобы прятать. А у InlineKeyboardMarkup и ReplyKeyboardMarkup появилось force_reply - можно показать кнопки и одновременно открыть пользователю поле ответа.
⏹ Кнопка Stop для ИИ-ботов.
Если ваш бот стримит ответ модели через sendMessageDraft или sendRichMessageDraft, добавьте параметр can_stop - пользователь увидит нативную кнопку остановки. При нажатии боту придет апдейт, по нему останавливаете генерацию и не тратите токены впустую. Параметр keep_on_stop оставляет на экране уже сгенерированную часть ответа, а не стирает ее.
📝 Остались вопросы? Обращайтесь - @manager_BotValley
Post #182
699