继续用锡罐说话 api

Resume in articulate with tin-can api

我正在尝试在我的 LRS 中实现此端点 activities/state/?method=GET - 但我似乎无法使恢复功能正常工作。我拥有所有数据,但不确定 Articulate 期望 LRS return 做什么以便从用户停止的地方恢复。我也尝试查看 Articulate 支持页面,但到目前为止没有任何用处。任何帮助将不胜感激。

我建议先用 http://tincanapi.com/prototypes/ 的 Golf Prototype 进行测试,以便您知道问题出在 LRS 上。在 Internet Explorer 和其他浏览器(例如 Chrome)中尝试原型;行为上的任何差异都可能是一个线索。

另请查看 Chrome 开发人员工具中的网络选项卡,让我们知道是否有任何请求失败以及正在从 State 存储和检索的内容。

状态 API 应该如何工作的完整细节可以在规范中找到。这是 1.0.2 版中的相关部分:https://github.com/adlnet/xAPI-Spec/blob/a752217060b83a2e15dfab69f8c257cd86a888e6/xAPI.md#stateapi

还值得注意的是,building an LRS is hard. There are a number of commercial and open source LRS 这可能比自己建造一个便宜。

它正在寻找要返回的状态字符串。这只是保存状态(书签)时发出的一个长字符串。

我设法让它工作了。我使用的是 .NET Web API.

我必须明确地将 content-type header 设置为 octet-stream - 它默认为 text/html

下面的代码起到了作用:

HttpResponseMessage httpResponseMessage = Request.CreateResponse(HttpStatusCode.OK);
httpResponseMessage.Content = new StringContent(studentModuleName.SuspendData);
httpResponseMessage.Content.Headers.ContentType = new MediaTypeHeaderValue("application/octet-stream");