如何通过代理查询LRS javascript

How to query LRS by agent via javascript

我觉得我已经尝试了所有方法,但我总是做空。我正在学习 Storyline 360​​ 中的一门课程,在使用动词和对象 ID 时,我能够很好地 return 语句,但无论我做什么来尝试和针对特定代理的 return 语句,我无法通过查询。

这是我现在的代码 - 我在这里做了 return 大量语句...我需要知道的是如何让它查询当前学习者的语句以进行匹配。我可以输入他们的名字或 mbox,但每次都尝试在我的参数中传递这些信息时失败。

非常感谢任何帮助!

var lrs;
var statementFound = false;
var player = GetPlayer();
try {
    lrs = new TinCan.LRS(
        {
            endpoint: "https://cloud.scorm.com/lrs/MYINFO/",
            username: "MYINFO",
            password: "MYINFO",
            allowFail: false
        }
    );
}
catch (ex) {
    console.log("Failed to setup LRS object: ", ex);
    // TODO: do something with error, can't communicate with LRS
};

var myObj = JSON.parse(getParameterByName('actor'));
lrs.queryStatements(
    {
        params: {
            verb: new TinCan.Verb(
                { 
                   id:  "http://adlnet.gov/expapi/verbs/answered"
                }
            )
    },
        callback: function (err, sr) {
            if (err !== null) {
                console.log("Failed to query statements: " + err);
                // TODO: do something with error, didn't get statements
                return;
             }

            if (sr.more !== null) {
                // TODO: additional page(s) of statements should be fetched
             }

           if (sr.statements.length > 0) {
            statementFound = true;
             console.log(sr.statements);
             player.SetVar("sf",statementFound);
            }
        }
    }
);

var myObj 能够在需要时提取必要的信息来识别学习者 - 但同样,我只是不知道如何在查询中传递它。

您需要在第一个参数传递的 params 对象中设置一个 agent 属性。假设 Agent 是语句中的 actor.

lrs.queryStatements(
    {
        params: {
            agent: TinCan.Agent.fromJSON(getParameterByName('actor'))
        }
    },
    ...
);