Publié à l’origine le 6/11/2013 sur le blog des développeurs de Valence par Sarah-Beth Bianchi.
Dans la recette API Cookbook de cette semaine, nous démontrons comment ajouter un nouvel utilisateur à l’environnement d’apprentissage à l’aide des API Brightspace. Dans ce scénario, un étudiant s’est inscrit et peut se connecter au portail de l’établissement, qui agit comme un système d’information sur les étudiants et un mécanisme d’authentification unique pour le LMS. Lorsque l’utilisateur se branche sur le portail, nous devons vérifier si l’utilisateur existe dans le LMS. Si l’utilisateur n’existe pas, nous devons ajouter cet utilisateur au LMS, l’inscrire à ses cours, puis procéder à l’authentification - le tout dans un processus invisible pour l’utilisateur. Ce scénario suppose que le portail transmet les données appropriées pour la création et l’inscription des utilisateurs.
Chaque fois qu’un étudiant se connecte au portail, nous devons vérifier si cet utilisateur existe déjà dans le LMS en recherchant l’OrgDefinedId ou le nom d’utilisateur via le API utilisateur. Regardons un exemple d’un étudiant avec le nom d’utilisateur 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"}
Cet utilisateur existe déjà dans le LMS, de sorte que le système devrait procéder à l’authentification de l’utilisateur.
Regardons maintenant un exemple où un étudiant n’existe pas dans le LMS :
GET /d2l/api/lp/1.0/users/ ?userName=IElba404 Not Found{"Errors » :[{"Message » : « Resource Not Found"}]}
Dans ce cas, nous devons ajouter ce nouvel utilisateur :
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"}
Conseil: S’il vous arrive de ne pas être familier avec le RoleId que vous devez attribuer à l’utilisateur, vous pouvez récupérer une liste de RoleId :
GET /d2l/api/lp/1.0/roles/200 OK[{"Identifier » :"578 »,"DisplayName » :"End User »,"Code » :"End User"},{"Identifier » :"579 »,"DisplayName » :"Resource Creator »,"Code » :null},{"Identifier » :"580 »,"DisplayName » :"Administrator »,"Code » :null}]
Une fois que l’utilisateur est ajouté au LMS, nous pouvons récupérer une liste de toutes les inscriptions pour cet utilisateur. Par exemple, nous pouvons récupérer cette liste pour l’utilisateur que nous venons d’ajouter :
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 » : « Organization »,"Name » : « Organization"},"Name » : « Dev »,"Code » : null},"Role » : {"Id » : 578,"Code » : « End User »,"Name » : « End User"}}}]}
Inscrivons maintenant l’utilisateur à son premier cours :
POST /d2l/api/lp/1.0/enrollments/{"OrgUnitId » : 6609,"UserId » : 20216,"RoleId » : 578}200 OK{"OrgUnitId » :6609,"UserId » :20216,"RoleId » :578,"IsCascading » :false}
Ceci conclut les bases de la création d’un nouvel utilisateur à l’aide des API Valence Learning Framework.