获取 xApi 语句中返回的进度
Getting progress returned in xApi statements
我正在寻找有关已启动的 xApi 包的一些信息。
如果我从我自己的应用程序启动一个程序包并按照课程进行到底,在我的 LRS 中我可以看到详细说明我开始、尝试、经历并通过 activity 的声明,但没有任何相关内容到课程进度 / activity.
我指的是参加课程的用户可以看到的总体进度(百分比),因此对于每个陈述,无论是 'experienced'、'attempted' 还是其他任何内容,我我想 return 这个百分比完成。
** 编辑 **
找到此信息,但不确定如何以及在何处使用它:
"如果您想跟踪课程进度,请在标题级别添加这两个操作:
正在显示 - xAPI 语句 - 已尝试 - VAR(CurrentPageName)
隐藏 - xAPI 语句 - 完成 - VAR(CurrentPageName)"
我注意到的是语句记录如下:
Damion Daly 已尝试 Activity(无姓名)
这让我认为我没有在查询字符串中正确传递 activity,因此无法获取有关 activity 的所有信息,这是正确的吗?
如果有任何帮助,我将按如下方式启动我的程序包。
protected async void OpenIndexWithQryString1(object sender, EventArgs e)
{
string _course = await s.GetCourseTitle();
string content = "[url to where our content is]" + _course + "/index.html";
string endpoint = "[LRS endpoint]";
string auth = "Basic (auth key)";
string actor = "{\"objectType\":\"Agent\",\"name\":[\"user name\"],\"mbox\":[\"test@mail.com\"]}";
string registration = "(reg token)";
string activity = "http://example.cpm/my-activity3/";
string querystring = content + "?endpoint=" + endpoint + "&auth=" + auth + "&actor=" + actor + "®istration=" + registration + "&activity_id=" + activity;
bool b = ResponseHelper.Redirect(Uri.EscapeUriString(querystring), "_blank", "menubar=0,width=100,height=100");
}
这听起来像是内容创作工具的特定问题,并不是 xAPI 的核心。通过内容记录进度可以通过多种方式完成,并且通常不依赖于内容的启动方式。通常在 xAPI 中,语句的特定部分或整个语句将记录体验的进度。例如,在 cmi5 中,AU 的进度是通过扩展记录的,有关更多信息,请参见 https://github.com/AICC/CMI-5_Spec_Current/blob/quartz/cmi5_spec.md#result_extensions_progress。 (请注意,此内容不是基于 cmi5 的,因此可能打算做不同的事情。)
至于 Activity 的 "name",它通常来自 Activity 定义,不会作为您使用的启动过程的一部分提供。 LRS 需要接收该定义作为声明的一部分,或者需要与处理包的发射系统集成,可能是通过一个基于 tincan.xml
的包,其中可以包含定义元素。请注意,在检索语句时可能还需要传递 canonical
查询字符串参数,以便在可能的情况下获得完全填充的定义。
我正在寻找有关已启动的 xApi 包的一些信息。
如果我从我自己的应用程序启动一个程序包并按照课程进行到底,在我的 LRS 中我可以看到详细说明我开始、尝试、经历并通过 activity 的声明,但没有任何相关内容到课程进度 / activity.
我指的是参加课程的用户可以看到的总体进度(百分比),因此对于每个陈述,无论是 'experienced'、'attempted' 还是其他任何内容,我我想 return 这个百分比完成。
** 编辑 **
找到此信息,但不确定如何以及在何处使用它:
"如果您想跟踪课程进度,请在标题级别添加这两个操作: 正在显示 - xAPI 语句 - 已尝试 - VAR(CurrentPageName) 隐藏 - xAPI 语句 - 完成 - VAR(CurrentPageName)"
我注意到的是语句记录如下: Damion Daly 已尝试 Activity(无姓名) 这让我认为我没有在查询字符串中正确传递 activity,因此无法获取有关 activity 的所有信息,这是正确的吗?
如果有任何帮助,我将按如下方式启动我的程序包。
protected async void OpenIndexWithQryString1(object sender, EventArgs e)
{
string _course = await s.GetCourseTitle();
string content = "[url to where our content is]" + _course + "/index.html";
string endpoint = "[LRS endpoint]";
string auth = "Basic (auth key)";
string actor = "{\"objectType\":\"Agent\",\"name\":[\"user name\"],\"mbox\":[\"test@mail.com\"]}";
string registration = "(reg token)";
string activity = "http://example.cpm/my-activity3/";
string querystring = content + "?endpoint=" + endpoint + "&auth=" + auth + "&actor=" + actor + "®istration=" + registration + "&activity_id=" + activity;
bool b = ResponseHelper.Redirect(Uri.EscapeUriString(querystring), "_blank", "menubar=0,width=100,height=100");
}
这听起来像是内容创作工具的特定问题,并不是 xAPI 的核心。通过内容记录进度可以通过多种方式完成,并且通常不依赖于内容的启动方式。通常在 xAPI 中,语句的特定部分或整个语句将记录体验的进度。例如,在 cmi5 中,AU 的进度是通过扩展记录的,有关更多信息,请参见 https://github.com/AICC/CMI-5_Spec_Current/blob/quartz/cmi5_spec.md#result_extensions_progress。 (请注意,此内容不是基于 cmi5 的,因此可能打算做不同的事情。)
至于 Activity 的 "name",它通常来自 Activity 定义,不会作为您使用的启动过程的一部分提供。 LRS 需要接收该定义作为声明的一部分,或者需要与处理包的发射系统集成,可能是通过一个基于 tincan.xml
的包,其中可以包含定义元素。请注意,在检索语句时可能还需要传递 canonical
查询字符串参数,以便在可能的情况下获得完全填充的定义。