2017-07-14 4 views
0

zu implementieren Ich arbeite an Tincan JavaScript API. Das Problem meines Datenformats ist totale Änderung und TinCan hat einen Grund angegeben, um Daten zusammen mit dem Anruf weiterzuleiten. Hilf mir, meine Daten im TinCan Api-Format anzupassen. Hier sind Beispieldaten eines meiner Anrufe.Brauchen Sie Hilfe, um Tincan Javascript API

var data = { "groupId": "groupId" "Gruppenname": "gNameEncrypt" "tutorNames": "tutorNames" "actorNames": "actorNames" "Othernames": " andereNamen " };

Aktuell, was ich tun, ich entschlüssele einfach diese Daten und sende es so.

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(); 
      }); 

Antwort

0

Es gibt wirklich zwei Teile hier, 1) müssen Daten in eine xapi (ehemals Blechdose) Format zu bekommen, und 2) der Code selbst.

1) Ich denke, Sie müssen einen weiteren Blick darauf werfen, wie xAPI im Allgemeinen verwendet wird. Daten werden in einem JSON- "Statement" -Objekt gespeichert, das 3 erforderliche Eigenschaften und verschiedene andere optionale Eigenschaften besitzt. Diese Eigenschaften enthalten oft komplexe Objekte, die sehr erweiterbar sind. Es ist schwer zu sagen, was Sie gezeigt haben, was Sie wirklich zu erfassen versuchen und was der beste Ansatz wäre. Ich schlage vor, etwas über das xAPI-Statement-Format zu lesen. http://experienceapi.com/statements-101/ ist ein guter Ausgangspunkt, und um zumindest einige der Möglichkeiten zu erreichen, fahren Sie mit http://experienceapi.com/statements/ fort.

2) Der Code, den Sie aufgelistet haben, versucht, bereits gespeicherte Anweisungen basierend auf zwei Parametern zu speichern, anstatt zu versuchen, eine Anweisung zu speichern. Die zwei Parameter sind "Agent" und "Verb". In diesem Fall können wir nicht sagen, was das Verb sein soll, da wir nicht wissen, was data enthält, ich vermute, dass dies keinen Sinn ergeben wird als ein Verb, das die Handlung einer Aussage sein soll. Allerdings ist die Tatsache, dass der "Akteur" einen Wert von action hat, fraglich, da das wirklich mehr danach klingt, was ein "Verb" enthalten sollte. Das Einholen der Anweisungen als Teil von # 1 sollte deutlich machen, wie Sie diese Anweisungen abrufen würden. Wenn Sie diese Anweisungen speichern, müssen Sie bei Verwendung des TinCan-Schnittstellenobjekts die sendStatement-Methode dieses Objekts verwenden. Aber diese Schnittstelle wird nicht mehr empfohlen, die empfohlene Vorgehensweise besteht darin, ein TinCan.LRS-Objekt zu konstruieren und direkt damit zu interagieren. In diesem Fall würden Sie die saveStatement-Methode verwenden. Ich würde empfehlen, den "Basic Usage" -Abschnitt auf der Projekthomepage hier zu betrachten: http://rusticisoftware.github.io/TinCanJS/ für mehr Details sehen Sie sich die API doc an: http://rusticisoftware.github.io/TinCanJS/doc/api/latest/

+0

#Brian J. Miller ich verstehe, was Sie gesagt haben? Ich folge diesen Link auch, um TinCan zu implementieren. Aber mein Hauptanliegen sind meine Daten, in meinem Fall werden meine Daten mit jeder Aussage geändert. Hier ist der Testlink meiner App http://test.lip-app.eu Bitte schauen Sie sich das an und schlagen Sie mir vor, wie würde ich die Daten im Tincan Objekt anpassen? –