Нужна помощь в реализации Tincan Javascript API

Я работаю над tincan JavaScript API. Проблема в том, что мой формат данных полностью изменен, и TinCan указал, почему нужно передавать данные вместе с вызовом. Помогите мне настроить мои данные в формате TinCan Api. Вот пример данных одного из моих звонков.

var data = { "groupId": "groupId", "groupName": "gNameEncrypt", "tutorNames": "tutorNames", "actorNames": "actorNames", "otherNames": "otherNames" };

Текущее, что я делаю, я просто декодирую эти данные и отправляю их так.

var actionList = new TinCan(
    {
    recordStores: [{
                       endpoint: "http://example.com",
                       username: username,
                       password: password,
                       allowFail: false
                  }]
});

                var action = new TinCan.Agent({
                    "name": "insert"
                });

                actionList.getStatements({
                    'params': {
                        'agent': action,
                        'verb': {
                            'id': $.base64.encode(data)
                        }
                    },
                    'callback': function (err, data) {
                        console.info(data.more);
                        var urlref = "http://<?php echo $_SERVER['SERVER_NAME'] . ":" . $_SERVER['SERVER_PORT'] . $uriParts[0] . "?" ?>t=" + data.more.TutorToken;
                        window.location.href = urlref;
                    }
                });
                crypt.finish();
            });

person Noman Rauf    schedule 14.07.2017    source источник


Ответы (1)


Здесь действительно есть две части: 1) нужно получить данные в формате xAPI (ранее Tin Can) и 2) сам код.

1) Я думаю, вам нужно еще раз взглянуть на то, как вообще используется xAPI. Данные хранятся в объекте JSON «Statement», который имеет 3 обязательных свойства и различные другие необязательные. Эти свойства часто содержат сложные объекты, которые очень расширяемы. По тому, что вы показали, трудно сказать, что вы на самом деле пытаетесь зафиксировать и каким будет лучший подход. Я предлагаю прочитать некоторые материалы о формате оператора xAPI. http://experienceapi.com/statements-101/ – это хорошая отправная точка. по крайней мере, некоторый охват всех возможностей продолжится с http://experienceapi.com/statements/ .

2) Код, который вы указали, пытается получить уже сохраненные операторы на основе двух параметров, а не пытается сохранить оператор. Два параметра: «агент» и «глагол». В этом случае мы не можем сказать, каким должен быть глагол, поскольку мы не знаем, что содержит data, я подозреваю, что это не будет иметь смысла как глагол, предназначенный для действия утверждения. Сказав, что тот факт, что «актер» имеет значение action, вызывает сомнения, поскольку это действительно больше похоже на то, что должен содержать «глагол». Правильное определение утверждений в рамках #1 должно прояснить, как вы будете извлекать эти утверждения. Что касается хранения этих операторов, если вы используете объект интерфейса TinCan, вам нужно будет использовать метод sendStatement этого объекта. Но этот интерфейс больше не рекомендуется, рекомендуемая практика заключается в создании объекта TinCan.LRS и непосредственном взаимодействии с ним, и в этом случае вы будете использовать метод saveStatement. Я бы рекомендовал посмотреть раздел «Основное использование» на домашней странице проекта здесь: http://rusticisoftware.github.io/TinCanJS/ для получения более подробной информации см. документ API: http://rusticisoftware.github.io/TinCanJS/doc/api/latest/

person Brian J. Miller    schedule 15.07.2017
comment
#Брайан Дж. Миллер, я понял, что ты сказал? Я также следую этой ссылке, чтобы реализовать TinCan. Но меня больше всего беспокоят мои данные, в моем случае мои данные меняются с каждым оператором. Вот тестовая ссылка моего приложения test.lip-app.eu, пожалуйста, изучите это и предложите мне, как Могу ли я настроить данные в объекте tincan? - person Noman Rauf; 18.07.2017