Всем привет!
Сегодня Telegram выкатил Bot API версии 9.4. На первый взгляд обновление кажется небольшим, но оно кардинально меняет подход к визуалу ботов. Наконец-то мы получили инструменты для нормального UX/UI дизайна!
Давайте разберем, что нам приготовил Павел Дуров и команда в этот раз.
Если вам интересны подобные материалы, подписывайтесь на Telegram-канал «Код на салфетке». Там я делюсь гайдами для новичков, полезными инструментами и новостями.
Визуальная революция: цвета и иконки
Если вы следите за утечками с тестовых серверов, то слухи про цветные кнопки ходили уже недели 2-3. И вот, они официально доступны! Но это еще не всё — теперь кнопки можно украшать кастомными иконками.

Цветные кнопки
Мы ждали этого годами. Теперь Reply и Inline-кнопки поддерживают свойство style, которое может принимать одно из трёх значений (не считая дефолтного):
- 🔴
danger— красная кнопка (идеально для «Удалить», «Отмена», «Бан»). - 🟢
success— зелёная кнопка («Подтвердить», «Оплатить», «Принять»). - 🔵
primary— синяя кнопка (для основных целевых действий). - ⚪️ Стандартный — привычный прозрачно-серый цвет.
Это колоссально меняет UX. Теперь можно визуально управлять вниманием пользователя, расставлять акценты и делать интерфейсы интуитивно понятными. Надеюсь, в будущем нам дадут выбирать конкретные HEX-коды, но даже текущий набор — это уже прорыв.
Иконки на кнопках
В чейнджлоге промелькнула еще одна киллер-фича, которую легко упустить. В объекты кнопок добавили поле icon_custom_emoji_id.
Что это значит? Теперь на кнопку можно добавить кастомный эмодзи! Представьте: красная кнопка danger с красивой иконкой мусорной корзины. Или зеленая кнопка success с галочкой в вашем фирменном стиле. Это выводит дизайн ботов на уровень полноценных приложений.

Премиум эмодзи: прощай, Fragment?
Раньше, чтобы бот мог использовать кастомные (премиум) эмодзи в тексте, нужно было пройти целый квест: купить на аукционе Fragment юзернейм для бота за круглую сумму в TON и привязать его.
С версии 9.4 всё стало гораздо демократичнее. Теперь боту достаточно, чтобы у его создателя (владельца) была подписка Telegram Premium.
Понятно, что это сделано для повышения подписочной базы, но если смотреть со стороны разработчика ботов - это, наряду с цветными кнопками отличная возможность кастомизировать оформление бота. Я не говорю о всяких мемных смайликах, есть множество вполне себе стилистических, от букв до элементом оформления.
Работает в личных сообщениях, а также в группах и супергруппах.
Как пощупать прямо сейчас
Пока мы ждём обновления любимых библиотек (привет, aiogram!), протестировать новые фичи можно «по старинке», отправляя запросы напрямую к API.
Вот пример тела запроса, где мы используем сразу всё: и HTML-парсинг с тегом эмодзи, и цветные кнопки, и иконку внутри кнопки.
Тело запроса (JSON):
{
"chat_id": "2111923441",
"text": "Привет, Салфетка и Хабр! <tg-emoji emoji-id=\"5285430309720966085\">👍</tg-emoji>",
"parse_mode": "HTML",
"reply_markup": {
"inline_keyboard": [
[
{
"text": "Опасная кнопка!",
"callback_data": "btn1",
"style": "danger",
"icon_custom_emoji_id": "5310169226856644648"
},
{
"text": "Успешная кпнока =)",
"callback_data": "btn2",
"style": "success",
"icon_custom_emoji_id": "5310076249404621168"
}
],
[
{
"text": "Основная кнопка",
"callback_data": "btn3",
"style": "primary",
"icon_custom_emoji_id": "5285430309720966085"
},
{
"text": "Простокнопка -_-",
"callback_data": "btn4",
"icon_custom_emoji_id": "5285032475490273112"
}
]
]
}
}Адрес запроса:
https://api.telegram.org/bot<ТОКЕН_БОТА>/sendMessageПорядок в личке: Темы (Topics)
Telegram продолжает превращать личные чаты с ботами в подобие почтовых клиентов или CRM-систем. Теперь боты могут самостоятельно создавать темы (форумы) в приватных диалогах тет-а-тет с пользователем.
Это логичное развитие функционала из версии 9.3. Но теперь добавили важный рычаг управления: в BotFather появилась настройка, позволяющая запретить пользователям создавать или удалять темы вручную.
Зачем это нужно? Представьте бота техподдержки.
- Пользователь пишет
/start. - Бот сам создает темы: «Заказы», «Тикеты», «Общение».
- Пользователь не может устроить хаос, удаляя нужные ветки, а пишет строго в отведенные каналы. Это идеальная структура для сложных сервисных ботов.

Пример запроса на создание темы:
{
"chat_id": "2111923441",
"name": "Тема для Салфетки",
"icon_color": 13338331
}Адрес запроса:
https://api.telegram.org/bot<ТОКЕН_БОТА>/createForumTopicБот наводит марафет: Аватарки и Аудио
Динамическая аватарка
Боты получили методы setMyProfilePhoto и removeMyProfilePhoto. Теперь бот может менять свою аватарку программно, без участия владельца.
Идеи для использования:
- Смена статуса: Бот «занят» — красная рамка на аватарке, «свободен» — зеленая.
- Сезонность: Автоматически надевать шапку Деда Мороза зимой или тыкву на Хэллоуин.
- Геймификация: Аватарка меняется в зависимости от уровня прокачки общего «серверного» персонажа.
Музыкальный вкус пользователей
Боты научились подсматривать в профиль. Новый метод getUserProfileAudios позволяет получить список аудиозаписей, которые пользователь закрепил у себя в профиле («Моя музыка»).
Хотя не все активно используют эту фичу, для Dating-ботов (ботов для знакомств) или Музыкальных-сообществ это киллер-фича. Можно мэтчить людей по музыкальным вкусам или предлагать похожие треки, просто проанализировав профиль.
Важные мелочи (Admin & Video)
Не менее важные изменения для администраторов и контент-мейкеров:
- Смена власти в чате. Появились служебные сообщения
ChatOwnerLeft(владелец вышел) иChatOwnerChanged(владелец сменился). Для кого важно: Для ботов-модераторов и гарантов. Если у чата исчез владелец или он сменился на подозрительный аккаунт, бот может автоматически включить «Lockdown» (карантин) или снять с себя админку в целях безопасности. - Качество видео. Теперь при получении видео (
Video) бот видит полеqualities. Это список доступных разрешений, которые обработал сервер Telegram. Полезно для ботов, которые занимаются каталогизацией контента. - Подарки (Gifts). В объектах подарков теперь передается
rarity(редкость) и флагis_burned. Это ответ на недавнее обновление, позволяющее «сжигать» подарки ради получения Stars или NFT. Бот теперь точно знает, существует подарок или он уже был переработан.
Список изменений:
- Ботам разрешено использовать кастомные эмодзи в сообщениях, отправляемых напрямую в личные чаты, группы и супергруппы, если у владельца бота есть подписка Telegram Premium.
- Ботам разрешено создавать темы в личных чатах с помощью метода createForumTopic.
- Ботам разрешено запрещать пользователям создавать и удалять темы в личных чатах через новую настройку в мини-приложении @BotFather.
- Добавлено поле allows_users_to_create_topics в класс User.
- Добавлено поле icon_custom_emoji_id в классы KeyboardButton и InlineKeyboardButton, позволяющее ботам отображать кастомный эмодзи на кнопках, если они имеют возможность использовать кастомные эмодзи в сообщении.
- Добавлено поле style в классы KeyboardButton и InlineKeyboardButton, позволяющее ботам изменять цвет кнопок.
- Добавлен класс ChatOwnerLeft и поле chat_owner_left в класс Message.
- Добавлен класс ChatOwnerChanged и поле chat_owner_changed в класс Message.
- Добавлены методы setMyProfilePhoto и removeMyProfilePhoto, позволяющие ботам управлять своим фото профиля.
- Добавлен класс VideoQuality и поле qualities в класс Video, позволяющие ботам получать информацию о других доступных вариантах качества видео.
- Добавлено поле first_profile_audio в класс ChatFullInfo.
- Добавлен класс UserProfileAudios и метод getUserProfileAudios, позволяющие ботам получать список аудиозаписей, добавленных в профиль пользователя.
- Добавлено поле rarity в класс UniqueGiftModel.
- Добавлено поле is_burned в класс UniqueGift.
Заключение
Обновление 9.4 получилось камерным, но очень приятным визуально. Да, здесь нет фундаментальных сдвигов в архитектуре, как в прошлых версиях, но цветные кнопки и кастомные эмодзи — это то, чего нам не хватало годами для создания красивых интерфейсов.
Лично для меня это сигнал: Telegram начинает уделять внимание не только функциональности, но и эстетике ботов. Ждём, когда нам разрешат использовать произвольные HEX-цвета, а не только пресеты!
А пока ждём поддержки в библиотеках и обновляем своих ботов.
Если вам интересны подобные материалы, подписывайтесь на Telegram-канал «Код на салфетке». Там я делюсь гайдами для новичков, полезными инструментами и новостями.
Комментарии