jquery - 从 SCORM Cloud LRS 检索 Tin Can API 语句列表

标签 jquery ajax scorm tin-can-api

我已将 Tin Can 类(class)添加到我的 LMS,并且我能够成功上传和回放该类(class),以便我的语句被写入初始应用领域 LRS。到目前为止一切顺利。

现在我希望能够从 LRS 检索已编写的所有语句的列表,以便我可以迭代这些语句并检查登录用户的类(class)完成情况。我的语句正在写入以下端点:

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:<a href="https://stackoverflow.com/cdn-cgi/l/email-protection" class="__cf_email__" data-cfemail="3b514b56585d5e5e57427b534857165f5a4f5a15585456" rel="noreferrer noopener nofollow">[email protected]</a>";
query.verbId = new Uri("http://adlnet.gov/expapi/verbs/completed");
query.activityId = new Uri("http://tincanapi.com/GolfExample_TCAPI"); 

然而,这将返回所有语句的列表,无论已使用的动词或事件如何。查询过滤器中是否可能存在错误,因为使用 SCORM Cloud 时我可以看到 TCAPI 查询字符串,并且在此处输入动词或事件的 URI 时,它会进行适当的过滤。

作为测试语句是否正确输出的一种方法,我也有以下观点,不确定这是否是获得语句的人类可读版本的最佳方法,但我对每个语句都有此输出在我的列表中

<p>@statement.actor.name @statement.verb.display.ToJObject().GetValue("und") '@statement.target.ToJObject(Model.Version)["definition"]["name"]["en-US"]'</p>

最佳答案

对安德鲁关于使用该库的建议+1。您获得结果的原因是因为您缺少“X-Experience-API-Version” header ,该库将其适本地添加到所有请求中。缺少 header 意味着 LRS 将该请求解释为 0.9 版本请求,除非您使用该版本存储了语句,否则不会返回任何内容(语句不会向下转换)。

我知道你知道图书馆在哪里,但为了 SO 的后代:

http://rusticisoftware.github.io/TinCanJS/

另请注意,这只会返回 LRS 的第一页语句,然后您需要处理 LRS 返回的“更多”URL 以递归地获取下一页。 TinCanJS 也提供了一个简单的方法来做到这一点。

关于jquery - 从 SCORM Cloud LRS 检索 Tin Can API 语句列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24124663/

相关文章:

javascript - jQuery 内存泄漏模式和原因

javascript - DotNet Highcharts-我可以在页面加载后将整个图表分配给 JS var,以便进一步操作

javascript - Web api 中验证模型失败时返回警报消息

Javascript SCORM API 提交 - 异步还是同步?

Javascript Scorm 1.2 API

javascript - 让 PHP 根据用户选择上传的数量来抓取所有文件

javascript - If 条件推送包含/匹配字符串的值

python - 使用 Prototype 和 Django 的 Ajax 自动完成功能

javascript - JQuery ajax 从 C# 函数返回列表

java - 创建 SCORM list xml 的最佳 java 库是什么