LTI 1.3: доска в Moodle и других LMS
Доска подключается к курсу Moodle как «внешний инструмент» (LTI 1.3). Каждая активность в курсе — это свой урок на доске. Преподаватель курса входит в урок преподавателем, студенты — учениками. Отдельные ссылки и ключ API для этого не нужны. Минуты списываются с пакета платформы, как при подключении через API.
Сейчас поддерживается запуск урока (Resource Link Launch). Передача оценок и выбор урока при добавлении активности (Deep Linking) появятся позже.
1. Moodle: зарегистрировать инструмент
Администрирование → Плагины → Модули деятельности → Внешний инструмент → Управление инструментами → «Настроить инструмент вручную».
| Поле Moodle | Значение |
|---|---|
| Название инструмента | Рисмик |
| URL инструмента | https://api.rismik.ru/lti/launch |
| Версия LTI | LTI 1.3 |
| Тип открытого ключа | Keyset URL |
| URL набора открытых ключей | https://api.rismik.ru/lti/jwks |
| URL инициации входа | https://api.rismik.ru/lti/login |
| URI перенаправления | https://api.rismik.ru/lti/launch |
| Контейнер запуска по умолчанию | «Встроенный» или «Новое окно» |
| Конфиденциальность: передавать имя | Всегда (иначе участники будут «Участник») |
После сохранения нажмите у инструмента значок «Детали конфигурации» и пришлите нам:
- Platform ID (issuer), например
https://moodle.school.ru; - Client ID;
- Deployment ID;
- Public keyset URL (
…/mod/lti/certs.php); - Access token URL (
…/mod/lti/token.php); - Authentication request URL (
…/mod/lti/auth.php).
2. Мы: подключить LMS к платформе
Пришлите эти пять значений и адрес Moodle в поддержку — мы подключим LMS к вашей платформе, обычно в тот же день.
Адрес Moodle (например, https://moodle.school.ru) добавьте в кабинете в список сайтов платформы, иначе урок не покажется во «встроенном» контейнере.
3. Преподаватель: добавить урок в курс
Курс → Режим редактирования → Добавить элемент → Внешний инструмент → Рисмик. Название активности станет названием урока.
Как это работает
- Moodle вызывает
/lti/login. Мы отвечаем перенаправлением на страницу входа Moodle с подписаннымstateи одноразовымnonce. - Moodle отправляет
id_token(JWT, подписанный ключом Moodle) на/lti/launch. Мы проверяем:- подпись по набору ключей Moodle;
- issuer и client_id;
- deployment;
- что
nonceизstateиспользуется впервые; - версию LTI и тип сообщения.
- Урок ищется по активности (
resource_link.id). При первом запуске он создаётся. - Роли: «Преподаватель», «Ассистент», «Администратор», «Создатель курса» и «Наставник» входят как преподаватель, остальные — как ученики.
- Человек попадает на
/embed/<ссылка>, дальше всё как при подключении через API: доска, звонок, чат, минуты, вебхуки.
Cookie для входа не используются, поэтому запуск работает и во «встроенном» контейнере, когда браузер блокирует сторонние cookie.
Если не открывается
- «Эта LMS не подключена» — не совпадают issuer или client_id: сравните с «Деталями конфигурации».
- «Запуск из LMS не прошёл проверку» — чаще всего Deployment ID не добавлен у нас (
lti-add … --deployment-id) или часы на сервере Moodle сильно расходятся с точным временем. - Пустой фрейм — адрес Moodle не добавлен в
originsпартнёра. Временное решение — контейнер «Новое окно».