我的工作在Tincan JavaScript API。我的数据格式的问题是总的变化和TinCan已指定了为什么要传递数据沿着调用。帮助我调整我的数据在TinCan API格式。这里是我调用的样本数据之一。
变量数据= {“组ID”:“组ID”,“组名称”:“gNameEncrypt”、“教程名称”:“教师姓名”、“演员姓名”:“演员姓名”、“其他姓名”:“其他名称”};
目前我做什么,我只是解码这个数据,并发送它像这样。
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();
});
1条答案
按热度按时间zdwk9cvp1#
这里实际上有两个部分:
1.需要将数据转换为xAPI(以前称为Tin Can)格式,并且
1.代码本身。
在深度上,
1.我认为你需要再看一下xAPI的一般用法。数据存储在JSON“Statement”对象中,该对象有3个必需属性和各种其他可选属性。这些属性通常包含非常可扩展的复杂对象。从你所展示的内容中很难判断你真正想捕捉的是什么,以及最好的方法是什么。我建议阅读一些关于xAPI语句格式的材料。http://experienceapi.com/statements-101/是一个很好的起点,为了至少了解一些所有可能性,请继续阅读http://experienceapi.com/statements/。
1.你所列出的代码试图根据两个参数获取已经存储的语句,而不是试图存储语句。这两个参数是“agent”和“verb”。在这种情况下,我们无法判断动词应该是什么,因为我们不知道
data
包含什么,我怀疑这对于一个意图作为语句的动作的动词来说是没有意义的,尽管“actor”的值为action
这一事实是值得怀疑的,因为这听起来更像是一个“动词”应该包含的内容。将语句正确地作为#1的一部分应该会使您如何检索这些语句变得显而易见。至于存储这些语句,如果您使用TinCan
接口对象,则需要使用该对象的sendStatement
方法。但不再推荐使用此接口。推荐的做法是构造一个TinCan.LRS
对象并直接与之交互,在这种情况下,您将使用saveStatement
方法。我建议查看项目主页的“基本用法”部分:http://rusticisoftware.github.io/TinCanJS/有关详细信息,请参阅API文档:http://rusticisoftware.github.io/TinCanJS/doc/api/latest/