Сравните надстройки для Classroom с инструментами LTI.

LTI (Learning Tools Interoperability) — это открытая платформа для создания интеграций со сторонними сервисами в системах управления обучением. Хотя дополнения Classroom и инструменты LTI поддерживают схожие сценарии взаимодействия пользователей, эти две платформы не являются напрямую совместимыми. В этом руководстве сравниваются два типа интеграции и выделяются ключевые различия. Также предлагаются способы достижения схожих сценариев взаимодействия пользователей при адаптации инструмента LTI для работы в качестве дополнения Classroom.

Взаимодействие между платформой и инструментами

Ключевое различие между инструментами LTI и дополнениями для Classroom заключается в способе обмена информацией. Инструменты LTI обычно используют HTTP POST для передачи данных на платформу LTI, в то время как дополнения для Classroom создают и получают ресурсы с помощью REST API Google Classroom .

В таблице ниже приведено краткое описание того, как реализовать ключевые функции инструментов LTI в Google Classroom.

Особенность ЛТИ Классная комната
Создать задания Услуги по выдаче заданий и оценок Создание CourseWork и дополнительных ресурсов AddOnAttachment )
Оценки после экзаменов Услуги по выдаче заданий и оценок Работы студентов, выполненные с помощью Patch CourseWork и AddOnAttachment
Маршруты запуска Глубокие ссылки Укажите URI в ресурсах AddOnAttachment
Ознакомьтесь со списками курсов. Услуги по предоставлению имен и ролей Получение профилей Student и Teacher в рамках курса.

Адаптируйте инструмент LTI для дополнения Classroom.

Многие интерактивные взаимодействия LTI имеют аналоги в рамках надстроек для Classroom. В следующих разделах обсуждаются некоторые ключевые концепции и рекомендуемые варианты действий.

Настройте ваше приложение

Для всех программных взаимодействий с Google Classroom требуется проект Google Cloud. В этом же проекте Cloud вы настроите отображение своего приложения, которое определяет, как ваше дополнение для Classroom будет выглядеть для конечных пользователей. Вы укажете значки, зададите название и описание приложения, а также настроите разрешения OAuth, необходимые для вашего продукта.

Установка дополнительного приложения из списка часто является единственным шагом настройки, который должны выполнить конечные пользователи. Это аналогично включению и развертыванию инструмента LTI. Конечным пользователям не нужно будет выполнять никаких действий по регистрации или управлять какими-либо параметрами конфигурации, хотя администратору может потребоваться разрешить приложению доступ в Marketplace и настроить права доступа к данным третьих лиц .

Рекомендация : Следуйте нашему руководству по созданию и настройке проекта Google Cloud для дополнения Classroom . Самое важное — укажите URL-адрес для запуска дополнения в качестве URI обнаружения вложений в SDK Marketplace. Этот URL-адрес может совпадать с маршрутом запуска существующего инструмента LTI, если он перенаправляет пользователя на соответствующий процесс аутентификации .

Процесс аутентификации

LTI использует двухэтапный процесс , в котором клиентское приложение и сервер аутентификации обмениваются подписанным JWT. Пользователям не нужно предоставлять инструменту доступ к своим данным, поскольку согласие подразумевается при настройке инструмента администратором.

В отличие от этого, протокол OAuth от Google представляет собой трехэтапный процесс , включающий конечного пользователя, внешнее клиентское приложение и сервер аутентификации. Клиент получает токены с явным согласием пользователя, которые предоставляют доступ к ресурсам Google Classroom.

Дополнительное приложение может добиться аналогичного поведения с двухсторонним подписанным JWT-токе, используя служебные учетные записи . Это учетные записи, принадлежащие приложению, а не отдельному пользователю, и они могут выполнять действия без согласия пользователя. Использование служебных учетных записей требует настройки и управления администратором. Использование служебных учетных записей с делегированием полномочий в масштабе домена крайне не рекомендуется, поскольку это потенциальный путь злоупотребления. Подробнее см. наше руководство по делегированию полномочий в масштабе домена с интеграцией Google Classroom .

Рекомендация : Когда URL-адрес, связанный с вашим инструментом или дополнением, получает входящий запрос, проверьте его на наличие параметров запроса дополнения Classroom. Если они присутствуют, используйте SDK Google Identity для получения учетных данных пользователя. Сохраните эти учетные данные в сессии пользователя и используйте их для последующих запросов к API Classroom. Если параметры запроса отсутствуют, используйте HTTP-запросы для взаимодействия с конечными точками LTI платформы.

Создание дополнительного контента в Google Classroom

Дополнения для учебных классов поддерживают один тип контента: URL-ссылки на страницы, размещенные на внешних ресурсах. Эти ссылки содержатся в ресурсах AddOnAttachment , которые определяют веб-маршруты, открывающиеся при взаимодействии пользователя с вашим дополнением. Каждая ссылка открывается в определенных сценариях; подробную информацию см. в наших руководствах по iframe . Эти ссылки аналогичны ссылкам на ресурсы LTI .

Дополнительные модули для учебных классов не поддерживают другие типы контента, такие как файлы, изображения или фрагменты HTML.

Рекомендация : Когда пользователь выбирает контент в вашем продукте, получите его учетные данные OAuth и отправьте запрос AddOnAttachments.create . Запрос должен содержать объект AddOnAttachment с URL-адресами для представления студента, представления преподавателя и (опционально) представления оценок. Обратите внимание, что существуют отдельные конечные точки API для создания вложений к объявлениям , заданиям или учебным материалам . Только вложения, созданные для заданий, могут иметь представление оценок, поскольку это единственный тип элементов ленты Classroom, который принимает отправленные студентами материалы.

Сравнение возможностей фреймворков

Интеграционные стажировки

Дополнения для Classroom создают вложения к объявлениям, заданиям и учебным материалам. Именно эти элементы отображаются на вкладке «Лента» курса в пользовательском интерфейсе Classroom.

Процесс создания дополнительных модулей начинается с выбора модуля в поле выбора в процессе создания задания. Подробное описание каждого представления, отображаемого пользователям, см. в руководствах по iframe.

В качестве альтернативы разработчики могут программно создавать задания с дополнительными вложениями. Подробности см. в нашем руководстве по созданию вложений вне Google Classroom .

Запустить контекстную информацию

Classroom добавляет несколько параметров запроса к каждому URL-адресу при открытии маршрута дополнения. Они всегда включают тип элемента потока и идентификаторы курса и элемента потока. В зависимости от представления iframe может присутствовать и другая информация, например, идентификаторы вложения или отправки, токен для авторизации создания вложения или URL-адрес для перехода от ссылки к вложению в дополнение.

По умолчанию Classroom не передает никакой информации о пользователе или учреждении. Информацию о пользователе, включая идентификатор пользователя, можно получить из ресурса UserProfile в API Classroom. Если пользователь является администратором домена, информацию об учреждении можно получить из SDK администрирования рабочей области .

Аутентификация и авторизация

Для аутентификации пользователей в Classroom необходимо использовать вход через Google . После входа в систему пользователи предоставляют вашему приложению разрешения через области действия OAuth 2.0 . Ваше приложение может использовать любую комбинацию доступных областей действия OAuth .

Обнаружение и настройка приложений

Пользователи находят и «устанавливают» дополнения для Classroom через Google Workspace Marketplace . Установка в один клик делает приложение-дополнение доступным для отдельного преподавателя. При желании администратор может установить приложение-дополнение для всех преподавателей в организационном подразделении или домене. Вложения, созданные с помощью этого приложения, становятся доступны всем студентам курса. Конечным пользователям не нужно управлять токенами, ключами или идентификаторами для отдельных дополнений Classroom.

UX и логику взаимодействия с продуктом

Во многих случаях существующий пользовательский интерфейс инструмента LTI хорошо подходит в качестве дополнения для Classroom. Подобно инструменту LTI, дополнение для Classroom позволяет создавать и управлять ссылками на ваш контент на нашей платформе. Вложения в дополнение для Classroom аналогичны ссылкам LTI Deep Linking . Если ваш инструмент LTI создает URL-адреса, указывающие на размещенный вами контент, он должен хорошо работать в качестве дополнения для Classroom.

Оцените работу ученика

Дополнительные материалы, прикрепленные к Classroom, можно просматривать и оценивать в окне оценщика Classroom. При прикреплении контента, требующего от студента отправки, вы указываете student_work_review_uri по которому преподаватель может просмотреть и оценить работу конкретного студента. Это отличается от LTI, где инструмент определяет только target_link_uri , общий для преподавателей и студентов. Реализация дополнительных материалов Classroom наиболее похожа на разрабатываемую службу проверки и проверки работ LTI .