2017-12-05 5 views
0

우리는 D2L에서 LTI 실행 페이로드의 일부로 사용자의 ID를 포함하려고합니다.D2L LTI 실행을위한 맞춤 매개 변수 가져 오기

이것은 우리가 user_id 필드로 점점 것입니다 :

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

우리는 마지막 DB id 필드 부분을합니다. 별도의 맞춤 매개 변수로 포함시키려는 시도에서 허용 된 매개 변수에 대한 확인란 옵션 이외에 다른 방법을 사용하는 것이 좋지 않은 것으로 나타났습니다. 그것을 성취 할 수있는 방법이 있습니까?

새 맞춤 링크를 만드는 것은 맞춤 매개 변수를 제공하는 옵션이있는 것으로 보입니다. 그러나 대부분 하드 코딩 된 값이있는 것처럼 보이며 여기에 동적 값을 제공하는 템플릿 양식을 찾을 수없는 것처럼 보입니다.

그렇지 않으면이 ID를 구문 분석하고 마지막 부분을 우리가 원하는 식별자로 가져 오도록 선택해야합니다. 이것이 마지막 선택입니다.

도움/의견을 보내 주시면 감사하겠습니다. 감사!

답변

1

귀하의 가정이 정확합니다. 수행 할 수 없습니다. 시스템 사용자 ID는 사용자가 이미 알고있는 user_id 필드 이외의 LTI 요청과 함께 전송되지 않습니다. 맞춤 매개 변수는 실제로 하드 코딩되며 동적/사용자 데이터를 전송하는 데 사용할 수 없습니다. 이 질문은 이전에 대답없이 대답했습니다. How to Assign Dynamic Values to Custom Parameters in D2L Basic LTI

시스템 사용자 ID를 추출하려면 밑줄에 user_id 필드를 분리하는 것이 유일한 옵션입니다.

+1

너무 불행합니다! 우리는 또한 다른 LMS (Moodle, Canvas, Blackboard)와의 통합이 있었으며, 우리 모두가 원했던 그대로 제공했습니다. 또한 맞춤 매개 변수에 대한 지원도 향상되었습니다. – Rana

+0

밑줄에 user_id 파일을 나누는 것은 일부 사용자에게는 효과가있을 수 있지만 허약합니다. 사용자의 LTI user_id에 사용자의 Brightspace 사용자 ID가 포함된다는 보장이 없으므로 LTI user_id 필드 값을 불투명으로 취급해야합니다. (현재로서는 작동 할 수 있지만 예를 들어 미래의 사용자에게는 그렇지 않을 수 있습니다.) –

0

현재 Lights 시작 메시지에서 전송되는 Brightspace 사용자 ID 값을 얻는 지원되는 방법이 없다는 것이 맞습니다. 그러나이 문제를 해결하려면 입니다. Brightspace API를 사용할 수 있습니다. 모든 LTI 시작은 사용자의 브라우저에 의해 조정되기 때문에 LTI 도구는 브라우저 사용자가 Brightspace와 활성 세션을 가지고 있음을 "알 수 있습니다".

LTI 도구가 Brightspace의 Manage Extensibility 응용 프로그램 레지스트리 내에 등록되어있는 경우 실행을 받으면 whoami API route을 사용하여 시작할 사용자에 대한 기본 사용자 정보 (Brightspace 사용자 ID 포함)를 얻을 수 있습니다. Brightspace 개발자 문서의 확장 된 Remote Plugins walkthrough은 Python을 보여줍니다. 그것은 오래된 예이지만 일반적으로이 방법은 여전히 ​​실행 가능합니다.

효과적으로 LTI Tool은 Brightspace에서 인증 토큰을 수신하는 데 사용할 수있는 다른 끝점을 노출해야하며 사용자가 처음 LTI를 실행하면 LTI 도구에 대한 동의 메시지가 표시됩니다 데이터에 대한 액세스 (대신 API 호출).