[英]Customise searchStatements result from Tin Can API via jQuery
[英]Retrieving a list of Tin Can API statements from SCORM Cloud LRS
我已經在我的LMS中添加了“錫罐”課程,並且我能夠成功上傳和回放該課程,以便將我的聲明寫入“初始應用領域LRS”。 到現在為止還挺好。
現在,我希望能夠從LRS檢索所有已編寫語句的列表,以便可以迭代這些語句並檢查已登錄用戶的課程是否完成。 我的聲明正在寫入以下端點:
https://cloud.scorm.com/tc/7QLMQA89WV/
我嘗試使用.NET庫和以下代碼查詢語句:
//Initialize the TinCan Remote LRS for retrieving completion statistics
LRS = new RemoteLRS("https://cloud.scorm.com/tc/7QLMQA89WV/", "<username>", "<pw>");
Version = TinCan.TCAPIVersion.V101;
//Create the TinCan statement to query completed activities for the logged in user
var query = new StatementsQuery();
query.agent = new TinCan.Agent();
query.agent.mbox = "mailto:jpmcfeely@hsl-data.com";
query.verbId = new Uri("http://adlnet.gov/expapi/verbs/completed");
query.activityId = new Uri("http://tincanapi.com/GolfExample_TCAPI");
但是,這將返回所有語句的列表,無論已使用的動詞或活動如何。 查詢過濾器中是否可能有錯誤,如使用SCORM Cloud時,我可以看到TCAPI查詢字符串,並且在此處輸入動詞或活動的URI時,它會進行適當過濾。
作為測試語句是否正確輸出的一種方法,我在視圖中也有以下內容,不確定是否這是獲取該語句的可讀版本的最佳方法,但是我在List中的每個語句都有此輸出
<p>@statement.actor.name @statement.verb.display.ToJObject().GetValue("und") '@statement.target.ToJObject(Model.Version)["definition"]["name"]["en-US"]'</p>
+1對Andrew使用圖書館的建議。 獲得結果的原因是因為缺少庫適當添加到所有請求中的“ X-Experience-API-Version”標頭。 缺少標頭意味着LRS會將請求解釋為0.9版本請求,除非您使用該版本存儲了語句,否則不會返回任何語句(語句不會下轉換)。
我知道您知道圖書館在哪里,但對於SO的后代:
http://rusticisoftware.github.io/TinCanJS/
還要注意,這只會返回LRS的第一頁語句,然后,您需要處理LRS返回的“更多” URL來遞歸地獲取下一頁。 TinCanJS也提供了一種簡單的方法。
我建議使用TinCanJS庫。 稍后我將通過鏈接進行更新,但是您應該可以在Google上找到它和說明。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.