Oorspronkelijk gepost op 6/11/2013 op de Valence Developer Blog door Sarah-Beth Bianchi.
In het API Kookboekrecept van deze week laten we zien hoe je een nieuwe gebruiker toevoegt aan de Leeromgeving met behulp van Brightspace API's. In dit scenario heeft een student zich ingeschreven en kan hij inloggen op de portal van de instelling, die fungeert als een studenteninformatiesysteem en een single sign-on-mechanisme voor het LMS. Wanneer de gebruiker zich aanmeldt bij de portal, moeten we controleren of de gebruiker bestaat in het LMS. Als de gebruiker niet bestaat, moeten we die gebruiker toevoegen aan het LMS, hem inschrijven voor zijn cursussen en vervolgens doorgaan met authenticatie - allemaal in een proces dat onzichtbaar is voor de gebruiker. In dit scenario wordt ervan uitgegaan dat de portal de juiste gegevens doorgeeft voor het maken en inschrijven van gebruikers.
Telkens wanneer een student inlogt op het portaal, moeten we controleren of die gebruiker al bestaat in het LMS door te zoeken naar de OrgDefinedId of de UserName via de API's voor gebruikers. Laten we eens kijken naar een voorbeeld van een student met de UserName NCage:
GET /d2l/api/lp/1.0/users/?userName=NCage200 OK{"OrgId":6606,"UserId":10222,"FirstName":"Nicolas","MiddleName": null,"LastName":"Cage","UserName":"NCage","ExternalEmail":"NCage@test.com","OrgDefinedId":"NCage","UniqueIdentifier":"NCage","Activation":{"IsActive":true},"DisplayName":"Nicolas Cage"}
Deze gebruiker bestaat al in het LMS, dus het systeem moet doorgaan met het verifiëren van de gebruiker.
Laten we nu eens kijken naar een voorbeeld waarbij een student niet bestaat in het LMS:
GET /d2l/api/lp/1.0/users/?userName=IElba404 not found{"errors":[{"message": "bron niet gevonden"}]}
In dit geval moeten we deze nieuwe gebruiker toevoegen:
POST /d2l/api/lp/1.0/users/{"OrgDefinedId": "IElba","" FirstName": "Idris","MiddleName": "","LastName": "Elba","ExternalEmail": "IElba@test.com","UserName": "IElba","RoleId": 578,"IsActive": true,"SendCreationEmail": "true"}200 OK{"OrgId":6606,"UserId":20216,"FirstName":"Idris","MiddleName":"","LastName":"Elba","UserName":"IElba","ExternalEmail":"IElba@test.com","OrgDefinedId":"IElba","UniqueIdentifier":"IElba","Activation":{"IsActive":true},"DisplayName":" Idris Elba"}
Fooi: Als u niet weet welke RoleId u aan de gebruiker moet toewijzen, kunt u een RoleId-lijst ophalen:
GET /d2l/api/lp/1.0/roles/200 OK[{"Identifier":"578","DisplayName":"Eindgebruiker","Code":"Eindgebruiker"},{"Identifier":"579","DisplayName":"Resource Creator","Code":null},{"Identifier":"580","DisplayName":"Administrator","Code":null}]
Zodra de gebruiker is toegevoegd aan het LMS, kunnen we een lijst met alle inschrijvingen voor die gebruiker ophalen. We kunnen bijvoorbeeld deze lijst ophalen voor de gebruiker die we zojuist hebben toegevoegd:
GET /d2l/api/lp/1.0/enrollments/users/20216/orgUnits/200 OK{"PagingInfo": {"Bookmark": "6609","HasMoreItems": false},"Items": [{"OrgUnit": {"Id": 6606,"Type": {"Id": 1,"Code": "Organisatie","Name": "Organisatie"},"Name": "Dev","Code": null},"Role": {"Id": 578,"Code": "Eindgebruiker","Name": "Eindgebruiker"}}}]}
Laten we nu de gebruiker inschrijven voor de eerste cursus:
POST /d2l/api/lp/1.0/enrollments/{"OrgUnitId": 6609,"UserId": 20216,"RoleId": 578}200 OK{"OrgUnitId":6609,"UserId":20216,"RoleId":578,"IsCascading":false}
Dit is het einde van de basisprincipes van het maken van een nieuwe gebruiker met behulp van de API's van het Valence Learning Framework.