Python版本的xAPI库比java版本要好上手一点。
首先在这个网站https://github.com/RusticiSoftware/TinCanPython下载官方的库,我们发送数据所需要的库函数在tincan这个包里。所以我们要写python数据发送的demo只需要复制tincan包到我们的工程文件中就可以,或者设置tincan包的位置。
python版本的代码如下:
#encoding=utf8
import tincan
import uuid
from resources import lrs_properties
from pytz import utc
import datetime
#setup_tincan_path()
endpoint=lrs_properties.endpoint
version=lrs_properties.version
username=lrs_properties.username
password=lrs_properties.password
lrs=tincan.RemoteLRS(version=version,endpoint=endpoint,username=username,password=password)
agent=tincan.Agent(openid='512',name='HongleiSun')
verb=tincan.Verb(id="http://www.mooc.buaa.edu.cn/expapi/verbs/answer",display=tincan.LanguageMap({"en-US": "answer"}))
activity=tincan.Activity(id='216',definition=tincan.ActivityDefinition())
activity.definition.type='type:problem'
activity.definition.name=tincan.LanguageMap({'en-US':'fifth chapter'})
activity.definition.description=tincan.LanguageMap({'en-US':'fifth chapter'})
activity.definition.more_info='http://sxtb7.mintelcn.com/MintelRev/servlet/MintelServlet?Pid=npart2'
activity.definition.extensions={'http://sxtb7.mintelcn.com/MintelRev/servlet/MintelServlet?Pid=npart2':{'parentid':'mintel:237'}}
activity.object_type='Activity'
score=tincan.Score(raw=97,scaled=0.97,max=100,min=0)
result=tincan.Result(score=score,duration="PT120S",response='A')
contextActivities=tincan.Activity(id='http://www.mintelcn.com/')
contextActivities.object_type='Activity'
context=tincan.Context(registration=uuid.uuid4(),contextActivities=tincan.ContextActivities(grouping=contextActivities))
authority=tincan.Agent(mbox='mailto:hjk_buaa@163.com',name='hjkun')
timestamp=utc.localize(datetime.datetime.now())
statement=tincan.Statement(actor=agent,verb=verb,object=activity,context=context,timestamp=timestamp,authority=authority)
response=lrs.save_statement(statement)