TinCanAPI に準拠するように LMS を更新しようとしています。Tetris サンプル ゲームの開始と終了のステートメントを取得できましたが、ActivityProfile 呼び出しをハイスコアに更新できませんでした。正確に返却する必要があります。
次の WebAPI コントローラーがあります。
public class ActivitiesController : ApiController
{
private XAPIBiz xvm;
public ActivitiesController()
{
MetaLearning.Data.MetaLearningContext dbcontext = new MetaLearningContext(System.Configuration.ConfigurationManager.ConnectionStrings["MetaLearningContext"].ConnectionString);
xvm = new MetaLearning.Biz.XAPIBiz(dbcontext);
}
// GET api/activity/5
public string Get([FromUri]string profileId, [FromUri]string activityId)
{
return "[{actor:{name:John Paul}, score:9921, date:2014-04-07T14:42:46.492Z},{actor:{name:John Paul}, score:4000, date:2014-04-07T14:42:46.492Z}]";
//var test = profileId;
//var test2 = activityId;
//return "value";
}
.......
}
コースが Cloud.Scorm.Com でホストされているときにリーダーボードを表示しようとすると、/activities/profile ?profileId=highscores&activityId=http%3A%2F%2Ftincanapi.com%2FJsTetris_TCAPIへのリクエストを確認できます
の応答が得られます
"[{俳優:{名前:ジョン・ポール}、スコア:9921、日付:2014-04-07T14:42:46.492Z}、{俳優:{名前:ジョン・ポール}、スコア:4000、日付:2014-04- 07T14:42:46.492Z}]"
しかし、テスト目的でこれの文字列値だけを返そうとすると、リーダーボードに未定義の 137 のリストが表示されます。
このコントローラー アクションで void を返すと、ランキングは空白になります。
このファイルのテキストを json ファイルとして保存し、blob ストレージに保存してから、そのファイルを指す URI を返そうとすると、未定義の 66 個の名前のリストが表示されます。
ActivityProfile API がどのように機能するかについての理解を深めるための助けをいただければ幸いです。SCORM クラウドでの実装は何ですか?