Documentação para Obtenção de Históricos de Treinamentos Realizados

Modificado em Qui, 25 Jul, 2024 na (o) 7:03 PM

1.     Pré-requisito (IMPORTANTE)

Antes de utilizar este serviço é necessário que o desenvolvedor valide com o time de Recursos Humanos o que significa, para eles, o termo treinamento pois, pela nossa experiência, alguns clientes entendem como treinamento:

  • O módulo;
  • A trilha de aprendizagem;
  • Ou o ambiente.

Como esta é uma API genérica, que atende a todos estes cenários, é necessária esta definição antes de iniciar os trabalhos de desenvolvimento.

Além disso, para utilização dos serviços da API da Engage é necessário ter em mãos os parâmetros abaixo:

  • username;
  • password;
  • customer_id;
  • customer_token;
  • client_id;
  • client_secret.

    Para gerar estes parâmetros, siga os procedimentos descritos neste tutorial. Caso tenha alguma dúvida ou enfrente qualquer problema para obtê-los, entre em contato com o Suporte Técnico da Engage através do endereço meajuda@engage.bz 

    Por fim, é extremamente recomendado que os testes e desenvolvimento da integração sejam feitos utilizando nosso ambiente de HOMOLOGAÇÃO. Aponte a integração para o ambiente produtivo da Engage somente quando ela estiver concluída, testada e homologada.


 

2.     Ambiente de Homologação

Para desenvolvimento e testes de integração com a plataforma Engage, é disponibilizada abaixo a URL do ambiente de homologação:

 

3.     Ambiente de Produção

 

4.     Autenticação

Para obter acesso aos dados disponibilizados pelos serviços da API é necessário fazer a autenticação utilizando o access_token enviado. Como o serviço utiliza o tipo de autenticação HTTP Bearer, o token de acesso deverá ser inserido na propriedade Authorization do cabeçalho HTTP, conforme exemplo abaixo:

 

Authorization Bearer {access_token}

 

OBS.: A palavra Bearer deve ser adicionada antes do token e separada por um espaço.

 

4.1     POST /auth

Este método deve ser utilizado nos seguintes cenários:

  1. Nos casos em que o login é efetuado no próprio site
  2. Para executar métodos que necessitam de autenticação.

Para acessar os métodos que necessitam de autenticação é preciso enviar o parâmetro access_token como argumento para as requisições, ou guardar o cookie gerado a partir deste método e utilizá-lo nas requisições seguintes.

OBS.: O access_token tem um tempo de vida de 25 minutos. Transcorrido este tempo, ele expira e o acesso aos endpoints é negado – devolvendo o status HTTP 401- Unauthorized – sendo necessário renová-lo a partir de uma nova chamada a este endpoint.

 

Abaixo, seguem descritos os parâmetros que devem ser enviados na requisição.

 

Parâmetro

Tipo

Obrigatório

Valor Padrão

Descrição

grant_type

String

Sim

password

Como a autenticação se dará por usuário e senha, o grant_type a chamada deverá enviar o valor password para este parâmetro.

username

String

Sim

-

Login do usuário.

password

String

Sim

-

Senha do respectivo usuário.

client_id

String

Sim

-

ID da aplicação que está se integrando ao Engage. Esta informação será fornecida pela equipe da Engage.

client_secret

String

Sim

-

Senha da aplicação que está se integrando ao Engage. Esta informação será fornecida pela equipe da Engage.

customer_id

String

Sim

-

ID da instância que representa o ambiente do cliente. Esta informação será fornecida pela equipe da Engage.

 

 

OBS: O Content-Type dos parâmetros acima deve ser: application/x-www-form-urlencoded, conforme exemplo abaixo feito através do software Postman:



 

Retornos: 

  • Em caso de sucesso, o retorno será semelhante ao JSON abaixo:

{

    "access_token": "dskdmkdnfi3948339w",

    "token_type": "bearer",

    "expires_in": 1499,

    "client_id": "my_client_id",

     "customer_id": "customer_id",

    "user_id": "1",

    ".issued": "Fri, 11 Aug 2017 20:06:53 GMT",

    ".expires": "Fri, 11 Aug 2017 20:31:53 GMT"

}

 

  • Em caso de falha, o retorno será semelhante ao JSON abaixo:

{

    "error": "error_code",

    "error_description": "This is an error."

}

 

4.2.    Permissões de Acesso

Os acessos aos métodos da API são autorizados com base nas permissões que um determinado possui. Por exemplo, para acessar determinados endpoints, não basta apenas estar autenticado, mas, também, possuir permissão de acesso ao recurso. Por exemplo, para efetuar cadastros de usuários é necessária permissão “UserManagement” no sistema. Abaixo, segue a lista das principais permissões do sistema.

  • UserManagement:
  • ScoreManagement:
  • GameManagement:
  • GroupManagement:
  • AchievementManagement:

 

5.    Históricos

5.1. POST {customerId}/attempts/historyData

Este serviço deve ser utilizado para consultar o andamento dos treinamentos realizadas pelos usuários. Através deste serviço é possível obter dados de um ou mais usuários em diversos treinamentos bem como filtrar pelo status de realização do treinamento.

Para consumir este serviço, é necessário estar autenticado com um usuário que possua a permissão CertificateManagement, ou seja, durante a chamada a este método, é obrigatório o envio do access_token no Header da requisição de algum usuário que possua esta permissão de acesso. Para maiores detalhes, consulte o capítulo Autenticação.

Abaixo, segue um exemplo de como o token de acesso deve ser enviado no Header da requisição.

Authorization: Bearer {access_token}

 

Abaixo, seguem descritos os parâmetros que obrigatórios e opcionais que podem ser enviados na requisição.

 

  • Parâmetros de Entrada:

Parâmetro

Tipo do Parâmetro

Tipo do Dado

Obrigatório

Descrição

customerId

Path

String

Sim

Id da instância que compõe a rota do endpoint. Esta informação será fornecida pela equipe da Engage.

filters

Body

Array

Sim

Objeto JSON que representa os filtros possíveis de serem utilizados, conforme modelo abaixo:

{

    "entity_type_id":"RD",

    "course_external_codes":[],

    "users":[],

    "attempt_status":[ 

           "concluido", 

           "aprovado", 

           "reprovado" 

     ],

     "start_date":"2022-08-11T13:45:14.2586346-03:00",

     "end_date":"2022-10-11T20:45:14.2586346-03:00",


}

 

 

 

Onde:  

Parâmetro

Tipo de Dado

Obrigatório

Único

Descrição

entity_type_id

String

Sim

Sim

Flag que representa a unidade de conteúdo que o cliente entende como treinamento, ou seja, de acordo como foi estruturado o programa de treinamentos na plataforma da Engage. Os valores possíveis são:

 

RD – Passar este valor hard coded no filtro para projetos onde o treinamento seja os modulos.

 

TR – Passar este valor hard coded no filtro para projetos onde o treinamento seja a trilha de aprendizagem.

 

CP - Passar este valor hard coded no filtro para projetos onde o treinamento seja ambiente

course_external_codes

Array

Não

Sim

Array de Strings contendo os códigos externos ou os ID’s dos treinamentos na Engage que se deseja filtrar. Este parâmetro é opcional

users_code

Array

Não

Sim

Array de Strings contendo os logins dos usuários ou os Ids dos usuários na Engage que se deseja filtrar. Este parâmetro é opcional

attempt_status

 

Array

Sim

Sim

Array de Strings que representa os status dos treinamentos que se pretendem filtrar. Os valores aceitos são:

  • nao_iniciado: Indica que o aluno acessou o treinamento alguma vez, mas não começou a responder as atividades.
  • em_andamento: Indica que o aluno já começou a acessar os conteúdos do treinamento.
  • concluído: Indica que o aluno respondeu todas as atividades do treinamento.
  • aprovado: Indica que o aluno respondeu todas as atividades do treinamento e atingiu o mínimo exigido para aprovação.
  • reprovado: Indica que o aluno respondeu todas as atividades do treinamento, mas não atingiu o mínimo exigido para aprovação. 
  • aguardando_correcao: Indica que o aluno respondeu todas as atividades do treinamento, mas que há atividades que pendentes de correção.

 

OBS: Para retornar todos os treinamentos realizados, informe um array no seguinte formato:

“attempt_status”: [

“concluido”,

“aprovado”,

“reprovado”

]  

start_date

DateTime

Não

Sim

Período inicial de finalização do treinamento pelo usuário

end_date

DateTime

Não

Sim

Período final de finalização do treinamento pelo usuário 

user_status

Boleano

Não

Não

Filtra pelo status do usuário. Se este parâmetro for omitido, retorna os usuários ativos e inativos.

 

true: Retorna os usuários ativos

false: Retorna os usuários inativos


Importante: É extramamente recomendado o uso o filtro de datas para reduzir o volume de dados e acelerar a pesquisa

start_date
2022-08-11T13:45:14.2586346-03:00 
end_date
2022-10-11T20:45:14.2586346-03:00 


Exemplo de chamada para consulta dos treinamentos realizados pelos usuários.

 

Retornos: 

  • Em caso de sucesso – HTTP 200 (OK) – o retorno será semelhante ao JSON abaixo:

{

   "count": 0,

   "results": [

     {

               "user_id": 175933,

            "user_name": "João da Silva",

            "user_login": "joao.silva",

 "course_id": "44041",

            "entity_type_id": "RD",

            "course_name": "modulo 01",

            "course_external_code": "mission_01",

            "progress": 100.0,

            "score": 100.0,

            "first_start_date": "2021-10-01T07:28:14.063-03:00",

            "finalization_date": "2021-10-02T14:22:22.267-03:00"           

    }

  ]

}

            

Onde:

Parâmetro

Tipo de Dado

Descrição

count

Inteiro

Total de itens retornados de acordo com o resultado da pesquisa.

results

Array

Coleção que contém os dados sobre o aproveitamento do(s) usuário(s) no(s) treinamento(s)

user_id

Inteiro

ID do usuário na Engage.

user_name

String

Nome completo do aluno que realizou o treinamento.

user_login

String

Login do usuário que realizou o treinamento. Este é o mesmo campo utilizado para o usuário se autenticar no Engage.

course_id

String

ID do treinamento no Engage.

 

entity_type_id

 

 

String

Via de regra, retorna o mesmo valor informado no parâmetro de entrada entity_type_id. Os valores possíveis para este campo são:

 

RD – Retornado quando o treinamento é considerado a rodada, também chamada de modulo;

 

TR – Retornado quando o treinamento é considerado a trilha de aprendizagem;

 

CP – Retornado quando o treinamento é considerado o ambiente, também chamada de campanha.

 

course_name

String

Nome completo do treinamento

course_external_code

 

String

Código externo do treinamento definido pelo administrador da plataforma.

progress

 

Decimal

Progresso do usuário no treinamento. Varia entre 0 e 100.

Este valor é retornado se o usuário já iniciou ou se concluiu o treinamento caso contrário retorna null;

score

Decimal

Aproveitamento obtido pelo aluno no treinamento. Varia entre 0 e 100.

Este valor é retornado apenas se o usuário já concluiu o treinamento caso contrário retorna null.

first_start_date  

DateTime

Retorna a data de primeiro acesso do usuário no treinamento.

finalization_date

DateTime

Retorna a data que o usuário concluiu o treinamento, caso o treinamento esteja pendente o valor null é retornado.

 

 

  • Em caso de falha – HTTP 400 (BadRequest), 404 (NotFound), etc – o retorno será semelhante ao JSON abaixo:

{

     "count": 1,

     "errors": [

         {

            "error_code": "Não encontrado.",

            "message": "Sua pesquisa não retornou resultados.",

            "data_occurred": "2021-11-11T13:45:14.2586346-03:00"

         }

     ]

}

Este artigo foi útil?

Que bom!

Obrigado pelo seu feedback

Desculpe! Não conseguimos ajudar você

Obrigado pelo seu feedback

Deixe-nos saber como podemos melhorar este artigo!

Selecione pelo menos um dos motivos
A verificação do CAPTCHA é obrigatória.

Feedback enviado

Agradecemos seu esforço e tentaremos corrigir o artigo