OnyxGram Developers
Web Apps
Мини-приложения, которые запускаются внутри OnyxGram из профиля бота, кнопки меню или списка приложений.
01
Обзор
Web App должен быть доступен по публичному HTTPS-адресу и корректно работать во встроенном WebView.
Настройка
URL Main Mini App и кнопки меню задаются в приложении BotFather.
02
Запуск Main Mini App
После включения Main Mini App пользователи могут открыть приложение из профиля бота и других системных точек входа OnyxGram.
- Откройте BotFather и выберите нужного бота.
- Перейдите в настройки Mini App и укажите абсолютный HTTPS URL.
- Включите Main Mini App и сохраните изменения.
- Откройте профиль бота и проверьте запуск приложения.
Stars
Боты с активным Main Mini App могут отображаться в списке примеров сервисов, где пользователи тратят звёзды.
03
Инициализация
Сообщите клиенту, что интерфейс готов, и используйте фактическую высоту WebView.
const webApp = window.Telegram?.WebApp;
webApp?.ready();
webApp?.expand();
document.documentElement.style.setProperty(
'--app-height',
`${webApp?.viewportStableHeight || window.innerHeight}px`
);
04
Безопасные отступы
Не используйте фиксированный нижний отступ. Учитывайте safe area клиента и системные панели устройства.
.app {
min-height: var(--app-height, 100dvh);
padding-top: var(--tg-safe-area-inset-top, env(safe-area-inset-top));
padding-right: var(--tg-safe-area-inset-right, env(safe-area-inset-right));
padding-bottom: var(--tg-safe-area-inset-bottom, env(safe-area-inset-bottom));
padding-left: var(--tg-safe-area-inset-left, env(safe-area-inset-left));
}
05
Проверка данных
Передавайте Telegram.WebApp.initData на backend и проверяйте подпись до выполнения действий от имени пользователя.
- Не доверяйте значениям из
initDataUnsafeбез серверной проверки. - Проверяйте срок действия данных авторизации.
- Не храните токен бота в JavaScript-коде мини-приложения.