Vamos a mostrar un ejemplo utilizando diferentes peticiones de la API para crear un curso por temas.
Para ello utilizamos la petición POST content. Podemos encontrar la explicación y el ejemplo de la petición en nuestra documentación de la API en el apartado “CONTENT” -> “Content General” -> “Crear un content”.
POST https://www.apiclassonlive.com/api/v1/eyJhzI1NiJ9.eyjUzLjUz.../content
Este método deberá de llevar en su request body el título del curso y el tipo de curso. En nuestro caso “Temas”:
{
"title": "Título de ejemplo",
"type": "Temas"
}
Si todo ha ido bien, esta petición nos devuelve un objeto con la siguiente estructura:
{
"ok": true,
"contentId": 33078
}
Este objeto contendrá la clave “contentId” la cual identificará a partir de ahora el curso creado.
Ahora que tenemos el curso creado vamos a añadirle algún tema. Para ello podemos ver el ejemplo en nuestra documentación en el apartado “CONTENT” -> “Temas” -> “Añadir un tema a un curso”.
POST https://www.apiclassonlive.com/api/v1/ eyJhzI1NiJ9.eyjUzLjUz.../theme
Su correspondiente request body sería el siguiente:
{
"title":"Título del tema"
"description":"Descripción del tema"
"contentId":33078 // contentId recibido de la respuesta anterior
"order":1 // Posición que ocupará el tema creado
}
La respuesta que recibiremos será la siguiente:
{
"ok": true,
"themeId": 38
}
Donde “themeId” será el identificador que hace referencia al nuevo tema creado.
Con esta petición podremos crear tantos temas como sean necesarios para nuestro curso.
Un tema en si no puede almacenar ningún tipo de recurso para el alumno. Los temas almacenan módulos. Los cuales a su vez almacenan el contenido que el alumno podrá visualizar.
El siguiente paso es crear un módulo asociado al tema. Para ello podemos ver como crear un módulo en el apartado “CONTENT” -> “Temas” -> “Añadir un módulo a un tema” en la documentación.
POST https://www.apiclassonlive.com/api/v1/eyJhzI1NiJ9.eyjUzLjUz.../theme/addModule
Donde su request body será similar al siguiente:
{
"title":"Título del módulo"
"description":"Descripción del nuevo módulo"
"themeId":38,
"contentId":33078
"order":1 // Posición que ocupará el módulo dentro del tema
}
Como resultado de esta petición recibiremos un objeto con la siguiente estructura:
{
"ok": true,
"moduleId": 60
}
Ahora nuestro curso contiene un tema que a su vez contiene un módulo.
Para añadir material a dicho módulo de momento no hay disponibles métodos en nuestra API por lo que el proceso de añadir material deberá de hacerse desde nuestra web.
Una vez tenemos nuestro curso preparado el siguiente paso sería poder añadir alumnos a él.
Para ello disponemos de la petición content/student. Podemos ver más de ella en el apartado de la API “USUARIOS” -> “Applicant/alumno” -> “Añadir un alumno a un content”.
POST https://www.apiclassonlive.com/api/v1/eyJhzI1NiJ9.eyjUzLjUz.../content/student
Con su correspondiente request body:
{
"email": "[email protected]",
"contentId": 33078,
"name": "nombre alumno",
"themes": ["38"],
}
La clave “themes” es opcional. Solo sirve cuando se añaden alumnos a un curso del tipo “Temas”. Sirve para añadir a un alumno a un curso por temas pero no se desea que tenga acceso a todos los temas del curso. Si este es el caso se debe de indicar dentro del Array los “themeId” a los que se desea añadir al alumno.
De lo contrario, si se desea que el alumno acceda a todos los temas no es necesario añadir dicha clave.
Si todo ha ido bien se recibe la siguiente respuesta:
{
"link": "https://subdomain.classonlive.com/sala-webinar/titulo-de-ejemplo?code=Xs9JH7T/neCiFL93TWAQfQ==", // Solo se recibe el link de acceso a sala si el curso es Sesión única o Sesión Múltiple
"name": "nombre alumno",
"email": "[email protected]",
"applicantId": 142829,
"ok": true,
"isNewUser": true,
"password": "8476235" // Sólo se recibe si es usuario nuevo
}
Con este método podremos añadir tantos alumnos como deseemos.
Ahora vamos a recibir los recursos añadidos anteriormente desde la web para que el alumno del curso pueda consumirlos.
Como es un curso por temas debemos de dirigirnos al apartado “CONTENT RESOURCES” -> “Resource temas/módulos” -> “Recibir resources de un módulo”.
GET https://www.apiclassonlive.com/api/v1/eyJhzI1NiJ9.eyjUzLjUz.../theme/getmoduleresources/60
Recibiremos una respuesta parecida a la siguiente:
"resources": [
{
"resourceType": "Video",
"title": "vídeo nuevo",
"description": "Esta es la descripción del vídeo",
"resourceId": 285095
},
{
"resourceType": "Resource",
"title": "Título del recurso",
"description": "Esta es la descripción del documento",
"resourceId": 380443
},
{
"resourceType": "Session",
"resourceId": 614091,
"initOneDayDate": 1621404000000,
"initMidLongDate": null,
"endMidLongDate": null,
"theContentDuration": "d30m",
"theContentMethod": "Broadcast",
"theContentType": "One_Day",
"theAssignedExpert": "[email protected]"
},...
Aquí aparecen todos los recursos asociados al módulo añadido como parámetro en la request. Con este objeto podremos listar dichos recursos en nuestra web.
Si ahora queremos además dar el enlace de acceso al recurso deberemos de llamar a la siguiente petición. Podremos encontrar más detalle en la documentación en el apartado “CONTENT RESOURCES” -> “Resource temas/módulos” -> “Recibir el enlace de un resource de un módulo”.
GET https://www.apiclassonlive.com/api/v1/eyJhzI1NiJ9.eyjUzLjUz.../content/getmoduleresourcelink/Resource/380443
Esta petición se compone de dos parámetros. “Resource” es el “resourceType” recibido de la petición anteriormente descrita. En este caso tipo “Resource” y 380443, el identificador del resource también recibido de la petición anterior.
La respuesta que recibiremos a continuación tendrá esta estructura:
{
"ok": true,
"link": "https://www.example.com/archivo.pdf"
}
Con esto, terminamos el ejemplo de como crear un curso de tipo temas, añadir temas y módulos dentro de cada tema y finalmente mostrar los recursos de un módulo para que los alumnos tengan acceso a ellos.