Exports LMS (SCORM 1.2 et xAPI)
Lancer un jeu forké depuis votre plateforme de formation avec un paquet SCORM 1.2, et envoyer les résultats à votre LRS en xAPI.
Deux façons d'intégrer les résultats Maketools à votre écosystème de formation, incluses dans les offres Pro et Enterprise :
| Paquet SCORM 1.2 | Connecteur xAPI | |
|---|---|---|
| Ce que c'est | Un .zip à importer dans votre LMS |
Des statements envoyés à votre LRS |
| Mis en place par | Éditeurs et plus (page Releases d'un fork) | Propriétaires et admins (Rapports, connecteur LMS) |
| Ce que reçoit le LMS | Score et statut de la tentative de l'apprenant | Chaque partie terminée, et en option chaque réponse |
| Identité de l'apprenant | Gardée par votre LMS | Pseudonyme ou email, selon votre mode de reporting |
Paquet SCORM 1.2
Fonctionnement
Le paquet ne contient pas le jeu : il contient un petit lanceur, exécuté dans votre LMS, et
un jeton de lancement signé. Quand l'apprenant clique sur Lancer le jeu, le lanceur ouvre le
jeu hébergé dans une nouvelle fenêtre. Le jeu n'est jamais intégré dans un cadre : notre
politique de sécurité l'interdit (frame-ancestors 'none'), ce qui protège vos apprenants du
détournement de clic.
En fin de partie, la fenêtre du jeu renvoie au lanceur le résultat calculé par notre serveur, et le lanceur l'écrit dans le LMS :
| Champ SCORM | Valeur |
|---|---|
cmi.core.score.raw |
Score en %, recalculé par le serveur (min 0, max 100) |
cmi.core.lesson_status |
passed ou failed selon le score de réussite de la release déployée ; completed si le jeu n'en a pas |
cmi.core.session_time |
Durée de la partie |
Le lanceur appelle ensuite LMSCommit et LMSFinish. Le score de réussite est aussi inscrit
dans le manifeste (adlcp:masteryscore) : votre LMS peut calculer le statut lui-même.
Les deux côtés vérifient la provenance des messages : le lanceur n'accepte que notre origine, et le jeu ne répond qu'à la fenêtre qui l'a ouvert. Le jeton de lancement est propre au fork et au paquet, et expire au bout de 365 jours.
Exporter un paquet
- Déployez une release de votre fork.
- Donnez-lui un accès Organisation ou Restreint : l'export SCORM est réservé aux jeux privés (voir plus bas).
- Sur la page Releases du fork, cliquez sur Exporter pour un LMS (SCORM 1.2), choisissez la langue du paquet parmi celles de la release déployée, et importez le zip dans votre LMS comme activité SCORM 1.2.
Un paquet ouvre le jeu dans une seule langue : pour proposer le jeu en plusieurs langues dans votre LMS, exportez un paquet par langue (voir Traduire un fork). Si la release déployée plus tard ne propose plus cette langue, le jeu s'ouvre dans la langue source du fork.
Chaque paquet est listé sur la même page, avec sa langue. Révoquez un paquet pour l'arrêter aussitôt : son lanceur ne peut plus ouvrir le jeu. Changer l'adresse de l'organisation ou du fork rend les paquets existants inutilisables : exportez-en un nouveau.
Identité de l'apprenant et politique d'accès
Le SCORM est réservé aux jeux privés (accès Organisation ou Restreint) : chaque apprenant joue en membre connecté de votre organisation. Il se connecte à Maketools dans la fenêtre du jeu, sa partie apparaît aussi dans vos rapports Maketools, et il compte comme un siège de votre offre, comme tout membre actif. Un jeu Public ne s'exporte pas, et si vous passez en Public un jeu déjà exporté, ses paquets cessent d'ouvrir le jeu jusqu'à ce que vous le repassiez en privé.
Maketools ne crée pas de compte à partir de l'identifiant d'apprenant du LMS
(cmi.core.student_id) : c'est votre LMS qui garde le lien entre l'apprenant et son résultat.
Conseil : Organisation avec le SSO de votre entreprise, pour que l'apprenant retrouve le compte qu'il utilise déjà. Avec une connexion Google, Microsoft ou SSO, le navigateur quitte la fenêtre du jeu pour votre fournisseur d'identité et le lien avec le LMS est perdu : demandez aux apprenants de se connecter une première fois à Maketools avant leur premier lancement, puis de relancer depuis le LMS.
Limites
- Les fenêtres doivent être autorisées pour votre LMS. Le lanceur le signale si la fenêtre est bloquée.
- Un résultat par lancement : la première partie terminée est transmise, puis la tentative LMS est close. Rejouer dans la même fenêtre ne change pas le résultat LMS.
- Gardez la fenêtre du jeu ouverte jusqu'à l'écran de fin.
Connecteur xAPI
Configuration
Les propriétaires et admins ouvrent Rapports, puis Connecteur LMS :
- Saisissez l'endpoint de votre LRS (HTTPS, par exemple
https://lrs.example.com/xapi), puis la clé et le secret de son authentification Basic. Ils sont chiffrés au repos et ne sont plus jamais affichés (seuls les 4 derniers caractères de la clé). Si vous changez ensuite l'endpoint pour un autre serveur (schéma, hôte ou port), ressaisissez la clé et le secret : les identifiants enregistrés ne partent jamais vers un autre serveur. - Choisissez d'envoyer ou non un statement answered par item.
- Enregistrez, puis Testez la connexion. Activez le connecteur quand le test réussit.
Chaque modification est inscrite au journal d'audit. Désactiver ou supprimer le connecteur vide la file d'envoi : rien ne part sans votre accord.
Ce qui est envoyé
Après chaque partie terminée d'un fork déployé (jamais une partie de test de l'éditeur, jamais un jeu public du catalogue) :
| Verbe | Quand |
|---|---|
http://adlnet.gov/expapi/verbs/completed |
Toujours, avec le score |
http://adlnet.gov/expapi/verbs/passed ou …/failed |
Selon le score de réussite de la release |
http://adlnet.gov/expapi/verbs/answered |
Un par item, si l'option est activée ; result.success noté par le serveur |
- Acteur : en mode pseudonyme (par défaut),
mbox_sha1sumd'une adresse dérivée du pseudonyme du joueur (jamais de son email réel) et le nomPlayer-XXXX; en mode nominatif,mbox= email du joueur et son nom affiché, pour les seuls membres actuels de votre organisation (les autres joueurs gardent l'acteur pseudonyme) ; pour un joueur anonyme d'un fork public, un compteanonymous-<id de la partie>. - Activités : le fork (
<site>/xapi/activities/forks/<forkId>, type assessment), le jeu danscontext.contextActivities.category(<site>/xapi/activities/games/<gameId>), et chaque item sous le fork (…/forks/<forkId>/items/<itemId>). Ces IRI sont stables. Les noms (definition.name) sont donnés dans chaque langue proposée par la release jouée. - Résultat :
score(raw,min,max,scaled),completion,success,duration(ISO 8601). - Contexte :
registration= id de la partie (regroupe les statements d'une tentative),platform=Maketools, et le bilan par compétence dans l'extension<site>/xapi/extensions/skills. - Version : xAPI 1.0.3.
Envoi
Les statements partent juste après la partie, par lots. Si le LRS ne répond pas, ils sont renvoyés après 1, 2, 4… minutes, jusqu'à 6 heures entre deux essais, 10 essais au total ; ils passent ensuite en échec et sont supprimés au bout de 30 jours. La page affiche les statements en attente et en échec. Chaque statement a un identifiant déterministe : un renvoi ne crée jamais de doublon dans votre LRS.
L'envoi est plafonné par organisation à 10 000 statements par heure (environ 300 apprenants qui terminent dans la même heure avec les réponses détaillées). Les statements au-delà ne sont pas perdus : ils attendent dans la file et partent dès que le budget horaire le permet. La file elle-même contient au plus 20 000 statements en attente ; pleine (en général, un LRS injoignable depuis des heures), elle n'accepte plus les statements des nouvelles parties tant qu'elle ne s'est pas vidée. Notre équipe est alertée dans les deux cas.
Pas à pas dans les plateformes courantes
Les menus changent d'une version à l'autre ; voici la marche à suivre générique.
- SCORM Cloud : ajoutez le zip à votre bibliothèque comme nouveau contenu, lancez-le pour vérifier le résultat. Pour xAPI, créez des identifiants de fournisseur d'activités sur son endpoint LRS, puis collez endpoint, clé et secret dans Maketools.
- Moodle : ajoutez à un cours une activité de type Paquetage SCORM et importez le zip. Moodle lit le score et le statut. Pour xAPI, reliez Maketools au LRS que votre organisation utilise avec Moodle.
- 360Learning (ou tout LMS qui importe du SCORM 1.2) : créez un module de cours à partir d'un paquet SCORM et importez le zip. Pour xAPI, utilisez l'endpoint LRS et les identifiants fournis par votre plateforme, si elle en propose un.
Protection des données
Le LRS et le LMS sont des tiers choisis par votre organisation : elle décide de ce qui est envoyé et reste responsable de ces données chez eux. En mode pseudonyme, aucun nom ni email ne sort de Maketools ; en mode nominatif, l'email et le nom des joueurs sont envoyés à votre LRS. Voir Confidentialité des joueurs dans les rapports.
Modifier cette page sur GitHub (s'ouvre dans un nouvel onglet)