2015-11-30 54 views
0

我正在嘗試創建/更新LTI鏈接,但當我提出請求時獲取404。我使用Instructor憑據從https://apitesttool.desire2learnvalence.com嘗試此操作(我可以通過調用whoami API來確認它)。教練正在註冊課程(org_unit_id是6689)。測試沙盒託管在http://vxxxxxxxxbrightspacetrial .com。在D2L中獲得404 API

POST /d2l/api/le/unstable/lti/link/6689 Content Type:application/json Data: { "UseToolProviderSecuritySettings": false, "Title": "Tiltl2", "Url": "https://127.0.0.1:8000/lti/d2llaunch12/", "Description": "<p>Points to Local Server1</p>", "Key": "", "IsVisible": true, "SignMessage": true, "SignWithTc": true, "SendTcInfo": true, "SendContextInfo": true, "SendUserId": true, "SendUserName": true, "SendUserEmail": true, "SendLinkTitle": true, "SendLinkDescription": true, "SendD2LUserName": false, "SendD2LOrgDefinedId": false, "SendD2LOrgRoleId": false, "CustomParameters": null } Response: Unknown error occured (HTTP status 404) 我已經使用了正確的路由,並且在GET請求中獲得了正確的響應。
GET /d2l/api/le/(version)/lti/link/(orgUnitId)/(ltiLinkId) GET /d2l/api/le/(version)/lti/link/(orgUnitId)/ 我不知道爲什麼這是給404請幫

+0

我認爲,首先,您的後端LMS至少運行10.4.11,其次,調用的調用用戶上下文有權限管理外部學習工具? –

+0

是的,我們正在沙箱上運行10.5.4,並且用戶需要權限 – Vikas

回答

0

如果你想註冊一個新的鏈接(帶POST),然後按照文件,你應該提供LTI.CreateLtiLinkData結構。

請注意,使用此結構,您應該提供KeyPlainSecret值:我相信這些是用於該LTI鏈接的消費者密鑰和祕密。我不確定API如何協調是否具有這些屬性的值,並且具有或不具有與鏈接的Url匹配的現有工具提供者定義(以便TP的密鑰/祕密將用於簽署該鏈接的啓動,而不是在鏈路級別定義的密鑰/祕密)。

您可能看到404的原因是API綁定層無法找到綁定到的路由處理程序來匹配您正在處理的內容:也就是說,它正在查看您的JSON有效內容,而不是能夠將它綁定爲CreateLtiLinkData結構,所以它可能會尋找另一個自然不存在的處理程序,因此也就是404。這種「無法綁定到處理程序,因此404」是D2L的Valence web方式的一個不幸的方面服務實施工程。

+0

謝謝Viktor,我根據您的建議獲得了此API。我使用python庫d2l_utils來創建POST結構。我建議您始終使用由D2L提供的特定於語言的實用程序。 – Vikas