Skip to main content
Из вашего нативного приложения можно открыть приложение ExodeBiz сразу на нужном экране — выбрать школу, при необходимости авторизовать пользователя по токену и открыть урок. Достаточно открыть ссылку-схему штатным способом (Intent.ACTION_VIEW на Android / UIApplication.open на iOS).

Формат ссылки

Deep link использует URL-схему приложения exodebizapp://. Все параметры кладутся в один параметр data — это URL-кодированная query-строка:
Параметры внутри data:
string
required
Всегда open-page.
string
required
Домен (FQDN) школы, например my-school.com или my-school.exode.biz.
string
required
Идентификатор экрана. Для урока — см. раздел «Открыть урок».
string (JSON)
required
JSON с параметрами экрана, например {"page":"1","courseId":"42","lessonId":"123"}.
string (base64url)
Список дополнительных действий (например авторизация). См. раздел «extra».
Значения параметров содержат спецсимволы и требуют двойного кодирования: сначала соберите query-строку action=...&domain=... (значения URL-кодированы), затем закодируйте её целиком и положите в data. Не собирайте вручную — используйте стандартные сборщики (URLSearchParams, Uri.Builder, URLComponents), см. примеры кода ниже.

Открыть урок

  • page — страница в списке курсов; для перехода на урок укажите "1".
  • courseId, lessonId — идентификаторы курса и урока в вашей школе.
Готовая ссылка — подставьте DOMAIN, COURSE_ID, LESSON_ID:

Другие экраны

Меняя pageId и params, можно открыть любой экран:
Нужен другой экран — напишите в поддержку, подскажем корректные pageId и параметры.

extra — вложенные действия (авторизация)

Параметр extra позволяет прокинуть в приложение список действий, которые выполнятся вместе с открытием — например авторизацию по токену. extra — это base64url(JSON.stringify({ actions: [...] })). Структура JSON:
Поддерживаемые действия:
Порядок выполнения гарантирован: сначала — действия из extra (по порядку в массиве), затем — навигация из open-page. То есть ссылка open-page + extra:[{login-by-token}] даёт ровно: открыть приложение → авторизоваться → открыть страницу.
1

Получите токен сессии пользователя

Токен создаётся методом Создание токена сессии (POST /saas/v2/user/session/auth-token). Возьмите значение поля token из ответа.
2

Соберите extra

extra = base64url(JSON.stringify({ actions: [{ type: 'login-by-token', token }] })).Пример (с placeholder-токеном USER_TOKEN):
3

Добавьте extra в data

Добавьте extra к query-строке внутри data — приложение переключит школу, авторизует пользователя и откроет урок.
Ссылка с login-by-token даёт вход под конкретным пользователем — любой, у кого есть ссылка, залогинится под ним. Такие ссылки должны быть короткоживущими / персональными и не публиковаться.
Используйте именно base64url (-/_ вместо +//, без =-padding) — обычный base64 может некорректно пройти через query-строку.

Сборка и открытие ссылки в коде

Поведение

  • Deep link срабатывает только если приложение установлено. Если нет — ОС ничего не откроет: обработайте это сами и покажите fallback (магазин приложений или сайт школы). На Android ловите ActivityNotFoundException, на iOS — success == false в completion-handler open.
  • Если школа ещё не была добавлена в приложении — она добавится автоматически и станет активной.
  • Навигация подчиняется обычной авторизации: без extra-логина неавторизованный пользователь увидит экран входа.

Диагностика


Обновлено: 2026-07-04 09:33 UTC