Implémentation de la norme xAPI pour prendre en charge des contenus Articulate

Dernière mise à jour de l’article le

Cet article s'applique à :

Implémentez les fonctionnalités XAPI (Tin Can API) décrites sur cette page pour prendre en support technique entièrement le contenu Articulate dans votre plateforme de formation en ligne (LMS). En savoir plus sur la spécification XAPI.

Types d'activités

Articulate les rapports de contenu sur les types d'activité détaillés dans le tableau ci-dessous. Veuillez noter les valeurs attendues pour l'ID parent de l'activité (défini dans l'objet Context.ContextActivities).

Types d'activités

Description

ID parent

module

Décrit une seule diapositive au sein d'un module.

L'ID parent sera toujours l'ID du module.

interaction cmi

Une question notée ou une question d'enquête.

L'ID parent sera l'ID de l'objectif auquel appartient l'activité interactive.

objectif

Articulate les interactions des groupes de contenu ensemble à l'aide de diapositives de relecture. Une diapositive de relecture est définie à l'aide d'un objectif XAPI. Un module peut avoir un ou plusieurs objectifs. En outre, une diapositive de relecture peut également regrouper d'autres diapositives de relecture.

L'ID parent sera soit l'ID du module, soit l'ID objectif dont il est enfant.

module

Le module Articulate.

L'ID parent sera toujours son propre ID.

Verbes

XAPI fournit des verbes pour décrire l'activité des utilisateurs. Voici une liste des verbes utilisés par Articulate content, ainsi que la signification des verbes.

Verbes

Types d'activités

Description

tenté

module

Informe le LMS qu'un module a commencé.

expérimenté

module

Envoyé lorsqu'une diapositive a été visualisée.

progressé (Rise 360 uniquement)

cours, module, objectif

Envoyé à la fin de chaque leçon après l'envoi de la déclaration expérimentée. Fournit les données de résultats du module ainsi qu'une extension de résultat qui suit la progression globale du module.

répondu

interaction cmi

Indique qu'une question a reçu une réponse pour un sondage ou une question notée.

terminé

module, objectif

Utilisé lorsqu'un module ou un objectif a été terminé et que l'achèvement est basé sur le nombre de diapositives vues ou lorsque l'achèvement est déterminé en fonction de l'achèvement d'un sondage.

passé

module, objectif

Informe le LMS qu'un module ou un objectif a été complété avec une score à atteindre pour réussir le quiz. Ce verbe n'est utilisé que lorsque l'achèvement est basé sur un ensemble de questions notées.

a échoué

module, objectif

Informe le LMS qu'un module ou un objectif a été terminé avec un score d'échec. Ce verbe n'est utilisé que lorsque l'achèvement est basé sur un ensemble de questions notées.

gauche (Storyline uniquement)

module

Envoyé lorsqu'un apprenant quitte la diapositive

Remarque : À partir de la mise à jour de novembre 2021 pour Storyline 360, vous pouvez utiliser des déclencheurs pour définir des traces xAPI personnalisées et accéder à d'autres verbes.

Métadonnées d'activité

XAPI permet de définir une activité dans le fichier tincan.xml ou directement dans une déclaration. Articulate définit les activités dans les deux.

Lorsque vous publiez une déclaration sur un point de terminaison XAPI, l'déclaration référence aux objets définis dans le fichier tincan.xml par ID. Le fichier tincan.xml contiendra également des définitions pour les choix, l'échelle, la source, la cible et les étapes du type cmi.interaction correspondant. Vous trouverez le fichier xsd décrivant le format du fichier tincan.xml à l'adresse suivante : http://projecttincan.com/tincan.xsd.

Lancement de contenu public

Vous devez lancer le contenu Articulate à l'aide de la méthode décrite dans le document Intégrer un LRS XAPI dans un LMS. Le contenu Articulate peut être hébergé dans le LMS ou sur un site externe. Par défaut, le fichier tincan.xml publié sera configuré pour être lancé localement. Pour lancer du contenu Articulate, utilisez la page définie dans la balise de lancement de l'activité du module :

<activity id="61XkSYC1ht2_course_id" type="course">

<name lang="und">Titre du cours</name>

<description lang="und">Description du cours</description>

<launch lang="und">index_lms.html</launch>

</activity>

Vous devez ajouter une chaîne de requête à l'URL qui contient les informations requises pour suivre le module. Les valeurs requises incluent le point de terminaison XAPI (endpoint), le jeton d'autorisation (authentification) et les informations de l'apprenant (acteur).

La chaîne de requête doit également inclure l'ID d'activité (activity_id) et l'enregistrement (enregistrement) si l'implémentation LMS nécessite ces valeurs lors de la réception de demandes provenant du contenu. (Les cours Rise 360 n'ont pas besoin d'activity_id ou d'inscription.)

Voici un exemple de lien de lancement avec sauts de ligne et sans encodage URL pour plus de lisibilité :

http://my.lms.com/TCActivityProvider/index_lms.html

? point de terminaison = http://my.lms.com/lrs/endpoint/

& authentification = Basic OJFJMGY4NTYXNZUWOGI4YWY0NJFKNZU5MWUXMZE1ZGQ1

& actor = {"name » : ["Premier dernier"], « mbox » : ["mailto : firstlast@mycompany.com «]}

& activity_id =61xKSYC1HT2_Course_ID

& enregistrement = 760e3480-ba55-4991-94b0-01820dbd23a2

Un lien de lancement correctement codé par URL ressemblera à ce qui suit (sauts de ligne ajoutés pour plus de lisibilité) :

http://my.lms.com/TCActivityProvider/index_lms.html

? endpoint =HTTP%3A%2F%2fmy.lms.com%2FLRS%2Fendpoint%2F

& authentification = Basic OJFJMGY4NTYXNZUWOGI4YWY0NJFKNZU5MWUXMZE1ZGQ1

& acteur =%7B%22Name% 22% 3A% 20 % 5B%22 Premier%20Dernier% 22% 5D%2C% 20% 22mbox
 % 22 % 3A% 20% 5B%22 Mailà%3AFirstLast%40mycompany.com% 22% 5D%7D

& activity_id =61xKSYC1HT2_Course_ID

& enregistrement = 760e3480-ba55-4991-94b0-01820dbd23a2

Vous pouvez également ajouter des paramètres personnalisés à la chaîne de requête du lien de lancement. Tous les paramètres supplémentaires seront repris lorsque le contenu signale des déclarations au LMS.

Communication

Articulate content signale les instructions au point de terminaison XAPI, comme décrit dans la section Demandes d'origine croisée dans Internet Explorer dans XAPI. Pour résumer, si le point de terminaison est http://mycompany.com/TCAPI/endpoint/, toutes les instructions seront publiées dans les instructions http://mycompany.com/TCAPI/endpoint/ ? StatementId=. Tous les en-têtes requis seront ajoutés aux données de la demande en tant que paramètres de formulaire délimités par « & ». Le contenu JSON sera également codé et transmis dans le paramètre nommé « content ». Toutes les déclarations seront signalées de cette manière, quel que soit le navigateur ou la plateforme.

Articulate content prend en charge la reprise du contenu à partir de l'endroit où un utilisateur s'est arrêté. Les données d'état sont stockées et récupérées en publiant des demandes sur http://mycompany.com/TCAPI/endpoint/ activités/état ? method= [MÉTHODE REQUEST]. La valeur de [REQUEST METHOD] sera remplacée par GET lors de la récupération des données d'état et PUT lors du stockage des données d'état. Les en-têtes et le contenu seront envoyés comme décrit ci-dessus. Pour plus d'informations sur le stockage et la récupération des données d'état, reportez-vous à la section État dans XAPI.

Exemples de métadonnées et de données de déclaration par type de question

Vous trouverez ci-dessous quelques exemples de définitions d'activité situés dans le fichier tincan.xml publié Articulate. Après chaque description d'activité se trouve un exemple d'déclaration JSON qui sera publié sur le point de terminaison XAPI pour l'activité précédemment définie.

choix multiple

Métadonnées

<activity id="5jIOVMY3lI7.a05ae619-d0e3-4755-9cf0-c944c8861581" type="cmi.interaction">

<name lang="und">Qu'est-ce que c'est la troisième planète du Soleil</name>

<description lang="und">Qu'est-ce que c'est la troisième planète du Soleil</description>

<interactionType>choix</interactionType>

<correctResponsePatterns>

<correctResponsePattern>Choice_5 UTO T0BW3SC</correctResponsePattern>

</correctResponsePatterns>

<choices>

<component>

<id>Choice_5 UTO T0BW3SC</id>

<description lang="und">Terre</description>

</component>

<component>

<id>Choice_5 UBSA 57 Store</id>

<description lang="und">Vénus</description>

</component>

<component>

<id>Choice_6 pi 1 RxQY1 kK</id>

<description lang="und">Mars</description>

</component>

</choices>

</activity>

Déclaration JSON

{

« résultat » : {

« succès » : vrai,

« response » :"choice_5utoT0BW3SC »,

« score » : {

« brut » : 10

}

},

« contexte » : {

« Activités contextuelles » : {

« regroupement » : {

« id » :"6x9US05RLUB_COURSE_ID »

},

« parent » : {

« id » :"5CV16Q9HG8Q »

}

},

« enregistrement » :"cd471f87-a842-4929-87e9-fde6a5360b8b »

},

« acteur » : {

« Type d'objet » :"Personne »,

« mbox » : [

« mailto : myname@mycompany.com »

],

« nom » : [

« Mon prénom MyLastName »

]

},

« verbe » :"répondu »,

« objet » : {

« id » :"5JIOVMY3LI7.A05AE619-D0E3-4755-9CF0-C944C8861581"

}

}

 

Réponses multiples

Métadonnées

<activity id="6Uo7vTiQ6UT.675caf81-6862-461d-b401-76a9f043435a" type="cmi.interaction">

<name lang="und">Sélectionnez les planètes dans la liste ci-dessous. </name>

<description lang="und">Sélectionnez les planètes dans la liste ci-dessous. </description>

<interactionType>choix</interactionType>

<correctResponsePatterns>

<correctResponsePattern>Choice_5hmQRO1QC5O</correctResponsePattern>

<correctResponsePattern>Choice_6 dans JYTC</correctResponsePattern>

</correctResponsePatterns>

<choices>

<component>

<id>Choice_5hmQRO1QC5O</id>

<description lang="und">Mars</description>

</component>

<component>

<id>Choice_6 dans JYTC</id>

<description lang="und">Terre</description>

</component>

<component>

<id>Choice_6DT2QGKPJTN</id>

<description lang="und">Soleil</description>

</component>

<component>

<id>Choice_61GVRL VAXIJ</id>

<description lang="und">Lune</description>

</component>

</choices>

</activity>

Déclaration JSON

{

« résultat » : {

« succès » : vrai,

« response » :"choice_5hmQRO1QC5O [,] choice_6bijytcdook »,

« score » : {

« brut » : 10

}

},

« contexte » : {

« Activités contextuelles » : {

« regroupement » : {

« id » :"6x9US05RLUB_COURSE_ID »

},

« parent » : {

« id » :"5CV16Q9HG8Q »

}

},

« enregistrement » :"cd471f87-a842-4929-87e9-fde6a5360b8b »

},

« acteur » : {

« Type d'objet » :"Personne »,

« mbox » : [

« mailto : myname@mycompany.com »

],

« nom » : [

« Mon prénom MyLastName »

]

},

« verbe » :"répondu »,

« objet » : {

« id » :"6UO7VTIQ6UT.675 CAF81-6862-461D-B401-76A9F043435A »

}

}

Remplir les espaces blancs

Métadonnées

<activity id="6cRKIhEssyA.d7911223-2749-424f-bee8-e241f458bff3" type="cmi.interaction">

<name lang="und">Quel est le nom de la planète sur laquelle nous vivons ? </name>

<description lang="und">Quel est le nom de la planète sur laquelle nous vivons ? </description>

<interactionType>Remplissage</interactionType>

</activity>

Déclaration JSON

{

« résultat » : {

« succès » : vrai,

« réponse » :"Terre »,

« score » : {

« brut » : 10

}

},

« contexte » : {

« Activités contextuelles » : {

« regroupement » : {

« id » :"6x9US05RLUB_COURSE_ID »

},

« parent » : {

« id » :"5CV16Q9HG8Q »

}

},

« enregistrement » :"cd471f87-a842-4929-87e9-fde6a5360b8b »

},

« acteur » : {

« Type d'objet » :"Personne »,

« mbox » : [

« mailto : myname@mycompany.com »

],

« nom » : [

« Mon prénom MyLastName »

]

},

« verbe » :"répondu »,

« objet » : {

« id » :"6crkihessya.d7911223-2749-424F-BEE8-E241F458BFF3"

}

}

 

Correspondance

Métadonnées

<activity id="5cgcNZPuHSe.a7450fa0-c56b-4bbf-8716-30e987a55d4d" type="cmi.interaction">

<name lang="und">Faites correspondre les planètes à leurs descriptions. </name>

<description lang="und">Faites correspondre les planètes à leurs descriptions. </description>

<interactionType>correspondant</interactionType>

<correctResponsePatterns>

<correctResponsePattern>Statement_6MoqizokyWP [.] Choice_6DXW50J12QB</correctResponsePattern>

<correctResponsePattern>Statement_6x5PMAVJIQB [.] Choice_5BJMCPSQBU1</correctResponsePattern>

<correctResponsePattern>Statement_5RBWGPPX93B [.] Choice_6JKGVBQYQ5Y</correctResponsePattern>

</correctResponsePatterns>

<source>

<component>

<id>Statement_6 Moqizokywp</id>

<description lang="und">La planète sur laquelle nous vivons</description>

</component>

<component>

<id>Statement_6x5PMAVJIQB</id>

<description lang="und">La planète la plus proche de la Terre</description>

</component>

<component>

<id>Statement_5RBWGPPX93B</id>

<description lang="und">La planète la plus proche du Soleil</description>

</component>

</source>

<target>

<component>

<id>Choice_6DXW50J12QB</id>

<description lang="und">Terre</description>

</component>

<component>

<id>Choice_5BJMCPSQBU1</id>

<description lang="und">Mars</description>

</component>

<component>

<id>Choice_6JKGVBQYQ5Y</id>

<description lang="und">Mercure</description>

</component>

</target>

</activity>

 

Déclaration JSON

{

« résultat » : {

« succès » : vrai,

« response » :"Statement_6MoqizokyWP [.] Choice_6DXW50J12QB [,] Statement_6x5PMAvjiQB [.]
Choice_5BJMCPSQBU1 [,] Statement_5RBWGPPX93B [.] Choice_6JKGVBQYQ5Y »,

« score » : {

« brut » : 10

}

},

« contexte » : {

« Activités contextuelles » : {

« regroupement » : {

« id » :"6x9US05RLUB_COURSE_ID »

},

« parent » : {

« id » :"5CV16Q9HG8Q »

}

},

« enregistrement » :"cd471f87-a842-4929-87e9-fde6a5360b8b »

},

« acteur » : {

« Type d'objet » :"Personne »,

« mbox » : [

« mailto : myname@mycompany.com »

],

« nom » : [

« Mon prénom MyLastName »

]

},

« verbe » :"répondu »,

« objet » : {

« id » : « 5cgcnzpuhse.A7450FA0-C56B-4BBF-8716-30E987A55D4D »

}

}

 

Séquence

Métadonnées

<activity id="6hoSx7vtpP4.6b284974-20f5-4f92-bf8b-12634c643277" type="cmi.interaction">

<name lang="und">Placez les planètes en ordre en fonction de leur distance moyenne par rapport au Soleil. </name>

<description lang="und">Placez les planètes en ordre en fonction de leur distance moyenne par rapport au Soleil. </description>

<interactionType>séquençage</interactionType>

<correctResponsePatterns>

<correctResponsePattern>Choice_6P5EWTR0AV5</correctResponsePattern>

<correctResponsePattern>Choice_5DMHLA2LVHz</correctResponsePattern>

<correctResponsePattern>Choice_61DFQPOLBPV</correctResponsePattern>

<correctResponsePattern>Choice_64 ou 8 QRYNQJ</correctResponsePattern>

<correctResponsePattern>Choice_5RVV1 NAW M35</correctResponsePattern>

<correctResponsePattern>Choice_5AH0IA79 VPZ</correctResponsePattern>

<correctResponsePattern>Choice_5L5S2DN WEZC</correctResponsePattern>

<correctResponsePattern>Choice_6ahafxSHDAF</correctResponsePattern>

</correctResponsePatterns>

<choices>

<component>

<id>Choice_6P5EWTR0AV5</id>

<description lang="und">Mercure</description>

</component>

<component>

<id>Choice_5DMHLA2LVHz</id>

<description lang="und">Vénus</description>

</component>

<component>

<id>Choice_61DFQPOLBPV</id>

<description lang="und">Terre</description>

</component>

<component>

<id>Choice_64 ou 8 QRYNQJ</id>

<description lang="und">Mars</description>

</component>

<component>

<id>Choice_5RVV1 NAW M35</id>

<description lang="und">Jupiter</description>

</component>

<component>

<id>Choice_5AH0IA79 VPZ</id>

<description lang="und">Saturne</description>

</component>

<component>

<id>Choice_5L5S2DN WEZC</id>

<description lang="und">Uranus</description>

</component>

<component>

<id>Choice_6ahafxSHDAF</id>

<description lang="und">Neptune</description>

</component>

</choices>

</activity>

 

Déclaration JSON

{

« résultat » : {

« succès » : vrai,

« response » :"choice_6P5EWTR0AV5 [,] Choice_5DMHLA2LVHz [,] Choice_61dfqpolBPV [,] choice_64 ou 8QRYNQJ [,]
Choice_5Rvvv1NAWM35 [,] choice_5AH0IA79VPZ [,] choice_5AH0IA79VPZ [,] choice_5AH0IA79VPZ [,] choice_5AH0IA79VPZ [,] choice_5AH0IA79VPZ [,] 5L5S2DNWEZC [,] Choice_6ahafxSHDAF »,

« score » : {

« brut » : 10

}

},

« contexte » : {

« Activités contextuelles » : {

« regroupement » : {

« id » :"6x9US05RLUB_COURSE_ID »

},

« parent » : {

« id » :"5CV16Q9HG8Q »

}

},

« enregistrement » :"cd471f87-a842-4929-87e9-fde6a5360b8b »

},

« acteur » : {

« Type d'objet » :"Personne »,

« mbox » : [

« mailto : myname@mycompany.com »

],

« nom » : [

« Mon prénom MyLastName »

]

},

« verbe » :"répondu »,

« objet » : {

« id » :"6HOSX7VTPP4.6B284974-20F5-4F92-BF8B-12634C643277"

}

}

 

Numérique

Métadonnées

<activity id="5wgwpXGIaWk.8fbebd0a-0127-4a10-809e-6e3b40fd91e7" type="cmi.interaction">

<name lang="und">Combien y a-t-il de planètes dans notre système solaire ? (Pluton non compris)</name>

<description lang="und">Combien y a-t-il de planètes dans notre système solaire ? (Pluton non compris)</description>

<interactionType>numérique</interactionType>

</activity>

 

Déclaration JSON

{

« résultat » : {

« succès » : vrai,

« réponse » :"8",

« score » : {

« brut » : 10

}

},

« contexte » : {

« Activités contextuelles » : {

« regroupement » : {

« id » :"6x9US05RLUB_COURSE_ID »

},

« parent » : {

« id » :"5CV16Q9HG8Q »

}

},

« enregistrement » :"cd471f87-a842-4929-87e9-fde6a5360b8b »

},

« acteur » : {

« Type d'objet » :"Personne »,

« mbox » : [

« mailto : myname@mycompany.com »

],

« nom » : [

« Mon prénom MyLastName »

]

},

« verbe » :"répondu »,

« objet » : {

« id » :"5WGWPXGIAWK.8FBEBD0A-0127-4A10-809E-6E3B40FD91E7"

}

}

 

Likert

Métadonnées

<activity id="5mAuWE6HMJX.86ebc142-18dd-4d75-af5f-269f604cfbd2.Statement_5xDTWOL4BBj" type="cmi.interaction">

<name lang="und">J'aimerais que Pluton soit toujours considéré comme une planète. </name>

<description lang="und">J'aimerais que Pluton soit toujours considéré comme une planète. </description>

<interactionType>likert</interactionType>

<scale>

<component>

<id>6 A0 S985 RUF 4</id>

<description lang="und">Tout à fait en désaccord</description>

</component>

<component>

<id>6 ms x H 59 UUS 7</id>

<description lang="und">En désaccord</description>

</component>

<component>

<id>5 Dez JQ4QSKB</id>

<description lang="und">Neutre</description>

</component>

<component>

<id>6 HSI ou 0 LFV</id>

<description lang="und">D'accord</description>

</component>

<component>

<id>5 x ZBlute 5 W B</id>

<description lang="und">Fortement d'accord</description>

</component>

</scale>

</activity>

 

Déclaration JSON

{

« résultat » : {

« réponse » :"5DEZJQ4QSKB »

},

« contexte » : {

« Activités contextuelles » : {

« regroupement » : {

« id » :"6x9US05RLUB_COURSE_ID »

},

« parent » : {

« id » :"5CV16Q9HG8Q »

}

},

« enregistrement » :"cd471f87-a842-4929-87e9-fde6a5360b8b »

},

« acteur » : {

« Type d'objet » :"Personne »,

« mbox » : [

« mailto : myname@mycompany.com »

],

« nom » : [

« Mon prénom MyLastName »

]

},

« verbe » :"répondu »,

« objet » : {

« id » :"5MAUWE6HMJX.86EBC142-18DD-4D75-AF5F-269F604CFBD2.Statement_5XDTWOL4BBJ »

}

}