Publicado originalmente el 6/11/2013 en el Blog de Desarrolladores de Valence por Sarah-Beth Bianchi.
En la receta del libro de recetas de API de esta semana, demostramos cómo agregar un nuevo usuario al entorno de aprendizaje mediante las API de Brightspace. En este escenario, un estudiante se ha inscrito y puede iniciar sesión en el portal de la institución, que actúa como un sistema de información estudiantil y un mecanismo de inicio de sesión único para el LMS. Cuando el usuario inicia sesión en el portal, debemos verificar si el usuario existe en el LMS. Si el usuario no existe, debemos agregarlo al LMS, inscribirlo en sus cursos y luego continuar con la autenticación, todo en un proceso que es invisible para el usuario. En este escenario se supone que el portal pasa los datos adecuados para la creación e inscripción de usuarios.
Cada vez que un estudiante inicia sesión en el portal, debemos verificar si ese usuario ya existe en el LMS buscando el OrgDefinedId o el UserName a través de la etiqueta API de usuario. Veamos un ejemplo de un estudiante con el nombre de usuario 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"}
Este usuario ya existe en el LMS, por lo que el sistema debe continuar con la autenticación del usuario.
Ahora veamos un ejemplo en el que un estudiante no existe en el LMS:
GET /d2l/api/lp/1.0/users/?userName=IElba404 Not Found{"Errors":[{"Message": "Resource Not Found"}]}
En este caso, necesitamos agregar este nuevo usuario:
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"}
Propina: Si no está familiarizado con el RoleId que debe asignar al usuario, puede recuperar una lista de RoleId:
GET /d2l/api/lp/1.0/roles/200 OK[{"Identifier":"578","DisplayName":"Usuario final","Code":"Usuario final"},{"Identifier":"579","DisplayName":"Resource Creator","Code":null},{"Identifier":"580","DisplayName":"Administrator","Code":null}]
Una vez que el usuario se agrega al LMS, podemos recuperar una lista de todas las inscripciones de ese usuario. Por ejemplo, podemos recuperar esta lista para el usuario que acabamos de agregar:
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": "Usuario final","Name": "Usuario final"}}}]}
Ahora vamos a inscribir al usuario en su primer curso:
POST /d2l/api/lp/1.0/enrollments/{"OrgUnitId": 6609,"UserId": 20216,"RoleId": 578}200 OK{"OrgUnitId":6609,"UserId":20216,"RoleId":578,"IsCascading":false}
Esto concluye los conceptos básicos de la creación de un nuevo usuario mediante las API del Marco de Aprendizaje de Valence.