Ir para conteúdo principal

Exemplo API ClassOnlive criação de curso por temas

Exemplo de documentação da API ClassOnlive

David de ClassOnLive avatar
Escrito por David de ClassOnLive
Atualizado esta semana

Vamos mostrar um exemplo utilizando diferentes requisições da API para criar um curso por temas.

Para isso utilizamos a requisição POST content. Podemos encontrar a explicação e o exemplo da requisição na nossa documentação da API na seção “CONTENT” -> “Content General” -> “Criar um content”.

POST https://www.apiclassonlive.com/api/v1/eyJhzI1NiJ9.eyjUzLjUz.../content

Este método deverá levar no seu request body o título do curso e o tipo de curso. No nosso caso “Temas”:

{
"title": "Título de exemplo",
"type": "Temas"
}

Se tudo correu bem, esta requisição nos devolve um objeto com a seguinte estrutura:

{
"ok": true,
"contentId": 33078
}

Este objeto conterá a chave “contentId”, a qual identificará, a partir de agora, o curso criado.

Agora que temos o curso criado, vamos adicionar algum tema. Para isso, podemos ver o exemplo na nossa documentação na seção “CONTENT” -> “Temas” -> “Adicionar um tema a um curso”.

POST https://www.apiclassonlive.com/api/v1/ eyJhzI1NiJ9.eyjUzLjUz.../theme

O seu correspondente request body seria o seguinte:

{
"title":"Título do tema"
"description":"Descrição do tema"
"contentId":33078 // contentId recebido da resposta anterior
"order":1 // Posição que o tema criado ocupará
}

A resposta que receberemos será a seguinte:

{
"ok": true,
"themeId": 38
}

Onde “themeId” será o identificador que faz referência ao novo tema criado.

Com esta requisição poderemos criar tantos temas quanto forem necessários para o nosso curso.

Um tema em si não pode armazenar nenhum tipo de recurso para o aluno. Os temas armazenam módulos, os quais, por sua vez, armazenam o conteúdo que o aluno poderá visualizar.

O passo seguinte é criar um módulo associado ao tema. Para isso, podemos ver como criar um módulo na seção “CONTENT” -> “Temas” -> “Adicionar um módulo a um tema” na documentação.

POST https://www.apiclassonlive.com/api/v1/eyJhzI1NiJ9.eyjUzLjUz.../theme/addModule

Onde o seu request body será similar ao seguinte:

 {
"title":"Título do módulo"
"description":"Descrição do novo módulo"
"themeId":38,
"contentId":33078
"order":1 // Posição que o módulo ocupará dentro do tema
}

Como resultado desta requisição, receberemos um objeto com a seguinte estrutura:

{
"ok": true,
"moduleId": 60
}

Agora o nosso curso contém um tema que, por sua vez, contém um módulo.

Para adicionar material a esse módulo, por enquanto não há métodos disponíveis na nossa API; portanto, o processo de adicionar material deverá ser feito a partir do nosso site.

Uma vez que temos o nosso curso preparado, o passo seguinte seria poder adicionar alunos a ele.

Para isso dispomos da requisição content/student. Podemos ver mais sobre ela na seção da API “USUARIOS” -> “Applicant/alumno” -> “Adicionar um aluno a um content”.

POST https://www.apiclassonlive.com/api/v1/eyJhzI1NiJ9.eyjUzLjUz.../content/student

Com o seu correspondente request body:

{
"email": "[email protected]",
"contentId": 33078,
"name": "nome do aluno",
"themes": ["38"],
}

A chave “themes” é opcional. Só serve quando se adicionam alunos a um curso do tipo “Temas”. Serve para adicionar um aluno a um curso por temas quando não se deseja que ele tenha acesso a todos os temas do curso. Se este for o caso, deve-se indicar dentro do Array os “themeId” aos quais se deseja adicionar o aluno.

Caso contrário, se se deseja que o aluno acesse todos os temas, não é necessário adicionar essa chave.

Se tudo correu bem, recebe-se a seguinte resposta:

{
"link": "https://subdomain.classonlive.com/sala-webinar/titulo-de-ejemplo?code=Xs9JH7T/neCiFL93TWAQfQ==", // Só se recebe o link de acesso à sala se o curso for Sessão única ou Sessão Múltipla
"name": "nome do aluno",
"email": "[email protected]",
"applicantId": 142829,
"ok": true,
"isNewUser": true,
"password": "8476235" // Só se recebe se for usuário novo
}

Com este método poderemos adicionar tantos alunos quanto desejarmos.

Agora vamos recuperar os recursos adicionados anteriormente a partir do site para que o aluno do curso possa consumi-los.

Como é um curso por temas, devemos ir à seção “CONTENT RESOURCES” -> “Resource temas/módulos” -> “Receber resources de um módulo”.

GET https://www.apiclassonlive.com/api/v1/eyJhzI1NiJ9.eyjUzLjUz.../theme/getmoduleresources/60

Receberemos uma resposta parecida com a seguinte:

"resources": [
{
"resourceType": "Video",
"title": "vídeo novo",
"description": "Esta é a descrição do vídeo",
"resourceId": 285095
},
{
"resourceType": "Resource",
"title": "Título do recurso",
"description": "Esta é a descrição do documento",
"resourceId": 380443
},
{
"resourceType": "Session",
"resourceId": 614091,
"initOneDayDate": 1621404000000,
"initMidLongDate": null,
"endMidLongDate": null,
"theContentDuration": "d30m",
"theContentMethod": "Broadcast",
"theContentType": "One_Day",
"theAssignedExpert": "[email protected]"
},...

Aqui aparecem todos os recursos associados ao módulo adicionado como parâmetro na requisição. Com este objeto poderemos listar esses recursos no nosso site.

Se agora quisermos, além disso, fornecer o link de acesso ao recurso, deveremos chamar a seguinte requisição. Poderemos encontrar mais detalhes na documentação na seção “CONTENT RESOURCES” -> “Resource temas/módulos” -> “Receber o link de um resource de um módulo”.

GET https://www.apiclassonlive.com/api/v1/eyJhzI1NiJ9.eyjUzLjUz.../content/getmoduleresourcelink/Resource/380443

Esta requisição é composta por dois parâmetros. “Resource” é o “resourceType” recebido da requisição descrita anteriormente. Neste caso, tipo “Resource”, e 380443, o identificador do resource também recebido da requisição anterior.

A resposta que receberemos a seguir terá esta estrutura:

{
"ok": true,
"link": "https://www.example.com/arquivo.pdf"
}

Com isso, terminamos o exemplo de como criar um curso do tipo temas, adicionar temas e módulos dentro de cada tema e, finalmente, mostrar os recursos de um módulo para que os alunos tenham acesso a eles.

Isto respondeu à sua pergunta?