Manuale per sviluppatori Adobe Learning Manager
Panoramica
Adobe Learning Manager fornisce API RESTful che consentono agli sviluppatori di integrare e personalizzare efficacemente applicazioni o flussi di lavoro. Il Manuale per gli sviluppatori offre istruzioni su come utilizzare queste API, coprendo argomenti quali autenticazione, modelli di dati e integrazione con altre applicazioni. Inoltre, questa guida documentazione di riferimento API aiuta gli sviluppatori a creare applicazioni esterne o flussi di lavoro back-end che interagiscono con varie funzionalità di Adobe Learning Manager, tra cui la creazione di corsi, il monitoraggio dell’avanzamento degli allievi, la mappatura delle abilità, la certificazione, la gamification e le trascrizioni.
Il presente manuale tratta i seguenti argomenti:
- Autenticazione OAuth2.0
- Modelli di oggetti API
- Includi, campi e altri parametri
- Casi d'uso reali
Scenari di utilizzo delle API
Gli sviluppatori possono utilizzare le API di Learning Manager per migliorare o integrare Learning Manager con altre applicazioni aziendali. Puoi creare app Web, desktop o per dispositivi mobili utilizzando qualsiasi tecnologia. Gli sviluppatori possono accedere ai dati di Learning Manager, ma puoi controllare dove e come viene utilizzata l’app.
Autenticazione tramite OAuth 2.0
Per accedere in modo sicuro alle API di Adobe Learning Manager, è necessario autenticarsi utilizzando il meccanismo OAuth 2.0 di Adobe Learning Manager. Questo processo include la registrazione dell’applicazione, la generazione di un codice di autorizzazione, lo scambio con un token di aggiornamento e, infine, l’utilizzo del token di aggiornamento per ottenere un token di accesso.
Registra un'applicazione
Integrazione di Adobe Learning Manager con applicazioni esterne per una maggiore versatilità. I passaggi prevedono l’accesso all’interfaccia di Amministratore di integrazione, la registrazione dell’applicazione e l’ottenimento di ID client e Segreto. Genera token di autenticazione OAuth 2.0 da Adobe Learning Manager, inclusi token di autorizzazione, aggiornamento e accesso. Utilizza il flusso OAuth 2.0 per autenticare e autorizzare in modo sicuro l’app. Il token di accesso ha una validità di sette giorni.
-
Accedi a Adobe Learning Manager come amministratore di integrazione.
-
Seleziona Applicazioni nel riquadro a sinistra.
-
Seleziona Registra e aggiungi le seguenti informazioni:
-
Nome applicazione: digita il nome dell'applicazione (massimo 50 caratteri).
-
URL: URL ufficiale dell'azienda o dell'applicazione. Utilizzato per l'identificazione e il riferimento.
-
Domini di reindirizzamento: specifica i domini (ad esempio, http://learningmanager.adobe.com) a cui Adobe Learning Manager può reindirizzare dopo l'autorizzazione. È possibile specificare più URL validi.
-
Descrizione: breve descrizione delle operazioni eseguite dall'applicazione.
-
Ambiti: selezionare una delle sei opzioni disponibili per definire l'ambito dell'applicazione. In base alla scelta indicata qui, gli endpoint API di Learning Manager sono accessibili per l’applicazione. Ad esempio, se scegli l’accesso in lettura al ruolo di Allievo, tutti gli endpoint API da Allievo di Learning Manager sono accessibili all’applicazione in sola lettura.
- Accesso in lettura/scrittura al ruolo di amministratore: consente all’applicazione di accedere o modificare i dati come amministratore.
- Accesso in lettura/scrittura al ruolo Allievo: consente all’applicazione di accedere o modificare i dati per gli Allievi.
- Accesso in lettura/scrittura xAPI: consente all’applicazione di accedere e inviare istruzioni Experience API (xAPI).
-
Solo per questo account?
- Sì: se scegli Sì, l’applicazione non sarà visibile ad altri amministratori account.
- No - se scegli No, anche altri amministratori account potranno accedere a questa applicazione, ma dovranno usare l'ID dell'applicazione. L’ID applicazione viene generato e visualizzato nella modalità di modifica dell’applicazione di Learning Manager.
-
-
Selezionare Salva per registrare l'applicazione.
- Dopo aver registrato l’applicazione, questa diventa disponibile nell’elenco delle applicazioni create nell’account. Seleziona l'applicazione e oltre ai campi immessi in precedenza verranno visualizzati i seguenti elementi:
- ID applicazione: ID client. Questo ID indica a Adobe Learning Manager l’applicazione che richiede l’accesso. È incluso nelle richieste API per identificare l’app.
- Segreto dell’applicazione: viene utilizzato per autenticare l’app e verificarne l’identità durante i passaggi di scambio dei token (ad esempio, quando si richiede un token di aggiornamento o di accesso).
Ottenere un token di accesso
Ottenere il codice di autorizzazione
Dopo aver ottenuto l’ID client e il segreto client, utilizzali per richiedere un token di accesso utilizzato per autenticare le chiamate API.
Per avviare il flusso del codice di autorizzazione, aggiungi il seguente URL in un browser:
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
Dopo che l'utente ha autorizzato l'applicazione, Adobe Learning Manager reindirizzerà all'URI_reindirizzamento specificato con un parametro di query accodato:
https://yourapp.com/callback?code=abc123xyz
Insieme all'URI di reindirizzamento viene aggiunto un codice di parametro.
Ottieni token di aggiornamento dal codice
Dopo aver ottenuto il codice, utilizza uno strumento API e aggiungi la seguente richiesta POST:
https://learningmanager.adobe.com/oauth/token
Corpo della richiesta (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>
Risposta
{
"access_token": "eyJhbGciOiJIUzI1...",
"refresh_token": "xTjlfz0jCk6gF1...",
"expires_in": 604800,
"token_type": "Bearer"
}
Per effettuare richieste API autenticate, utilizza access_token nell’intestazione Autorizzazione.
Utilizzare il token di accesso in una chiamata API
Verifica il token di accesso utilizzando quanto segue:
GET https://learningmanager.adobe.com/oauth/token/check?access_token=<access_token>
Un token di accesso è valido per sette giorni. Dopo sette giorni, è necessario generare un nuovo token di accesso utilizzando il token di aggiornamento. Se generi un nuovo token di accesso dal token di aggiornamento mentre un token di accesso esistente è ancora valido, verrà restituito il token esistente.
Ottieni token di accesso per test e sviluppo
Quando si utilizzano le API di Adobe Learning Manager, gli sviluppatori devono disporre di un token di accesso OAuth 2.0 valido per autenticare le richieste API. La generazione di questo token tramite il flusso OAuth standard può essere complessa e richiedere molto tempo, in particolare per test rapidi, apprendimento o sviluppo. Adobe Learning Manager fornisce uno strumento di generazione di token per semplificare questo processo.
Questo strumento è ideale durante:
-
Build POC (Proof of concept)
-
Sviluppo nelle fasi iniziali
-
Risoluzione dei problemi di integrazione API
Questi token sono destinati esclusivamente all'uso personale durante le fasi di sviluppo e debug. Tieni presente che i token di prova consentono l'accesso ai dati Adobe Learning Manager, quindi è essenziale gestirli in modo sicuro. Non condividere mai i token di prova con altri utenti, non utilizzarli nelle applicazioni di produzione e non includerli in archivi di codice pubblici. Trattali come password per garantire la sicurezza dell’account e dei dati.
-
Accedi a Adobe Learning Manager come Amministratore dell’integrazione.
-
Selezionare Risorse sviluppatore, quindi Seleziona token di accesso per test e sviluppo.
-
Digita l'ID client ottenuto dopo aver creato un'applicazione per ottenere il codice OAuth. Quindi seleziona Invia.
-
Aggiungi ID client e Segreto client per ottenere il token di aggiornamento. Quindi seleziona Invia. OAuth viene precompilato dal passaggio precedente.
-
Aggiungi l’ID client e il segreto client per ottenere il token di accesso. Quindi seleziona Invia.
-
Aggiungi il token di accesso e seleziona Invia per ottenere i relativi dettagli.
Dopo aver selezionato Invia, il token di accesso viene verificato e riceverai il seguente oggetto JSON:
{
"access_token": "access token",
"refresh_token": "refresh token",
"user_role": "admin",
"account_id": "1234",
"user_id": "123456",
"expires_in": 604800
}
Come in precedenza, il token di accesso per il test scade tra sette giorni.
Utilizza uno strumento API per testare gli endpoint
Sebbene sia possibile utilizzare qualsiasi strumento di testing API di terze parti, utilizzeremo Postman per testare gli endpoint. Negli esempi riportati in questo documento viene utilizzato Postman per il test degli endpoint.
-
Apri Postman e crea una nuova richiesta.
-
Seleziona la scheda Autorizzazione.
-
Imposta Tipo di autenticazione su Bearer Token.
-
Incolla nel campo Token il token di accesso ottenuto dalla sezione precedente.
-
Aggiungere quanto segue nella scheda Intestazioni.
- Chiave: Accetta
- Valore: application/json
-
Immetti l’endpoint API nel campo URL. Esempio: https://learningmanager.adobe.com/learningManager/api/v2/users
Per ulteriori informazioni, consulta la Guida di riferimento all’API di Adobe Learning Manager. -
Seleziona Invia per effettuare la richiesta API.
Tipi di API
API per amministratori
Le API di amministrazione di Adobe Learning Manager consentono agli amministratori di automatizzare e gestire le operazioni di apprendimento su larga scala.
Utilizzando le API di amministrazione, gli sviluppatori possono:
- Gestione di utenti e gruppi: creazione, aggiornamento ed eliminazione di utenti o assegnazione di utenti a gruppi.
- Iscrizione degli Allievi: iscrizione automatica a corsi, percorsi di apprendimento o certificazioni.
- Monitoraggio dell’avanzamento dell’Allievo: recupero dello stato di avanzamento del corso/modulo, dei punteggi del quiz e dello stato di completamento.
- Generazione di report: accesso ai dati su attività, coinvolgimento e prestazioni degli Allievi.
- Gestione contenuto: creazione e organizzazione di corsi e oggetti di apprendimento.
Per ulteriori informazioni, vedere Adobe Learning Manager API Reference.
API Allievo
Le API per Allievi sono progettate per gli utenti autenticati (Allievi) e consentono di accedere a informazioni specifiche per gli Allievi. Queste API consentono attività quali:
- Accesso ai corsi e all’avanzamento di un Allievo
- Recupero di distintivi o certificazioni ottenuti
- Aggiornamento delle informazioni del profilo Allievo
- Visualizzazione delle abilità associate ai corsi completati
Punti chiave:
- Queste API richiedono un token utente autenticato, che garantisce la sicurezza e la privacy dei dati.
- Le API sono pensate per scenari in cui gli utenti sono completamente registrati e connessi, piuttosto che utenti anonimi o condivisi.
Per ulteriori informazioni, vedere Adobe Learning Manager API Reference.
Progettazione API e parametri comuni
Le API forniscono agli sviluppatori l’accesso alle risorse chiave di Learning Manager, come utenti, corsi, abilità, certificazioni e programmi di apprendimento. Seguono i principi REST, utilizzando i metodi HTTP (GET, POST, PUT, DELETE) per le operazioni sui dati.
Parametri comuni
Ecco una breve spiegazione di ciascuno:
includere
Le API Adobe Learning Manager possono essere utilizzate per recuperare informazioni utili durante la creazione di un’applicazione personalizzata o di un LMS headless. Gli endpoint API possono inoltre essere inclusi con parametri aggiuntivi di tipo "include" per recuperare le informazioni aggiuntive correlate ai dati ricevuti per impostazione predefinita. Queste relazioni sono relazioni del modello di dati, ad esempio durante una chiamata per ottenere i dettagli dell'utente, riceverai le informazioni sull'utente e la relazione dell'ID manager e dell'ID account Adobe Learning Manager. Con il parametro include, puoi estrarre in modo dettagliato altri dettagli insieme a quelli dell’utente, come i dettagli del manager e dell’account Adobe Learning Manager.
In breve, il parametro include viene utilizzato nelle chiamate API per recuperare le risorse correlate (collegate) insieme alla risorsa primaria in un'unica risposta. È utile quando desideri accedere a dati nidificati o dipendenti, come i moduli di un corso o le abilità mappate a un Allievo, senza effettuare chiamate API separate.
Vantaggi principali:
- Riduce più chiamate API: evita di richiedere manualmente ogni risorsa correlata.
- Maggiore efficienza: sviluppo più rapido, minore carico del server e rendering più rapido dei dati.
- Assicura la coerenza dei dati: recupera tutti i dati correlati in uno snapshot coerente.
Come utilizzare il parametro include
Aggiungi il parametro include all’URL API e specifica le entità correlate da includere.
Percorsi di inclusione comuni
Esempio 1
Recuperare i dettagli di un utente utilizzando il parametro userID nell'endpoint.
https://learningmanager.adobe.com/primeapi/v2/users/<userID>
GET https://learningmanager.adobe.com/primeapi/v2/users/<userID>
Nella risposta, è possibile notare che l'oggetto dati ha una relazione con l'account e il manager dell'utente.
"relationships": {
"account": {
"data": {
"id": "1010",
"type": "account"
}
},
"manager": {
"data": {
"id": "3400476",
"type": "user"
}
}
}
Utilizzando il parametro include nella richiesta, è possibile recuperare informazioni dettagliate sul manager, come illustrato di seguito:
GET https://learningmanager.adobe.com/primeapi/v2/users/<userid>?include=manager
Esempio 2
Per recuperare i dettagli del corso, utilizza il parametro include nella chiamata all’endpoint. L’endpoint seguente ottiene le informazioni sul corso e le relative relazioni.
GET https://learningmanager.adobe.com/primeapi/v2/learningObjects/<courseID>
Le relazioni vengono visualizzate nella risposta nel modo seguente:
- istanze
- abilità
- autori
"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"
}
]
}
}
Altre relazioni potrebbero includere (non presente nella risposta precedente):
- prerequisiteLOs
- oggetti di apprendimento supplementari
- risorsesupplementari
Per ottenere dati dettagliati sulle istanze e sulle abilità, includere "instance,skills" nel parametro include.
GET https://learningmanager.adobe.com/primeapi/v2/learningObjects/<courseID>?include=instances,skills
Ora, ad esempio, se desideri recuperare più dati associati all’istanza del corso, come loResources (informazioni sul modulo del corso), applica loResources come inclusione nidificata.
GET https://learningmanager.adobe.com/primeapi/v2/learningObjects/<courseID>?include=instances.loResources
Inoltre, combina abilità e istanze con un include nidificato.
GET https://learningmanager.adobe.com/primeapi/v2/learningObjects/<courseID>?include=instances,instances.loResources,skills
Altri filtri di inclusione
campi
Gli attributi e le relazioni di un oggetto API sono denominati Campi. Utilizza Fields come parametro nelle chiamate API per recuperare attributi specifici dal modello. Senza il parametro Fields, la chiamata API recupera tutti gli attributi disponibili.
Ad esempio, nella seguente chiamata API, fields[skill]=name recupera solo l’attributo name del modello di abilità.
GET https://learningmanager.adobe.com/primeapi/v2/users/3400490/userSkills/3400490_1796_1?include=skillLevel.skill&fields[skill]=name
impaginazione
La paginazione API è una tecnica utilizzata nelle API per scomporre grandi insiemi di dati in blocchi più piccoli e gestibili, chiamati pagine, anziché restituire l’intero dato in un’unica risposta.
La paginazione riduce il carico del client e del server, limita le dimensioni della risposta per evitare colli di bottiglia del server o è utile per visualizzare i dati in tabelle o elenchi una pagina alla volta.
Funzionamento della paginazione nelle API di Adobe Learning Manager
Le API di Adobe Learning Manager supportano la paginazione tramite parametri quali:
- page[limit]: numero di record per pagina.
- page[offset]: numero di record da ignorare.
- page[cursor]: puntatore al set di risultati successivo. Invece di utilizzare la paginazione basata su offset (che ignora un certo numero di record), la paginazione basata su cursore utilizza un marcatore univoco restituito dall’API per recuperare la pagina successiva di risultati.
Di seguito è illustrato come utilizzare la paginazione nelle API:
pagina[limite]
Mentre https://learningmanager.adobe.com/primeapi/v2/users restituisce tutti gli utenti e le informazioni correlate in una singola chiamata, l'utilizzo di page[limit] limita il numero di risultati al valore specificato.
Per restituire solo cinque record utente in una singola chiamata, utilizza la seguente API:
GET https://learningmanager.adobe.com/primeapi/v2/users?page[limit]=5
pagina[offset]
Utilizzare questa chiamata API per restituire tre record utente, ignorare i primi cinque utenti e iniziare dal sesto.
GET https://learningmanager.adobe.com/primeapi/v2/users?page[limit]=3&page[offset]=5
pagina[cursore]
-
Inizia richiedendo la prima pagina con un limite di 5.
code language-none GET https://learningmanager.adobe.com/primeapi/v2/users?page[limit]=5
-
Copiare il valore del cursore da links.next e utilizzarlo nella richiesta successiva:
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" }
-
Invia la seguente richiesta:
code language-none GET https://learningmanager.adobe.com/primeapi/v2/users?page[limit]=5&page[cursor]=3400482
In questo modo viene restituito il set successivo di 10 record, a partire dall'ultimo elemento della pagina precedente.
filtro
Il parametro filter consente di restringere i risultati API in base a uno o più valori di campo.
Le API Adobe Learning Manager forniscono diverse varianti del parametro di filtro per restringere le risposte.
Per ulteriori informazioni, vedere Adobe Learning Manager API Reference.
In questo esempio viene illustrato come filtrare le risorse formative a cui un Allievo si è iscritto utilizzando l’endpoint con il parametro filter:
GET https://learningmanager.adobe.com/primeapi/v2/users/3400480/enrollments?filter.loTypes=jobAid
ordinamento
Il parametro sort viene utilizzato per ordinare i risultati API in ordine crescente o decrescente in base a uno o più campi.
Adobe Learning Manager fornisce varie opzioni di ordinamento per ordinare la risposta API. Per ulteriori informazioni, vedere Adobe Learning Manager API Reference.
Estendendo l’esempio precedente, ora ordinerai l’iscrizione dell’utente ai programmi di apprendimento in base alla data di iscrizione in ordine crescente.
GET https://learningmanager.adobe.com/primeapi/v2/users/3400480/enrollments?filter.lotypes=learningProgram&sort=dateEnrolled
Panoramica dei modelli API
Le API di Adobe Learning Manager consentono agli sviluppatori di accedere agli oggetti di Learning Manager come risorse RESTful. Ogni endpoint API rappresenta una risorsa, in genere un’istanza di oggetto come un Badge o una raccolta di tali oggetti. Gli sviluppatori quindi utilizzano verbi HTTP come PUT, GET, POST e DELETE per eseguire le operazioni CRUD su tali oggetti (insiemi).
API ed endpoint degli Allievi
Di seguito sono riportati gli endpoint API chiave per l’utilizzo dei dati dell’Allievo. Queste API guidano gli sviluppatori nell’interazione con le informazioni degli Allievi, nel tracciamento dell’avanzamento, nella gestione delle iscrizioni e nel recupero dei contenuti del corso.
Recuperare i dettagli di tutti gli Allievi
Recupero dei dettagli dell’Allievo (nome, e-mail, UUID, profilo utente e così via). Utilizza l’API per elencare tutti gli Allievi nell’account.
GET https://learningmanager.adobe.com/primeapi/v2/users
Recuperare i dettagli di un Allievo specifico
Se desideri visualizzare il profilo di un Allievo in base all’ID, utilizza le API seguenti per effettuare una chiamata.
GET https://learningmanager.adobe.com/primeapi/v2/users/<userID>
Elenca tutti i corsi, i programmi di apprendimento, le risorse formative e le certificazioni
Recupera i dettagli di tutti gli oggetti di apprendimento a cui l’Allievo è iscritto, ha completato o è stato abilitato dall’Amministratore.
GET https://learningmanager.adobe.com/primeapi/v2/learningObjects
Ottieni i dettagli di un oggetto di apprendimento specifico
Ottieni informazioni dettagliate su un oggetto di apprendimento. Include la data di creazione, la data di pubblicazione, la data di aggiornamento e altre informazioni.
GET https://learningmanager.adobe.com/primeapi/v2/learningObjects/<LearningObjectID>
Recuperare un elenco di abilità collegate ai corsi
Visualizza le abilità assegnate a tutti gli Allievi nell’account.
GET https://learningmanager.adobe.com/primeapi/v2/skills
Ottieni informazioni su livelli di abilità e distintivi
Verifica i progressi degli Allievi nei percorsi di apprendimento basati sulle abilità.
GET https://learningmanager.adobe.com/primeapi/v2/skills/<skillID>?include=levels
Elenco di tutti i distintivi creati per un account
Effettua una chiamata al seguente endpoint per recuperare un elenco di tutti i distintivi creati per un account in un'organizzazione.
GET https://learningmanager.adobe.com/primeapi/v2/badges
Recuperare le informazioni di un badge
Ottieni informazioni dettagliate su un badge, tra cui il nome del badge, l’URL dell’immagine del badge e lo stato del badge.
GET https://learningmanager.adobe.com/primeapi/v2/badges/<skillID>
Viene generata la seguente risposta:
{
"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"
}
}
}
Altri esempi di utilizzo delle API
Creare un utente
-
Utilizzare l'endpoint:
code language-none POST https://learningmanager.adobe.com/primeapi/v2/users
Elabora gli attributi dal corpo API o dal payload JSON per generare un utente e successivamente fornisce a un utente il rispettivo ID utente compilato.
-
Utilizza il seguente payload come corpo:
code language-none { "data": { "type": "user", "attributes": { "email": "bob@example.com", "name": "Bob", "userType": "INTERNAL" } } }
Sono disponibili tre attributi obbligatori:
- email: ID e-mail dell'utente. Questo valore deve essere univoco per ogni utente.
- name: il nome dell’utente.
- userType: al momento, solo gli utenti interni possono essere aggiunti utilizzando questo endpoint. Il valore userType deve essere "INTERNAL".
Riceverai il seguente oggetto JSON:
{
"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"
}
}
}
}
}
Elimina un utente
-
Ottieni l’ID utente dell’utente da eliminare.
code language-none GET https://learningmanager.adobe.com/primeapi/v2/users/<userID>
-
Quindi, utilizzando DELETE, effettua la seguente chiamata:
code language-none DELETE https://learningmanager.adobe.com/primeapi/v2/users/<userID>
Viene visualizzata una risposta 204. Un codice di risposta 204 indica che l’operazione è riuscita senza alcun contenuto da restituire. Il server ha elaborato correttamente la richiesta ma non dispone di dati da fornire al client.
Lo stato dell'utente è ora ELIMINATO dopo aver recuperato i dettagli dell'utente.
Aggiorna dettagli utente
- Aggiorna i dettagli utente dell’utente utilizzando l’API v2. L’Allievo può modificare bio, uiLocale, contentLocale, fuso orario. Per gli account di grandi dimensioni, si tratta di chiamate asincrone. Molti altri attributi utente possono essere aggiornati utilizzando questo endpoint API. Utilizzare l'endpoint /users/{id}, dove id è l'ID utente dell'utente di cui si desidera aggiornare i dettagli.
PATCH https://learningmanager.adobe.com/primeapi/v2/users/<userID>
Aggiungi quanto segue nel payload della richiesta di aggiornamento dell'utente con ID <userID>
, dalla sezione precedente.
Modificare qualsiasi campo nel 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"
}
}
}
}
}
Dopo aver effettuato la chiamata, i dettagli dell'utente vengono aggiornati.
Creare un profilo esterno
Un profilo esterno si riferisce a un profilo utente creato per allievi esterni, in genere utenti che non fanno parte della base utenti interna dell’organizzazione. Tali Allievi possono includere clienti, partner, fornitori, affiliati o appaltatori temporanei che hanno bisogno di accedere ai programmi di formazione o certificazione offerti dall’organizzazione.
-
Utilizza il seguente endpoint:
code language-none POST https://learningmanager.adobe.com/primeapi/v2/externalProfiles
-
Utilizza il seguente payload come corpo:
{
"data": {
"type": "externalProfile",
"attributes": {
"name": "Jonas Albertson",
"expiry": "2027-12-31T18:29:59.000Z",
"managerEmail": "jonas@acme.com",
"seatLimit": 10
}
}
}
Il payload ha i seguenti attributi:
- name: il nome dell’utente esterno.
- scadenza: la data di scadenza (in formato ISO-8601) della registrazione dell'utente in Adobe Learning Manager.
- managerEmail: l'indirizzo e-mail del manager dell'utente dell'organizzazione partner.
- seatLimit: il numero di postazioni consentito per l’organizzazione partner.
Dopo aver effettuato la chiamata, viene visualizzata la seguente risposta:
{
"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"
}
}
}
L’utente esterno è stato aggiunto a Adobe Learning Manager. Invia l’URL che si trova nella risposta all’utente, utilizzando il quale può registrarsi sulla piattaforma.
Estrarre il report utente con ID utente e dettagli manager
È possibile scaricare un report utente direttamente dall'interfaccia utente amministratore (Amministratore > Utenti > Interno). Tuttavia, il report non restituisce l'ID utente e i dettagli del manager associato.
Utilizza l’API dei processi per scaricare il report. L’API dei processi consente di generare report, operazioni in blocco (iscrizioni o assegnazioni di badge), completamenti di certificazioni o generazione di badge.
Ecco come puoi scaricare il report:
-
Aggiungi il seguente payload all’API dei processi.
code language-none { "data": { "type": "job", "attributes": { "description": "description of your choice", "jobType": "generateUsers", "payload":{ "expandMetadata":true } } } }
-
Utilizzare il punto finale seguente.
code language-none POST https://learningmanager.adobe.com/primeapi/v2/jobs
-
Copia l’ID processo dalla risposta.
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" } } } }
Nella risposta, l'ID processo è 43118.
-
Dopo aver copiato l’ID, scarica il report utilizzando l’ID nell’API dei processi.
code language-none GET https://learningmanager.adobe.com/primeapi/v2/jobs/43118
-
Copia l’URL S3 dalla risposta.
-
Incollate l’URL nel browser. Il browser richiede di salvare o aprire il file CSV. Salvate il file sul computer.
Il file scaricato contiene le seguenti colonne:
internalUserID, userEmail, customerDefinedUniqueUserId, name, managerEmail, userType, state, excludeFromGamification, pointsEarned, profile, roles, dateCreated, lastLoginDate, dateDeleted, uiLocale, contentLocale, timeZoneCode, userSource, group, campi attivi, metadati e lastSocialActivityDate.
Generare un badge mediante l’API dei processi
-
Ottieni un elenco di distintivi per un utente dell'organizzazione. Utilizza il seguente endpoint:
code language-none GET https://learningmanager.adobe.com/primeapi/v2/users/3400476/userBadges
Dove 3400476 è l’ID utente.
-
Copia l’ID badge dalla risposta. Ad esempio, 3400476_759_COMPETENCY_1796_1 è l’ID del 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" } } } }
-
Crea un payload e specifica l’ID badge nel payload. Di seguito è riportato un esempio di payload:
code language-none { "data": { "type": "job", "attributes": { "description": "Acme Corp Badge", "jobType": "generateUserBadge", "payload": { "userBadgeId": "3400476_759_COMPETENCY_1796_1" } } } }
Dopo aver effettuato una chiamata, riceverai l'ID processo nella risposta.
-
Prendere l'ID processo dalla risposta e utilizzare l'ID processo nell'endpoint seguente per effettuare la chiamata.
code language-none GET https://learningmanager.adobe.com/primeapi/v2/jobs/<jobsID>
-
Copia l’URL del badge dalla risposta e aprilo in un browser. Il certificato verrà scaricato come PDF.
Creazione di utenti in Adobe Learning Manager
L’endpoint POST /users consente di creare un utente utilizzando la modalità headless. Creazione di utenti con informazioni dettagliate, come la procedura di registrazione nell’interfaccia utente nativa in Adobe Learning Manager.
Ad esempio:
POST https://learningmanager.adobe.com/primeapi/v2/users
Aggiungi il seguente corpo alla richiesta:
{
"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"
}
}
}
}
}
Dopo aver effettuato la chiamata, viene visualizzata la seguente risposta:
{
"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 nuovo utente verrà aggiunto a Adobe Learning Manager.
Post feedback L1
-
Recupera i dati del corso, dell’istanza e dell’iscrizione dell’Allievo. Utilizza il seguente endpoint:
code language-none GET /enrollments
-
Verifica se il feedback L1 è abilitato per l’istanza del corso.
code language-none GET https://learningmanager.adobe.com/primeapi/v2/learningObjects/<loID>/instances/<loInstanceID>/l1Feedback
-
Invia il feedback L1.
code language-none POST /enrollments/{id}/l1Feedback
Esempio di payload richiesto:
{
"data": {
"id": "course:7454218_10333537_11257863",
"type": "feedback",
"attributes": {
"questions": [
{
"answer": "8",
"questionId": "1",
"mandatory": true,
"questionType": "scaleTen"
}
],
"score": 80
}
}
}
Recupero delle informazioni a livello di modulo di un corso
-
Recupera i dettagli di un oggetto di apprendimento tramite 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" } ] } } } }
-
Utilizzare il parametro include per recuperare quanto segue:
a. Elenca tutti i moduli dell’oggetto di apprendimento.
code language-none GET https://learningmanager.adobe.com/primeapi/v2/learningObjects/course:1171899?include=instances.loResources
b. Elenca tutto il contenuto dei moduli.
code language-none GET https://learningmanager.adobe.com/primeapi/v2/learningObjects/course:1171899?include=instances.loResources.resources
Verifica avanzamento modulo
-
Recupera l’oggetto di apprendimento dal catalogo utilizzando l’ID corso.
code language-none GET https://learningmanager.adobe.com/primeapi/v2/learningObjects?page[limit]=10&filter.loTypes=course&sort=name&filter.ignoreEnhancedLP=true&id=<courseID>
-
Ottieni i dettagli di iscrizione di un Allievo utilizzando l’ID di iscrizione.
code language-none GET https://learningmanager.adobe.com/primeapi/v2/enrollments/<enrollmentID>
Copia l’ID livello risorsa oggetto di apprendimento dalla risposta.
-
Utilizzare l'ID nell'endpoint seguente.
code language-none GET https://learningmanager.adobe.com/primeapi/v2/loResourceGrades/<courseResourceGradeID>
Nella risposta verranno fornite informazioni sull'avanzamento del modulo.
Implementare la rappresentazione dell’Allievo
Quando si implementa un sistema LMS headless con Adobe Learning Manager come backend, le organizzazioni potrebbero richiedere allo staff di supporto di impersonare gli Allievi per la risoluzione dei problemi o l’assistenza. Il metodo di rappresentazione basato su API garantisce l’accesso sicuro mantenendo la riservatezza delle credenziali dell’Allievo e supporta transizioni senza problemi negli stati della sessione.
Adobe Learning Manager facilita la rappresentazione degli Allievi in ambienti LMS headless tramite un’API dedicata. Questa funzione consente al personale di supporto di assumere temporaneamente l’identità di un allievo, consentendo di diagnosticare problemi, testare funzionalità o fornire assistenza pratica simulando l’esperienza dell’allievo. La rappresentazione viene attivata utilizzando un token di accesso amministratore memorizzato nella cache, utilizzato per generare a livello di programmazione un token di accesso Allievo. Questo processo consente al sistema di funzionare come se fosse connesso come l’Allievo.
Dettagli endpoint API
POST /oauth/learnerToken
Esempio di URL completo
https://learningmanager.adobe.com/oauth/o/learnerToken?learner_email=foo@acme.com&force=false
Parametri query:
- learner_email: (stringa) L’e-mail dell’Allievo da rappresentare.
- force: (booleano) Indica se generare forzatamente un nuovo token, se esistente.
Corpo della richiesta:
{
"client_id": "your-client-id",
"client_secret": "your-client-secret",
"refresh_token": "your-admin-refresh-token"
}
Risposta di esempio:
{
"access_token": "generated-token",
"refresh_token": "new-refresh-token",
"user_role": "learner",
"account_id": "123456",
"user_id": "7891011",
"expires_in": 604800
}
Esempio di cURL:
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"
}'
Codici di errore
Quando si utilizzano le API di Adobe Learning Manager (Adobe Learning Manager), gli sviluppatori potrebbero riscontrare vari codici di errore HTTP durante le richieste. Questi errori forniscono un feedback importante su cosa è andato storto e su come correggerlo. La comprensione di questi codici aiuta gli sviluppatori a risolvere rapidamente i problemi, migliorare l’affidabilità delle API e garantire integrazioni più fluide. La tabella seguente illustra i codici di errore HTTP più comuni restituiti dalle API di Adobe Learning Manager, oltre a spiegazioni e scenari tipici in cui si verificano. Questa sezione è essenziale per chiunque crei, esegua test o esegua il debug di applicazioni collegate a Adobe Learning Manager.
Le API Adobe Learning Manager richiedono rigorosamente questo tipo di contenuto.