0

D2L LMS テスト環境システムでカスタム ウィジェットを作成しようとしています。このウィジェットは、コースのホームページでインストラクターのユーザー プロファイルの画像と名前をウィジェットに入力します。そのために Valence API を使用できると言われたので、Valence http://docs.valence.desire2learn.com/にあるすべてのドキュメントを読みました。次に、LMS の Manage Extensibility 管理ツール内にウィジェットを登録しました (外部アプリは使用していませんが)。また、 https://github.com/Brightspace/valence-sdk-javascript/releasesからクライアント ライブラリの JavaScript バージョンをダウンロードし、いくつかの変更を加えて独自の API キーと ID を追加し、それらを自分のコースの Manage Files valenceJS フォルダーにアップロードしました。

私のウィジェットでは、以下のコードを追加して、whoamI 呼び出しを使用して API 呼び出しをテストしようとしています。

<div style="width: 250px; max-width: 250px; overflow: hidden;">
<script type="text/javascript">// <![CDATA[
if (typeof jQuery == 'undefined'){  
document.write('<script type="text/javascript"         src="//ajax.googleapis.com/ajax/libs/jquery/1.6.1/jquery.min.js"><\/script>');
}
// ]]></script>
<script type="text/javascript"     src="https://learntest.<mysite>/{OrgUnitPath}/valenceJS/valence.js">    </script>
<script type="text/javascript"     src="https://learntest..<mysite>/{OrgUnitPath}/valenceJS/sha.js">    </script>
<script type="text/javascript"      src="https://learntest..<mysite>/{OrgUnitPath}/valenceJS/sample1.js"></script>
<script type="text/javascript" src="https://learntest..<mysite>/{OrgUnitPath}/valenceJS/server2.js">    </script>
<script type="text/javascript" src="https://learntest..<mysite>/{OrgUnitPath}/valenceJS/jquery.jsonp -2.2.0.min.js"></script>
<script type="text/javascript">// <![CDATA[
$(document).ready( function () {
$('#iInfo').load('/d2l/api/lp/1.0/users/whoamI', function(responseTxt,     statusTxt, xhr){
        if(statusTxt == "success")
            $('#error').text("API loaded successfully!");
        if(statusTxt == "error")
            $('#error').text("Error: " + xhr.status + ": " +     xhr.statusText);
    });
    });
// ]]></script>
<div id="iInfo" style="padding: 0 10px 10px 10px;"></div>
<p id="error" style="color: red;"></p>
</div>

しかし、ウィジェットに Error 403 Forbidden が表示され、システムがフリーズします。次に、ファイルを挿入するスクリプトを取り出したところ、エラー 403 Forbidden が引き続き表示されますが、システムはフリーズしなくなりました。

API内で外部アプリを使用していないため、何が間違っているのかわかりません。ウィジェットはLMSツールであるため、LMS内にいるため、ウィジェットを登録する必要があった理由がわかりませんAPI キーと ID、およびこの場合の認証のしくみを取得します。API テスト ツール内で API キーと ID をテストしたところ、この whoamI 呼び出しの結果が返されました。

より高いセキュリティ レベルの管理者として LMS にログインしていますが、それでも 403 Forbidden が表示されます。学生アカウントで LMS にログインしたときも同じです。

助けてくれてありがとう。

4

1 に答える 1

0

答えはhttps://community.brightspace.com/devcop/f_technical/help_with_make_an_api_call_within_my_widgetを参照してください。

リンクから:

この質問に対する答えは、Brightspace のバージョンによって異なります。

バージョンが 10.4.7 以降の場合、Brightspace が使用する Cookie が機能するため、Valence 認証を使用する必要はありません。

バージョンが 10.4.7 より前の場合、ウィジェットから Brightspace に適切な Valence リクエストをプロキシできる Web アプリケーションを作成する必要があります。そこに Valence 認証を追加できます (つまり、認証された URL を生成した後にリクエストを Brightspace に転送する、使用している Valence API のサブセットを公開する Web アプリケーション)。これは、10.4.7 より前のバージョンでは、Valence API が別の方法を使用して、ウィジェットであっても受信リクエストを認証するためです。

于 2015-03-18T19:29:41.200 に答える