Получение пользовательского параметра для запуска D2L LTI

Мы пытаемся включить идентификатор пользователя как часть полезной нагрузки запуска LTI в D2L.

Это то, что мы получаем как user_id поле:

{
    "user_id": "0d45101e-230a-4c06-9008-0024a52038fc_1914"
}

Нам нужна только последняя часть поля идентификатора БД. В попытке включить его в качестве отдельного пользовательского параметра мы обнаружили, что, похоже, не очень хороший способ сделать это, кроме опций флажков для разрешенных параметров. Есть ли способ достичь этого?

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

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

Любая помощь / предложения приветствуются. Спасибо!

2 ответа

Ваши предположения верны, это не может быть сделано. системный идентификатор пользователя не отправляется с запросом LTI, кроме как в поле user_id, как вы уже знаете. Пользовательские параметры действительно жестко запрограммированы и не могут использоваться для отправки динамических / пользовательских данных. Это было задано ранее без ответа Как назначить динамические значения для пользовательских параметров в D2L Basic LTI

Разделение поля user_id на подчеркивании для извлечения идентификатора пользователя системы является единственным вариантом.

Вы правы, что в настоящее время не поддерживается способ получения значения идентификатора пользователя Brightspace для передачи в сообщении запуска LTI. Тем не менее, есть способ обойти эту проблему; Вы можете использовать API Brightspace. Поскольку все запуски LTI осуществляются браузером пользователя, ваш инструмент LTI может "знать", что у пользователя браузера активная сессия с Brightspace.

Если ваш инструмент LTI также зарегистрирован (в пределах Brightspace's Manage Extensibility реестра приложений), то при получении запуска вы можете использовать API-интерфейс whoami для получения базовой информации о пользователе, запускающем запуск (включая его идентификатор пользователя Brightspace). Расширенное руководство по удаленным плагинам в документации для разработчиков Brightspace показывает вам, Python, общий способ, которым вы можете сделать это; Это старый пример, но в целом метод все еще работает.

По сути, вашему инструменту LTI необходимо предоставить другую конечную точку, которую он может использовать для получения токенов аутентификации от Brightspace, и при первом запуске пользователем LTI ему будет предложено согласиться с тем, что ваш инструмент LTI имеет доступ к своим данным. (делать вызовы API от их имени).

Другие вопросы по тегам