2017-12-05 8 views
0

私たちはD2LのLTI起動ペイロードの一部としてユーザのIDを含めるようにしています。D2L LTI起動のカスタムパラメータの取得

これは、我々がuser_idフィールドとして取得しているものです。

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

我々は唯一の最後のDB idフィールド部分をしたいです。個別のカスタムパラメータとしてインクルードしようとすると、許可されたparamsのチェックボックスオプション以外に、これを行うのは非常に良い方法ではないようです。それを達成する方法はありますか?

新しいカスタムリンクを作成すると、カスタムパラメータを提供するオプションがあるようです。しかし、ほとんどの場合、ハードコードされた値があるように見え、そこで動的な値を提供するテンプレートフォームを見つけることができないようです。

それ以外の場合は、このIDを解析し、最後の部分を私たちの最後の選択肢であるわれわれが望んでいる識別子として取得するという別のフォールバックオプションしかありません。

ご協力いただきありがとうございます。ありがとう!

答えて

1

あなたの前提は正しいですが、これはできません。すでに知っているように、システムユーザ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アプリケーションレジストリ内)に登録されている場合は打ち上げを受信したとき、あなたは、(そのBrightspaceユーザーIDを含む)を起動したユーザーに関する基本的なユーザー情報を取得するためにwhoami API routeを使用することができます。 Brightspaceの開発者ドキュメントで拡張されたRemote Plugins walkthroughは、あなたがこれを行う一般的な方法であるPythonを示しています。これは古い例ですが、一般的に、このメソッドはまだ実行可能です。

効果的に、LTIツールは、Brightspaceから認証トークンを受信するために使用できる別のエンドポイントを公開する必要があります。ユーザーがLTIを初めて起動すると、LTIツールにはデータへのアクセス(代わってAPI呼び出しを行う)。

関連する問題