Manuel du développeur Adobe Learning Manager
Vue d’ensemble
Adobe Learning Manager fournit des API RESTful qui permettent aux développeurs d’intégrer et de personnaliser efficacement des applications ou des workflows. Le manuel du développeur fournit des conseils sur l’utilisation de ces API, couvrant des sujets tels que l’authentification, les modèles de données et l’intégration avec d’autres applications. En outre, ce guide documentation de référence API aide les développeurs à créer des applications externes ou des workflows principaux qui interagissent avec diverses fonctionnalités de Adobe Learning Manager, notamment la création de cours, le suivi de la progression des élèves, le mappage des compétences, la certification, la ludification et les transcriptions.
Ce manuel traite des points suivants :
- Authentification OAuth2.0
- Modèles d’objet API
- Inclure, champs et autres paramètres
- Cas d’utilisation réels
Scénarios d’utilisation de l’API
Les développeurs peuvent utiliser les API Learning Manager pour améliorer ou intégrer Learning Manager à d’autres applications d’entreprise. Vous pouvez créer des applications web, de bureau ou mobiles à l’aide de n’importe quelle technologie. Les développeurs peuvent accéder aux données de Learning Manager, mais vous pouvez contrôler où et comment l’application est utilisée.
Authentification à l’aide d’OAuth 2.0
Pour accéder aux API Adobe Learning Manager en toute sécurité, vous devez vous authentifier à l’aide du mécanisme OAuth 2.0 de Adobe Learning Manager. Ce processus comprend l’enregistrement de votre application, la génération d’un code d’autorisation, son échange contre un jeton d’actualisation, et enfin l’utilisation du jeton d’actualisation pour obtenir un jeton d’accès.
Enregistrement d’une application
Intégrez Adobe Learning Manager à des applications externes pour une plus grande polyvalence. Les étapes impliquent l’accès à l’interface Integration Administrator, l’enregistrement de l’application et l’obtention de l’ID client et du secret. Générez des jetons d’authentification OAuth 2.0, y compris des jetons d’autorisation, d’actualisation et d’accès, à partir de Adobe Learning Manager. Utilisez le flux OAuth 2.0 pour authentifier et autoriser votre application en toute sécurité. Le jeton d’accès a une validité de sept jours.
-
Connectez-vous à Adobe Learning Manager en tant qu’administrateur d’intégration.
-
Sélectionnez Applications dans le volet de gauche.
-
Sélectionnez S'inscrire et ajoutez les informations suivantes :
-
Nom de l'application : saisissez le nom de votre application (50 caractères maximum).
-
URL : URL officielle de votre entreprise ou application. Utilisé pour l’identification et la référence.
-
Rediriger les domaines : spécifiez les domaines (par exemple, http://learningmanager.adobe.com) vers lesquels Adobe Learning Manager peut rediriger après autorisation. Vous pouvez spécifier plusieurs URL valides.
-
Description : brève description de l'action de l'application.
-
Domaines : sélectionnez l’une des six options disponibles pour définir la portée de votre application. En fonction de votre choix mentionné ici, les points de terminaison de l’API Learning Manager sont accessibles pour votre application. Par exemple, si vous avez choisi Accès en lecture au rôle d’élève, tous les points de terminaison de l’API de l’élève Learning Manager sont accessibles en lecture seule à votre application.
- Accès en lecture/écriture au rôle d’administrateur : permet à l’application d’accéder aux données ou de les modifier en tant qu’administrateur.
- Accès en lecture/écriture au rôle d’élève : permet à l’application d’accéder aux données des élèves ou de les modifier.
- Accès en lecture/écriture xAPI : permet à l’application d’accéder aux instructions Experience API (xAPI) et de les envoyer.
-
Pour ce compte uniquement ?
- Oui : si vous choisissez Oui, l'application n'est pas visible pour les autres administrateurs de compte.
- Non : si vous choisissez Non, les autres administrateurs de compte peuvent également accéder à cette application, mais ils doivent utiliser l’id de l’application pour y accéder. L’ID d’application est généré et affiché en mode de modification d’application Learning Manager.
-
-
Sélectionnez Enregistrer pour enregistrer l'application.
- Une fois l’application enregistrée, elle est disponible dans la liste des applications créées dans le compte. Sélectionnez l’application et vous verrez les éléments suivants en plus des champs saisis précédemment :
- ID de l’application : il s’agit de l’ID client. Cet ID indique à Adobe Learning Manager l’application qui demande l’accès. Il est inclus dans les demandes d’API pour identifier l’application.
- Secret d’application : permet d’authentifier votre application et de vérifier son identité lors des étapes d’exchange du jeton (par exemple, lors de la demande d’un jeton d’actualisation ou d’un jeton d’accès).
Obtenir un jeton d’accès
Obtention du code d’autorisation
Après avoir obtenu l’ID client et la clé secrète client, utilisez-les pour demander un jeton d’accès, qui est utilisé pour authentifier les appels API.
Pour commencer le flux de code d’autorisation, ajoutez l’URL suivante dans un navigateur :
GET https://learningmanager.adobe.com/oauth/o/authorize?client_id=<Enter your clientId>&redirect_uri=<Enter a url to redirect to>&state=<Any String data>&scope=<one or more comma separated scopes>&response_type=CODE
Une fois que l’utilisateur a autorisé l’application, Adobe Learning Manager redirige vers l’URI_redirection spécifiée avec un paramètre de requête ajouté :
https://yourapp.com/callback?code=abc123xyz
Un code de paramètre est ajouté avec l’URI de redirection.
Obtenir le jeton d’actualisation à partir du code
Après avoir obtenu le code, utilisez n’importe quel outil API et ajoutez la demande de POST suivante :
https://learningmanager.adobe.com/oauth/token
Corps de la demande (x-www-form-urlencoded) :
grant_type=authorization_code
&code=abc123xyz
&client_id=<your_client_id>
&client_secret=<your_client_secret>
&redirect_uri=<your_redirect_url>
Réponse
{
"access_token": "eyJhbGciOiJIUzI1...",
"refresh_token": "xTjlfz0jCk6gF1...",
"expires_in": 604800,
"token_type": "Bearer"
}
Utilisez access_token dans l’en-tête d’autorisation pour effectuer des demandes d’API authentifiées.
Utilisation du jeton d’accès dans un appel API
Vérifiez le jeton d’accès à l’aide des éléments suivants :
GET https://learningmanager.adobe.com/oauth/token/check?access_token=<access_token>
Un jeton d’accès est valide pendant sept jours. Après sept jours, vous devez générer un nouveau jeton d’accès à l’aide du jeton d’actualisation. Si vous générez un nouveau jeton d’accès à partir du jeton d’actualisation alors qu’un jeton d’accès existant est toujours valide, le jeton existant est renvoyé.
Obtenir des jetons d’accès pour le test et le développement
Lorsque vous travaillez avec des API Adobe Learning Manager, les développeurs ont besoin d’un jeton d’accès OAuth 2.0 valide pour authentifier les demandes d’API. La génération de ce jeton via le flux OAuth standard peut être complexe et prendre du temps, en particulier pour des tests, un apprentissage ou un développement rapides. Adobe Learning Manager fournit un outil de génération de jeton pour simplifier ce processus.
Cet outil est idéal pendant :
-
Versions de validation de principe
-
Développement à un stade précoce
-
Résolution des problèmes d’intégration d’API
Ces jetons sont destinés uniquement à votre usage personnel pendant les phases de développement et de débogage. Gardez à l’esprit que les jetons de test accordent l’accès à vos données Adobe Learning Manager, il est donc essentiel de les gérer en toute sécurité. Ne partagez jamais vos jetons de test avec d’autres personnes, ne les utilisez jamais dans des applications de production et ne les incluez jamais dans des référentiels de code publics. Traitez-les comme des mots de passe pour assurer la sécurité de votre compte et de vos données.
-
Connectez-vous à Adobe Learning Manager en tant qu’administrateur d’intégration.
-
Sélectionnez Ressources pour le développeur, puis Sélectionner des jetons d’accès pour le test et le développement.
-
Tapez l'ID client que vous avez obtenu après la création d'une application pour obtenir le code OAuth. Sélectionnez ensuite Envoyer.
-
Ajoutez l'ID client et le secret client pour obtenir le jeton d'actualisation. Sélectionnez ensuite Envoyer. OAuth est pré-rempli à partir de l’étape précédente.
-
Ajoutez l’ID client et le secret client pour obtenir le jeton d’accès. Sélectionnez ensuite Envoyer.
-
Ajoutez le jeton d’accès et sélectionnez Envoyer pour obtenir les détails du jeton d’accès.
Après avoir sélectionné Envoyer, le jeton d’accès est vérifié et vous recevrez l’objet JSON suivant :
{
"access_token": "access token",
"refresh_token": "refresh token",
"user_role": "admin",
"account_id": "1234",
"user_id": "123456",
"expires_in": 604800
}
Comme précédemment, le jeton d’accès pour les tests expire dans sept jours.
Utiliser un outil API pour tester les points de terminaison
Bien que vous puissiez utiliser n’importe quel outil de test d’API tiers, nous utiliserons Postman pour tester les points de terminaison. Les exemples de ce document utilisent Postman pour tester les points de terminaison.
-
Ouvrez Postman et créez une nouvelle demande.
-
Sélectionnez l’onglet Autorisation.
-
Définissez le type d’authentification sur Jeton du porteur.
-
Collez le jeton d’accès que vous avez obtenu à la section précédente, dans le champ Jeton.
-
Ajoutez les éléments suivants dans l’onglet En-têtes.
- Clé : Accepter
- Valeur : application/json
-
Entrez votre point de terminaison API dans le champ URL. Exemple : https://learningmanager.adobe.com/learningManager/api/v2/users
Consultez Référence de l'API Adobe Learning Manager pour plus d'informations. -
Sélectionnez Envoyer pour effectuer la demande API.
Types d’API
API d’administration
Les API d’administration de Adobe Learning Manager permettent aux administrateurs d’automatiser et de gérer les opérations d’apprentissage à grande échelle.
À l’aide des API d’administration, les développeurs peuvent :
- Gérer les utilisateurs et les groupes : créez, mettez à jour et supprimez des utilisateurs ou attribuez-les à des groupes.
- Inscrire des élèves : automatisez l’inscription aux cours, parcours d’apprentissage ou certifications.
- Suivre la progression de l’élève : récupérez la progression du cours/module, les scores du quiz et l’état d’achèvement.
- Générer des rapports : accédez aux données sur l’activité, l’engagement et les performances de l’élève.
- Gérer le contenu : créez et organisez des cours et des objets d’apprentissage.
Voir Référence API Adobe Learning Manager pour plus d'informations.
API des élèves
Les API de l’élève sont conçues pour les utilisateurs authentifiés (élèves) et vous permettent d’accéder à des informations spécifiques à l’élève. Ces API permettent d’effectuer les tâches suivantes :
- Accès aux cours et à la progression d’un élève
- Récupération des badges ou des certifications obtenues
- Mise à jour des informations de profil de l’élève
- Afficher les compétences associées aux cours terminés
Points clés :
- Ces API nécessitent un jeton utilisateur authentifié, garantissant la sécurité et la confidentialité des données.
- Les API sont destinées aux scénarios dans lesquels les utilisateurs sont entièrement enregistrés et connectés, plutôt que des utilisateurs anonymes ou partagés.
Voir Référence API Adobe Learning Manager pour plus d'informations.
Conception d’API et paramètres courants
Les API permettent aux développeurs d’accéder aux ressources clés de Learning Manager, telles que les utilisateurs, les cours, les compétences, les certifications et les programmes d’apprentissage. Il suit les principes REST, en utilisant des méthodes HTTP (GET, POST, PUT, DELETE) pour les opérations de données.
Paramètres courants
Voici une brève explication de chacun d’eux :
inclure
Les API Adobe Learning Manager peuvent être utilisées pour récupérer des informations utiles lors de la création d’une application personnalisée ou d’un LMS sans interface utilisateur. Les points de terminaison API peuvent en outre être inclus avec des paramètres « include » supplémentaires pour récupérer les informations supplémentaires qui sont en relation avec les données reçues par défaut. Ces relations sont des relations de modèle de données. Par exemple, lors d’un appel pour obtenir des détails d’utilisateur, vous recevrez les informations utilisateur et la relation de l’ID de responsable et de l’ID de compte Adobe Learning Manager. Avec le paramètre include, vous pouvez extraire des détails supplémentaires ainsi que les détails de l’utilisateur, tels que les détails de son responsable et les détails du compte Adobe Learning Manager de manière détaillée.
En bref, le paramètre include est utilisé dans les appels API pour récupérer les ressources associées (liées) avec la ressource principale dans une seule réponse. Cette fonctionnalité est utile lorsque vous souhaitez accéder à des données imbriquées ou dépendantes, telles que les modules d’un cours ou les compétences mappées à un élève, sans passer d’appels API distincts.
Principaux avantages :
- Réduit les appels d’API multiples : évite d’avoir à demander manuellement chaque ressource associée.
- Amélioration de l’efficacité : développement plus rapide, charge de serveur réduite et rendu plus rapide des données.
- Garantit la cohérence des données : récupère toutes les données associées dans un instantané cohérent.
Utilisation du paramètre include
Ajoutez le paramètre include à votre URL API et spécifiez les entités associées à inclure.
Chemins d’inclusion courants
Exemple 1
Récupérez les détails d’un utilisateur à l’aide du paramètre userID dans le point de terminaison.
https://learningmanager.adobe.com/primeapi/v2/users/<userID>
GET https://learningmanager.adobe.com/primeapi/v2/users/<userID>
Dans la réponse, vous pouvez voir que l'objet de données a une relation avec le compte et le responsable de l'utilisateur.
"relationships": {
"account": {
"data": {
"id": "1010",
"type": "account"
}
},
"manager": {
"data": {
"id": "3400476",
"type": "user"
}
}
}
En utilisant le paramètre include dans la demande, vous pouvez récupérer des informations détaillées sur le responsable comme indiqué ci-dessous :
GET https://learningmanager.adobe.com/primeapi/v2/users/<userid>?include=manager
Exemple 2
Pour récupérer les détails du cours, utilisez le paramètre include dans l'appel de point de terminaison. Le point de terminaison suivant obtient les informations de cours ainsi que ses relations.
GET https://learningmanager.adobe.com/primeapi/v2/learningObjects/<courseID>
Les relations sont affichées dans la réponse comme suit :
- instances
- compétences
- auteurs
"relationships": {
"authors": {
"data": [
{
"id": "3400468",
"type": "user"
}
]
},
"instances": {
"data": [
{
"id": "course:16444_31598",
"type": "learningObjectInstance"
}
]
},
"skills": {
"data": [
{
"id": "course:16444_1796",
"type": "learningObjectSkill"
},
{
"id": "course:16444_3103",
"type": "learningObjectSkill"
}
]
}
}
D’autres relations pourraient inclure (non présents dans la réponse ci-dessus) :
- prerequisiteLO
- objets d’apprentissage supplémentaires
- additionalResources
Pour obtenir des données détaillées sur les instances et les compétences, incluez « instances, compétences » dans le paramètre include.
GET https://learningmanager.adobe.com/primeapi/v2/learningObjects/<courseID>?include=instances,skills
Maintenant, par exemple, si vous voulez récupérer plus de données associées à l'instance de cours, telles que loResources (informations de module du cours), appliquez loResources en tant qu'inclusion imbriquée.
GET https://learningmanager.adobe.com/primeapi/v2/learningObjects/<courseID>?include=instances.loResources
En outre, combinez des compétences et des instances avec un include imbriqué.
GET https://learningmanager.adobe.com/primeapi/v2/learningObjects/<courseID>?include=instances,instances.loResources,skills
Autres filtres inclus
champs
Les attributs et les relations d’un objet API sont appelés Champs. Utilisez Fields comme paramètre dans les appels API pour récupérer des attributs spécifiques du modèle. Sans le paramètre Fields, l'appel API récupère tous les attributs disponibles.
Par exemple, dans l'appel d'API suivant, fields[skill]=name vous récupère l'attribut name du modèle de compétence seul.
GET https://learningmanager.adobe.com/primeapi/v2/users/3400490/userSkills/3400490_1796_1?include=skillLevel.skill&fields[skill]=name
pagination
La pagination d’API est une technique utilisée dans les API pour décomposer de grands ensembles de données en blocs plus petits et gérables, appelés pages, plutôt que de renvoyer l’ensemble des données dans une seule réponse.
La pagination réduit la charge du client et du serveur, limite la taille des réponses pour éviter les goulots d’étranglement sur le serveur ou permet d’afficher les données dans des tableaux ou des listes page par page.
Fonctionnement de la pagination dans les API Adobe Learning Manager
Les API Adobe Learning Manager prennent en charge la pagination via des paramètres tels que :
- page[limit] : nombre d'enregistrements par page.
- page[offset] : nombre d'enregistrements à ignorer.
- page[curseur] : pointeur vers le jeu de résultats suivant. Au lieu d’utiliser la pagination basée sur le décalage (qui ignore un certain nombre d’enregistrements), la pagination basée sur le curseur utilise un marqueur unique renvoyé par l’API pour récupérer la page de résultats suivante.
Voici comment utiliser la pagination dans les API :
page[limite]
Alors que https://learningmanager.adobe.com/primeapi/v2/users renvoie tous les utilisateurs et les informations associées dans un seul appel, l'utilisation de page[limit] limite le nombre de résultats à la valeur spécifiée.
Pour renvoyer uniquement cinq enregistrements d’utilisateur dans un seul appel, utilisez l’API suivante :
GET https://learningmanager.adobe.com/primeapi/v2/users?page[limit]=5
décalage de page[2}]
Utilisez cet appel API pour renvoyer trois enregistrements d’utilisateur, ignorer les cinq premiers et commencer à partir du sixième.
GET https://learningmanager.adobe.com/primeapi/v2/users?page[limit]=3&page[offset]=5
page[curseur]
-
Commencez par demander la première page avec une limite de 5.
code language-none GET https://learningmanager.adobe.com/primeapi/v2/users?page[limit]=5
-
Copiez la valeur du curseur dans links.next et utilisez-la dans la requête suivante :
code language-none "links": { "self": "https://learningmanager.adobe.com/primeapi/v2/users?page[limit]=5", "next": "https://learningmanager.adobe.com/primeapi/v2/users?page[limit]=5&page[cursor]=3400482" }
-
Envoyez la demande suivante :
code language-none GET https://learningmanager.adobe.com/primeapi/v2/users?page[limit]=5&page[cursor]=3400482
Cette action renvoie le jeu suivant de 10 enregistrements, en commençant après le dernier élément de la page précédente.
filtre
Le paramètre de filtre vous permet d’affiner les résultats de l’API en fonction d’une ou plusieurs valeurs de champ.
Les API Adobe Learning Manager fournissent différentes variations du paramètre de filtre pour affiner les réponses.
Voir Référence API Adobe Learning Manager pour plus d'informations.
Cet exemple montre comment filtrer les assistances à la tâche auxquelles un élève s'est inscrit à l'aide du point de terminaison avec le paramètre de filtre :
GET https://learningmanager.adobe.com/primeapi/v2/users/3400480/enrollments?filter.loTypes=jobAid
tri
Le paramètre sort permet de trier les résultats de l’API par ordre croissant ou décroissant en fonction d’un ou plusieurs champs.
Adobe Learning Manager propose différentes options de tri pour trier la réponse de l’API. Voir Référence API Adobe Learning Manager pour plus d'informations.
Dans l'exemple précédent, vous allez maintenant trier l'inscription de l'utilisateur aux programmes d'apprentissage par date d'inscription dans l'ordre croissant.
GET https://learningmanager.adobe.com/primeapi/v2/users/3400480/enrollments?filter.lotypes=learningProgram&sort=dateEnrolled
Présentation des modèles d’API
Les API Adobe Learning Manager permettent aux développeurs d’accéder aux objets Learning Manager en tant que ressources RESTful. Chaque point de terminaison de l’API représente une ressource. Il s’agit généralement d’une instance d’objet comme Badge ou un ensemble de ces objets. Les développeurs utilisent ensuite des verbes HTTP tels que PUT, GET, POST et DELETE pour effectuer les opérations CRUD sur ces objets (collections).
API et points de terminaison des élèves
Voici les points de terminaison clés de l’API pour travailler avec les données des élèves. Ces API guident les développeurs sur l'interaction avec les informations des élèves, le suivi de la progression, la gestion des inscriptions et la récupération du contenu du cours.
Récupérer les détails de tous les élèves
Récupérez les détails de l’élève (nom, adresse électronique, UUID, profil utilisateur, etc.). Utilisez l’API pour répertorier tous les élèves du compte.
GET https://learningmanager.adobe.com/primeapi/v2/users
Récupérer les détails d’un élève spécifique
Si vous souhaitez afficher le profil d’un élève par ID, utilisez l’API suivante pour passer un appel.
GET https://learningmanager.adobe.com/primeapi/v2/users/<userID>
Répertorier tous les cours, programmes d’apprentissage, assistances à la tâche et certifications
Récupérez les détails de tous les objets d’apprentissage dans lesquels l’élève est inscrit, a terminé ou a été activé par l’administrateur.
GET https://learningmanager.adobe.com/primeapi/v2/learningObjects
Obtention des détails d’un objet d’apprentissage spécifique
Obtenir des informations détaillées sur un objet d’apprentissage. Elle comprend la date de création, la date de publication, la date de mise à jour et d’autres informations.
GET https://learningmanager.adobe.com/primeapi/v2/learningObjects/<LearningObjectID>
Récupérer la liste des compétences liées aux cours
Afficher les compétences attribuées à tous les élèves du compte.
GET https://learningmanager.adobe.com/primeapi/v2/skills
Obtenir des informations sur le niveau de compétence et le badge
Vérifier les progrès des élèves dans les parcours d’apprentissage basés sur les compétences.
GET https://learningmanager.adobe.com/primeapi/v2/skills/<skillID>?include=levels
Liste de tous les badges créés pour un compte
Effectuez un appel vers le point de terminaison suivant pour récupérer une liste de tous les badges créés pour un compte dans une organisation.
GET https://learningmanager.adobe.com/primeapi/v2/badges
Récupération des informations d’un badge
Obtenir des informations détaillées sur un badge, notamment son nom, son URL (image) et son statut.
GET https://learningmanager.adobe.com/primeapi/v2/badges/<skillID>
Cela produit la réponse suivante :
{
"links": {
"self": "https://learningmanager.adobe.com/primeapi/v2/badges/499"
},
"data": {
"id": "499",
"type": "badge",
"attributes": {
"imageUrl": "https://cpcontentsdev.adobe.com/public/account/1010/accountassets/1010/badges/test_57a5ab00555a475a8fc6671562184dc9.png",
"name": "penguins",
"state": "Retired"
}
}
}
Autres exemples d’utilisation des API
Création d’un utilisateur
-
Utiliser le point de terminaison :
code language-none POST https://learningmanager.adobe.com/primeapi/v2/users
Traite les attributs du corps de l’API ou de la payload JSON pour générer un utilisateur, puis fournit à cet utilisateur l’ID utilisateur correspondant renseigné.
-
Utilisez la charge utile suivante comme corps :
code language-none { "data": { "type": "user", "attributes": { "email": "bob@example.com", "name": "Bob", "userType": "INTERNAL" } } }
Il existe trois attributs obligatoires :
- e-mail : ID de messagerie de l’utilisateur. Cette valeur doit être unique pour chaque utilisateur.
- name : Le nom de l'utilisateur.
- userType : actuellement, seuls les utilisateurs internes peuvent être ajoutés en utilisant ce point de terminaison. Le userType doit être « INTERNAL ».
Vous recevrez l’objet JSON suivant :
{
"links": {
"self": "https://learningmanager.adobe.com/primeapi/v2/users"
},
"data": {
"id": "13386404",
"type": "user",
"attributes": {
"avatarUrl": "https://cpcontents.adobe.com/public/images/default_user_avatar.svg",
"email": "bob@example.com",
"name": "Bob",
"pointsEarned": 0,
"pointsRedeemed": 0,
"preferredResolution": "AUTO",
"profile": "Employee",
"roles": [
"Learner"
],
"state": "ACTIVE",
"userType": "Internal",
"userUniqueId": "bob@example.com"
},
"relationships": {
"account": {
"data": {
"id": "1010",
"type": "account"
}
},
"manager": {
"data": {
"id": "3400468",
"type": "user"
}
}
}
}
}
Supprimer un utilisateur
-
Obtenez l’ID utilisateur de l’utilisateur que vous souhaitez supprimer.
code language-none GET https://learningmanager.adobe.com/primeapi/v2/users/<userID>
-
Ensuite, à l’aide de DELETE, effectuez l’appel suivant :
code language-none DELETE https://learningmanager.adobe.com/primeapi/v2/users/<userID>
Une réponse 204 s’affiche. Un code de réponse 204 indique le succès sans qu’aucun contenu ne soit renvoyé. Le serveur a traité la demande avec succès mais ne dispose d'aucune donnée à fournir au client.
Le statut de l'utilisateur est maintenant SUPPRIMÉ après que vous avez récupéré les détails de l'utilisateur.
Mettre à jour les détails de l’utilisateur
- Mettez à jour les détails d’utilisateur à l’aide de l’API v2. L’élève peut modifier la bio, l’uiLocale, la contentLocale et le fuseau horaire. Pour les grands comptes, il s’agit d’appels asynchrones. De nombreux autres attributs utilisateur peuvent être mis à jour à l’aide de ce point de terminaison d’API. Utilisez le point de terminaison /users/{id}, où id correspond à l’ID utilisateur de l’utilisateur dont les détails doivent être mis à jour.
PATCH https://learningmanager.adobe.com/primeapi/v2/users/<userID>
Ajoutez ce qui suit dans la payload de la demande de mise à jour de l'utilisateur avec l'ID <userID>
, à partir de la section précédente.
Modifiez n’importe quel champ de la payload.
{
"data": {
"id": "3400468",
"type": "user",
"attributes": {
"avatarUrl": "https://cpcontents.adobe.com/public/images/default_user_avatar.svg",
"binUserId": "3e6d571f-3956-44db-be69-8e458bde649f",
"bio": "Manager",
"contentLocale": "de-DE",
"email": "user@example.com",
"enrollOnClick": true,
"fields": {
"Web": "Web",
"newfororder": "newvalue",
"location": "New",
"test1": "b"
},
"gamificationEnabled": true,
"lastLoginDate": "2025-04-30T09:30:51.000Z",
"metadata": {
"level": "5",
"expertise": "java",
"sport": "tennis"
},
"name": "John Adams",
"pointsEarned": 8600,
"pointsRedeemed": 0,
"preferredResolution": "AUTO",
"profile": "Employee",
"roles": [
"Learner",
"Admin",
"Author",
"Instructor",
"Integration Admin",
"Manager"
],
"state": "ACTIVE",
"timeZoneCode": "213",
"uiLocale": "en-US",
"userType": "Internal",
"userUniqueId": "user@example.com"
},
"relationships": {
"account": {
"data": {
"id": "1010",
"type": "account"
}
}
}
}
}
Une fois l’appel passé, les détails de l’utilisateur sont mis à jour.
Création d’un profil externe
Un profil externe fait référence à un profil utilisateur créé pour des élèves externes, généralement des personnes qui ne font pas partie de la base d'utilisateurs interne de l'organisation. Ces élèves peuvent inclure des clients, des partenaires, des fournisseurs, des franchisés ou des entrepreneurs temporaires qui ont besoin d’accéder aux programmes de formation ou de certification proposés par l’organisation.
-
Utilisez le point d’entrée suivant :
code language-none POST https://learningmanager.adobe.com/primeapi/v2/externalProfiles
-
Utilisez la charge utile suivante comme corps :
{
"data": {
"type": "externalProfile",
"attributes": {
"name": "Jonas Albertson",
"expiry": "2027-12-31T18:29:59.000Z",
"managerEmail": "jonas@acme.com",
"seatLimit": 10
}
}
}
La payload possède les attributs suivants :
- name : Le nom de l'utilisateur externe.
- expiration : date d’expiration (au format ISO-8601) de l’enregistrement de l’utilisateur dans Adobe Learning Manager.
- managerEmail : adresse e-mail du responsable de l’utilisateur de l’organisation partenaire.
- seatLimit : nombre de sièges autorisés pour l’organisation partenaire.
Après avoir passé l’appel, vous obtenez la réponse suivante :
{
"links": {
"self": "https://learningmanager.adobe.com/primeapi/v2/externalProfiles"
},
"data": {
"id": "18805",
"type": "externalProfile",
"attributes": {
"accessKey": "8gte2ne7f4r14",
"enabled": true,
"expiry": "2027-12-31T18:29:59.000Z",
"managerEmail": "jonas@acme.com",
"name": "Jonas Albertson",
"seatLimit": 10,
"url": "https://learningmanager.adobe.com/eplogin?groupid=18805&accesskey=8gte2ne7f4r14"
}
}
}
Cela signifie que l’utilisateur externe a été ajouté à Adobe Learning Manager. Envoyez l’URL de la réponse à l’utilisateur, à l’aide de laquelle il peut s’inscrire sur la plateforme.
Extraire le rapport d’utilisateur avec l’ID utilisateur et les détails du responsable
Un rapport utilisateur peut être téléchargé directement à partir de l'interface utilisateur de l'administrateur (Administrateur > Utilisateurs > Interne). Cependant, le rapport ne renvoie pas l’ID utilisateur et les détails du responsable associé.
Utilisez l’API Jobs pour télécharger le rapport. L’API Jobs permet de générer des rapports, des opérations en bloc (inscriptions ou affectations de badge), des terminaisons de certification ou la génération de badges.
Voici comment télécharger le rapport :
-
Ajoutez la payload suivante à l’API Jobs.
code language-none { "data": { "type": "job", "attributes": { "description": "description of your choice", "jobType": "generateUsers", "payload":{ "expandMetadata":true } } } }
-
Utilisez le point de terminaison suivant.
code language-none POST https://learningmanager.adobe.com/primeapi/v2/jobs
-
Copiez l’ID de tâche à partir de la réponse.
code language-none { "links": { "self": "https://learningmanager.adobe.com/primeapi/v2/jobs" }, "data": { "id": "43118", "type": "job", "attributes": { "dateCreated": "2025-05-26T06:35:35.000Z", "description": "description of your choice", "jobType": "generateUsers", "payload": { "expandMetadata": true }, "status": { "code": "Submitted" } } } }
Dans la réponse, l’ID de tâche est 43118.
-
Après avoir copié l’ID, utilisez-le dans l’API des tâches pour télécharger le rapport.
code language-none GET https://learningmanager.adobe.com/primeapi/v2/jobs/43118
-
Copiez l’URL S3 de la réponse.
-
Collez l’URL dans votre navigateur. Le navigateur vous invite à enregistrer ou ouvrir le fichier CSV. Enregistrez le fichier sur votre ordinateur.
Le fichier téléchargé contient les colonnes suivantes :
internalUserID, userEmail, customerDefinedUniqueUserId, name, managerEmail, userType, state, excludeFromGamification, pointsEarned, profile, roles, dateCreated, lastLoginDate, dateDeleted, uiLocale, contentLocale, timeZoneCode, userSource, group, Active fields, metadata et lastSocialActivityDate.
Génération d’un badge à l’aide de l’API Jobs
-
Obtenir la liste des badges pour un utilisateur de l’organisation. Utilisez le point d’entrée suivant :
code language-none GET https://learningmanager.adobe.com/primeapi/v2/users/3400476/userBadges
Où 3400476 l’ID utilisateur.
-
Copiez l’ID de badge de la réponse. Par exemple, 3400476_759_COMPETENCY_1796_1 correspond à l’ID de badge.
code language-none { "id": "3400476_759_COMPETENCY_1796_1", "type": "userBadge", "attributes": { "assertionUrl": "https://cpcontentsdev.adobe.com/public/accountassets/1010/badges/assertions/a99566b5aa8f4cfa92380581733c63a9_1626278856926.json", "dateAchieved": "2016-02-25T08:45:25.000Z", "modelType": "skillLevel" }, "relationships": { "badge": { "data": { "id": "759", "type": "badge" } }, "learner": { "data": { "id": "3400476", "type": "user" } }, "model": { "data": { "id": "1796_1", "type": "skillLevel" } } } }
-
Créez une payload et spécifiez l’ID de badge dans la payload. Voici un exemple de charge utile :
code language-none { "data": { "type": "job", "attributes": { "description": "Acme Corp Badge", "jobType": "generateUserBadge", "payload": { "userBadgeId": "3400476_759_COMPETENCY_1796_1" } } } }
Après avoir passé un appel, vous obtiendrez l’ID de tâche dans la réponse.
-
Prenez l’ID de travail de la réponse et utilisez l’ID de travail dans le point de terminaison suivant pour effectuer l’appel.
code language-none GET https://learningmanager.adobe.com/primeapi/v2/jobs/<jobsID>
-
Copiez l’URL du badge à partir de la réponse et ouvrez-la dans un navigateur. Le certificat sera téléchargé en tant que PDF.
Création d’utilisateurs dans Adobe Learning Manager
Le point de terminaison POST /users vous aide à créer un utilisateur à l’aide du mode sans tête. Créez des utilisateurs avec des informations détaillées, comme le processus d’inscription dans l’interface utilisateur native d’Adobe Learning Manager.
Par exemple,
POST https://learningmanager.adobe.com/primeapi/v2/users
Ajoutez le corps suivant à la demande :
{
"data":
{
"type": "user",
"attributes": {
"bio": "",
"contentLocale": "fr-FR",
"email": "user@work.com",
"enrollOnClick": true,
"fields": {
"Learning Categories": [
"Business"
],
"Categories": "IT"
},
"gamificationEnabled": true,
"name": "Test User",
"profile": "Engineer",
"userType": "INTERNAL",
"userUniqueId": "user@work.com"
},
"relationships": {
"account": {
"data": {
"id": "108079",
"type": "account"
}
}
}
}
}
Une fois l’appel passé, la réponse suivante s’affiche :
{
"links": {
"self": "https://learningmanager.adobe.com/primeapi/v2/users"
},
"data": {
"id": "13385627",
"type": "user",
"attributes": {
"avatarUrl": "https://cpcontents.adobe.com/public/images/default_user_avatar.svg",
"email": "user@work.com",
"name": "Test User",
"pointsEarned": 0,
"pointsRedeemed": 0,
"preferredResolution": "AUTO",
"profile": "Engineer",
"roles": [
"Learner"
],
"state": "ACTIVE",
"userType": "Internal",
"userUniqueId": "user@work.com"
},
"relationships": {
"account": {
"data": {
"id": "1010",
"type": "account"
}
},
"manager": {
"data": {
"id": "3400468",
"type": "user"
}
}
}
}
}
Un nouvel utilisateur sera ajouté à Adobe Learning Manager.
Publier le retour d'informations L1
-
Récupérez les données de cours, d’instance et d’inscription de l’élève. Utilisez le point de terminaison suivant :
code language-none GET /enrollments
-
Vérifiez si le retour d'informations L1 est activé pour l'instance de cours.
code language-none GET https://learningmanager.adobe.com/primeapi/v2/learningObjects/<loID>/instances/<loInstanceID>/l1Feedback
-
Envoyez le retour d'informations L1.
code language-none POST /enrollments/{id}/l1Feedback
Exemple de charge utile requise :
{
"data": {
"id": "course:7454218_10333537_11257863",
"type": "feedback",
"attributes": {
"questions": [
{
"answer": "8",
"questionId": "1",
"mandatory": true,
"questionType": "scaleTen"
}
],
"score": 80
}
}
}
Récupérer les informations de niveau de module d'un cours
-
Récupérer les détails d'un objet d'apprentissage par ID.
code language-none GET https://learningmanager.adobe.com/primeapi/v2/learningObjects/<loID>
code language-none { "links": { "self": "https://learningmanager.adobe.com/primeapi/v2/learningObjects/course:1171899" }, "data": { "id": "course:1171899", "type": "learningObject", "attributes": { "authorNames": [ "James Adams" ], "dateCreated": "2017-11-01T15:28:09.000Z", "datePublished": "2017-11-01T15:28:20.000Z", "dateUpdated": "2017-11-01T15:28:20.000Z", "duration": 60, "effectiveModifiedDate": "2017-11-01T15:28:20.000Z", "effectivenessIndex": 0, "enrollmentType": "Self Enroll", "hasOptionalLoResources": false, "hasPreview": false, "isExternal": false, "isMqaEnabled": false, "isPrerequisiteEnforced": false, "isSubLoOrderEnforced": false, "loFormat": "Self Paced", "loResourceCompletionCount": 3, "loType": "course", "moduleResetEnabled": false, "state": "Published", "unenrollmentAllowed": true, "catalogLabels": [ { "catalogLabelValueIds": [ { "name": "Sales", "id": "catalogLabel:13_31" } ], "description": "", "mandatory": false, "name": "Department", "values": [ "Sales" ] } ], "localizedMetadata": [ { "locale": "en-US", "name": " Test course 2" } ], "rating": { "averageRating": 0, "ratingsCount": 0 } }, "relationships": { "authors": { "data": [ { "id": "3400468", "type": "user" } ] }, "instances": { "data": [ { "id": "course:1171899_2067352", "type": "learningObjectInstance" } ] }, "skills": { "data": [ { "id": "course:1171899_1797", "type": "learningObjectSkill" } ] } } } }
-
Utilisez le paramètre include pour récupérer les éléments suivants :
a. Répertoriez tous les modules de l’objet d’apprentissage.
code language-none GET https://learningmanager.adobe.com/primeapi/v2/learningObjects/course:1171899?include=instances.loResources
b. Répertoriez tout le contenu des modules.
code language-none GET https://learningmanager.adobe.com/primeapi/v2/learningObjects/course:1171899?include=instances.loResources.resources
Vérifier la progression du module
-
Récupérez l’objet d’apprentissage du catalogue à l’aide de l’ID de cours.
code language-none GET https://learningmanager.adobe.com/primeapi/v2/learningObjects?page[limit]=10&filter.loTypes=course&sort=name&filter.ignoreEnhancedLP=true&id=<courseID>
-
Obtenir les détails d'inscription d'un élève à l'aide de l'ID d'inscription.
code language-none GET https://learningmanager.adobe.com/primeapi/v2/enrollments/<enrollmentID>
Copiez l’ID de niveau de ressource de l’objet d’apprentissage dans la réponse.
-
Utilisez l’ID dans le point d’entrée suivant.
code language-none GET https://learningmanager.adobe.com/primeapi/v2/loResourceGrades/<courseResourceGradeID>
Vous obtiendrez des informations sur la progression du module dans la réponse.
Implémentation de l’emprunt d’identité de l’élève
Lors de la mise en œuvre d’un LMS sans en-tête avec Adobe Learning Manager comme serveur principal, les organisations peuvent demander au personnel d’assistance d’emprunter l’identité des élèves pour le dépannage ou l’assistance. La méthode d’emprunt d’identité basée sur l’API garantit un accès sécurisé tout en conservant la confidentialité des informations d’identification des élèves et prend en charge des transitions transparentes dans les états de session.
Adobe Learning Manager facilite l’emprunt d’identité des élèves dans les environnements LMS sans en-tête via une API dédiée. Cette fonctionnalité permet au personnel d’assistance de confirmer temporairement l’identité d’un élève, ce qui lui permet de diagnostiquer des problèmes, de tester des fonctionnalités ou de fournir une assistance pratique en simulant l’expérience de l’élève. L’emprunt d’identité est activé à l’aide d’un jeton d’accès administrateur mis en cache, qui est utilisé pour générer par programme un jeton d’accès d’élève. Ce processus permet au système de fonctionner comme s’il était connecté en tant qu’élève.
Détails du point de terminaison de l’API
POST /oauth/learnerToken
Exemple d'URL complète
https://learningmanager.adobe.com/oauth/o/learnerToken?learner_email=foo@acme.com&force=false
Paramètres de requête :
- learner_email : (chaîne) Adresse e-mail de l’élève à emprunter son identité.
- force : (booléen) Indique si un nouveau jeton doit être généré de force s’il existe.
Corps de la demande :
{
"client_id": "your-client-id",
"client_secret": "your-client-secret",
"refresh_token": "your-admin-refresh-token"
}
Exemple de réponse :
{
"access_token": "generated-token",
"refresh_token": "new-refresh-token",
"user_role": "learner",
"account_id": "123456",
"user_id": "7891011",
"expires_in": 604800
}
Exemple d’URLc :
curl --location --request POST 'https://learningmanager.adobe.com/oauth/o/learnerToken?learner_email=foo@acme.com&force=false' \
--header 'Content-Type: application/json' \
--data-raw '{
"client_id": "xxxx",
"client_secret": "xxxx",
"refresh_token": "xxxx"
}'
Codes d’erreur
Lorsque vous travaillez avec des API Adobe Learning Manager (Adobe Learning Manager), les développeurs peuvent rencontrer différents codes d’erreur HTTP lors des demandes. Ces erreurs fournissent des commentaires importants sur ce qui s’est mal passé et comment le corriger. La compréhension de ces codes aide les développeurs à résoudre rapidement les problèmes, à améliorer la fiabilité des API et à garantir des intégrations plus fluides. Le tableau suivant fournit un guide des codes d’erreur HTTP courants renvoyés par les API Adobe Learning Manager, ainsi que des explications et des scénarios types dans lesquels ils se produisent. Cette section est essentielle pour toute personne créant, testant ou déboguant des applications qui se connectent à Adobe Learning Manager.
Les API Adobe Learning Manager exigent strictement ce type de contenu.