Я пытаюсь реализовать эту конечную точку activity/state/?method=GET в своем LRS, но не могу заставить работать функцию возобновления. У меня есть все данные, но я не уверен, что Articulate ожидает возврата LRS, чтобы возобновить работу с того места, на котором остановился пользователь. Я также пытался заглянуть на страницу поддержки Articulate, но пока ничего полезного. Любая помощь будет оценена по достоинству.
Резюме в артикуле с tin-can api
Ответы (3)
Он ищет возвращаемую строку состояния. Это просто длинная строка, которая отправляется при сохранении состояния (закладки).
Я рекомендую провести тестирование с помощью Golf Prototype по адресу http://tincanapi.com/prototypes/?utm_source=tincanapi_com&utm_medium=stack_overflow&utm_term=andrew&utm_content=page&utm_campaign=prototypes?pmc=em-1 сначала, чтобы вы знали, что проблема связана с LRS. Попробуйте прототипы как в Internet Explorer, так и в другом браузере, таком как Chrome; любая разница в поведении может быть подсказкой.
Пожалуйста, также посмотрите на вкладку вашей сети в инструментах разработчика Chrome и сообщите нам, если какие-либо запросы не выполняются и что сохраняется и извлекается из состояния.
Полная информация о том, как должен работать State API, содержится в спецификации. Вот соответствующий раздел в версии 1.0.2: https://github.com/adlnet/xAPI-Spec/blob/a752217060b83a2e15dfab69f8c257cd86a888e6/xAPI.md#stateapi
Также стоит отметить, что создать LRS сложно. Существует число коммерческой LRS с открытым исходным кодом, что, вероятно, будет дешевле, чем самостоятельное создание.
Мне удалось заставить это работать. Я использовал веб-API .NET.
Мне пришлось явно установить для заголовка content-type
значение 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");