https://ваша-школа.exode.biz/ваш-slug) и встраивает мини-приложение — сайт или
веб-приложение, размещённые где угодно (Vercel, свой сервер и т.д.), в iframe.
Мини-приложение получает от платформы подписанные данные пользователя (Init Data),
может проверить их на своём бэкенде и построить любую логику — от лендинга до полноценного
сервиса со своей базой данных.
Создание страницы
- Откройте «Панель управления» → «Школа» → «Кастомизация» → «Приложения и страницы».
- Нажмите «Создать приложение» и заполните:
- Название — отображается в заголовке и меню (на языках школы);
- Адрес приложения (slug) — строчные латинские буквы, цифры и дефис, 2–64 символа.
Страница откроется по адресу
/<slug>. Системные адреса платформы заняты; - URL приложения (iframe) — https-адрес вашего мини-приложения (он откроется в iframe);
- Тип окна — как приложение показывается пользователю (см. ниже);
- Отображение — только для типа «Страница»: «Во всю ширину» или «Остров» (карточка с отступами);
- Доступна без входа — показывать ли страницу неавторизованным посетителям. Такой посетитель тоже
получает подписанную Init Data, но без данных пользователя (
user=null).
- После создания откройте меню страницы «⋯» → «Показать секрет» — этот секрет нужен вашему серверу для проверки Init Data. Храните его только на сервере. Там же — «Перевыпустить секрет»: старый секрет сразу перестаёт работать.
Создавать и редактировать страницы может менеджер с правом «Управление приложениями и страницами» (
SchoolManagePages).Сайт мини-приложения должен разрешать встраивание в iframe: не отдавайте заголовок
X-Frame-Options, а если
используете Content-Security-Policy: frame-ancestors, укажите в нём домен школы.Тип окна
Развёрнутым может быть не более одного окна одновременно: при открытии второго первое
сворачивается. Свёрнутые окна копятся в «открывашке» и разворачиваются одним кликом.
На телефоне любой тип окна открывается как обычная страница.
Параметры страницы
Параметры адреса страницы передаются в iframe query-строкой: ссылка/<slug>?courseId=5 откроет приложение
по адресу https://<ваше-приложение>/…?courseId=5#exodeInitData=…. Если в URL приложения уже есть свой query,
параметры дописываются к нему, а Init Data по-прежнему приходит в hash. Служебные параметры платформы (modal,
popup, appId) в iframe не передаются.
Так работают все типы окна. Если приложение уже открыто, а его открывают с другими параметрами (например, чтобы
продолжить работу с другим курсом), iframe перезагружается с новым адресом; с теми же параметрами окно просто
разворачивается.
Окно, восстановленное после перезагрузки платформы, открывается без параметров.
Главная страница школы
В списке страниц можно назначить главную: выбранная страница (системная или кастомная) будет открываться на/. Кастомную страницу, назначенную главной, нельзя удалить или
выключить — сначала назначьте другую главную.
Жизненный цикл iframe
Открытая страница-приложение не выгружается при навигации по платформе: iframe загружается один раз и живёт в памяти, повторное открытие мгновенно. То же и со свёрнутым окном — сворачивание не перезагружает приложение, состояние сохраняется. Из самого мини-приложения доступны две команды (MiniApp SDK):app.ui.minimize()— свернуть окно (для типа «Страница» ничего не делает: сворачивать нечего);app.ui.close()— закрыть приложение и выгрузить iframe.
Платформа держит в памяти ограниченное число приложений и выгружает самые давние из
неактивных. Не полагайтесь на то, что состояние переживёт закрытие — важные данные
сохраняйте на своём сервере.
Что дальше
- Введение в MiniApp SDK — мост, контекст, команды и события;
- Init Data — проверка подписанных данных на вашем сервере.
Обновлено: 2026-09-28 05:04 UTC