Det här dokumentet beskriver ett rekommenderat sätt att synkronisera användare från en kund till Learnifier via Learnifier Public API.
Förutsättningar
Kundens data betraktas som masterdata, det vill säga om en användare finns hos kunden bör den skapas i Learnifier, och om en Learnifier-användare inte finns hos kunden bör Learnifier-användaren tas bort eller döljas.
Kunden tillhandahåller ett unikt ID som används för att identifiera en användare. Detta ID kallas "extern id" på Learnifier-sidan. Externt id är en skiftlägeskänslig sträng och består av alfanumeriska tecken.
Kunden måste konfigurera API-autorisering via nycklar för att kunna komma åt Learnifier Public API. Se https://learnifier.com/api för mer information. Nycklarna måste vara Back Office-nycklar så att nyckeln har fullständig åtkomst till Learnifier.
Synchroniseringen görs över alla användare i riket och inte individuella klienter.
Rekommenderad algoritm
Hämta alla Learnifier-användare via GET /users. Se till att kontrollera resultatet för att se om det finns fler användare tillgängliga. Det kan vara nödvändigt att anropa GET /users flera gånger med hjälp av begränsnings- och förskjutningsparametrarna för att hämta alla användare.
Hämta alla lokala användare.
För varje lokal användare:
Hitta matchande Learnifier-användare (använd extern id).
Om användaren saknas:
Skapa användaren via (POST /users).
Ta bort Learnifier-användaren från lokal listan.
Fortsätt till nästa användare.
Ta bort Learnifier-användaren från lokal listan.
Jämför detaljerna för lokal användare med Learnifier-användaren.
Om de är olika, använd PATCH /users/{userId} för att uppdatera Learnifier-användaren. Använd vid behov autoClearEmail-flaggan, se diskussionen i avsnittet nedan.
För alla Learnifier-användare som fortfarande finns i den lokala listan:
Ta bort (DELETE /users/{userId}) eller inaktivera/lås användaren (PATCH /users/{userId} för att ställa in hardLock till true).
Om antalet användare är stort kan användarsynkroniseringen använda betydande systemresurser i Learnifier, så kör detta endast periodvis, t.ex. en gång om dagen eller en gång i veckan.
AutoClearEmail
När en användare uppdateras kan flaggan "autoClearEmail" användas. E-postadressen (eller användarnamnet om e-postadressen inte används) rensas automatiskt på duplicerade användare.
Detta förenklar algoritmen för användarsynkroniseringen vid ändring av e-postadress/användarnamn när e-postadressen/användarnamnet redan används.
Om den inte används måste algoritmen ta bort den duplicerade användaren eller ändra e-postadressen/användarnamnet innan ändringen utförs, annars kommer operationen att misslyckas.
Att använda autoClearEmail kan resultera i Learnifier-användare utan e-postadress eller användarnamn. De kommer fortfarande vara åtkomliga via API med hjälp av extern id.
Blandning av Learnifier-användare med synkroniserade användare
Den ovan beskrivna algoritmen tar inte hänsyn till en blandning av användare som skapas direkt i Learnifier och användare som synkroniseras från kunden. Ett exempel på detta kan vara administratörer som skapas direkt i Learnifier medan alla elever synkroniseras från kunden.
Ett enkelt sätt att skilja mellan de två kategorierna av användare är att kontrollera om användaren har en extern id eller inte. En användare som skapas direkt i Learnifier kommer inte ha en extern id. Modifiera algoritmen ovan för att ignorera användare som inte har en extern id.