Telegram разрешил создавать интерфейсы для ботов Статьи редакции
И загружать собственные звуки уведомлений.
16 апреля мессенджер рассказал о новых функциях и обновлениях.
Интерфейсы для ботов
В Telegram можно создать интерфейс для бота на языке JavaScript. Через такой интерфейс можно, например, покупать товары или услуги. Проверить, как он будет работать, можно в тестовом боте с заказом еды.
Звуки уведомлений
В мессенджере можно использовать собственные звуки оповещения — аудиофайлы и голосовые сообщения размером меньше 300 Кб и продолжительностью менее 5 секунд. Также можно задать персонализированные уведомления для личных чатов, каналов и групп.
Чтобы выбрать звук уведомления, нужно открыть профиль нужного чата, выбрать «Звук» и «Настроить».
Автоудаление сообщений
Пользователи могут включить автоматическое удаление сообщений в любом чате. Для этого потребуется меньше действий, а настройки таймера стали более гибкими. Его можно установить, например, на несколько дней, недель или месяцев.
Другие обновления Telegram: улучшенный перевод сообщений на iOS, обновлённый режим «картинка в картинке» на Android, упрощённая работа с ботами-администраторами и выключение уведомлений на любой срок.
Запилил TypeScript тайпинги для WebApps API. Можно писать с автокомплитом даже на JS. Думаю разработчикам будет полезно https://github.com/prKassad/telegram-webapps-types
У обработчиков событий не описаны типы — стоит просто Function.
Например, при событии viewportChanged там целый объект приходит с полем.
Дело в том, что типизировать коллбек у EventEmitter под конкретное событие в текучем виде не представляется возможным. Конечно, коллбек можно типизировать объединением типов коллбеков от всех событий, но это породит еще большую неопределенность.
Это известная проблема типизации классического EventEmitter. Однажды я даже создал пакет https://github.com/prKassad/typesafe-typed-event, который решает эту проблему. Однако команда Телеграма сделала классический EventEmitter, который не получится типизировать под конкретное событие.
Но если есть конкретные предложения/улучшения всегда рад PR!