Всем привет!
Сегодня Telegram выпустил небольшое, но как всегда интересное обновление своего Bot API под номером 9.5. Оно оказалось компактным, но в нём есть один интересный момент с надеждой на будущие обновления...
Кстати, одно из нововведений было известно ещё два дня назад в моём ТГ. Подписывайтесь на канал «Код на салфетке», если интересны подобные новости и разборы!
Форматирование Даты и Времени
Теперь боты могут отправлять дату и время в форматированном виде. Кажется, что это совсем мелочь — ну что такого? Просто вывод времени в удобном формате. Однако это первое за долгое время нововведение именно в форматировании текста!
Помимо чисто прикладной пользы (например, удобно показывать пользователю дату бронирования комнаты в отеле в его часовом поясе), это дает надежду на то, что Telegram наконец-то начнёт вводить и другие новые фичи для разметки. По крайней мере, мне бы этого очень хотелось.
Как это работает под капотом?
Формат вывода задается специальной строкой: r или комбинацией w, d/D и t/T. Если оставить формат пустым, текст отобразится как есть, но пользователь всё равно сможет получить время в локальном формате.
За что отвечают параметры:
r: Относительное время (например, "через 2 часа"). Важно: этот параметр нельзя комбинировать с другими.w: День недели на локальном языке пользователя.d/D: Короткая дата (например, «17.03.22») / Длинная дата (например, «March 17, 2022»).t/T: Короткое время (например, «22:45») / Длинное время с секундами (например, «22:45:00»).
Примеры использования в коде:
Если используешь HTML (parse_mode="HTML"), то появился новый тег <tg-time>:
<tg-time unix="1647531900" format="wDT">Текст-заглушка</tg-time>
<tg-time unix="1647531900" format="r">Текст-заглушка</tg-time>Если предпочитаешь MarkdownV2 (parse_mode="MarkdownV2"), то синтаксис похож на вставку кастомного эмодзи или ссылки:

Текст-заглушка будет показан, если клиент пользователя вдруг не поддерживает новый формат, поэтому туда лучше писать время текстом, например: "22:45 завтра".
Пользовательские теги участников
Второе интересное нововведение — это теги участников групп. Если раньше кастомные подписи к имени можно было выдавать только администраторам (не выдавая никаких прав, а только "должность"), то теперь небольшие ярлыки можно вешать на кого угодно. И это открывает огромный простор для фантазии!
Только представьте: социальная кастомизация чатов выйдет на новый уровень. Боты смогут автоматически выдавать теги вроде «Новичок», «Ветеран» или «VIP» за активность, помечать нарушителей («1/3 предупреждений») или распределять людей по ролям в рабочих чатах («Дизайнер», «Разработчик»). И всё это без добавления участника в список администраторов.
Как это выглядит со стороны API:
Для работы с тегами завезли целую пачку обновлений в правах и объектах, но главное, что нужно знать:
- Появился новый метод
setChatMemberTag. С его помощью бот может повесить тег на обычного участника. - У тегов есть строгие лимиты: от 0 до 16 символов и никаких эмодзи (только текст).
- Чтобы бот мог раздавать теги, ему (или администратору) нужно выдать новое право —
can_manage_tags. - Когда пользователь с тегом пишет в чат, бот видит этот ярлык прямо в объекте
Message(в новом полеsender_tag). Это значит, что можно легко фильтровать сообщения или настраивать логику бота в зависимости от «статуса» юзера.
В общем, это реально крутая штука для чатов! Кажется, скоро каждый второй групповой бот будет обвешивать нас текстовыми статусами в зависимости от уровня фантазии владельца.
Остальное: Стриминг для всех и кастомные эмодзи в Mini Apps
В обновление попали ещё два классных нововведения, которые точно заслуживают внимания:
1. Стриминг сообщений теперь без ограничений
Помните, в Bot API 9.3 добавили метод sendMessageDraft? Это тот самый эффект плавной генерации текста по буквам, как мы привыкли видеть у ChatGPT и других нейросетей. Тогда это работало только для ботов в чатах с включёнными темами.
Теперь настоящий релиз снимает все ограничения! Метод sendMessageDraft разрешили использовать абсолютно всем ботам и в любых чатах. Если вы пишете ИИ-бота или просто хотите сделать вывод больших текстов более интерактивным — это абсолютный мастхэв.
2. Кастомные эмодзи в кнопках Mini Apps
Мелочь, а для UI/UX очень приятно. В классе BottomButton (нижние кнопки в веб-приложениях Telegram) появилось новое поле — iconCustomEmojiId. Теперь можно вставлять туда не просто стандартные смайлы или системные иконки, а любые кастомные эмодзи.
Обновление вышло небольшим, но со своими «изюминками». Расскажите в комментариях, как вам обновление, а я пошёл продумывать систему тегов в нашем чате.
Если вам интересны подобные материалы, подписывайтесь на Telegram-канал «Код на салфетке». Там я делюсь гайдами для новичков, полезными инструментами и новостями.
Комментарии