Acessar conteúdo hospedado em outro sistema (sem novo login)

Modificado em Qui, 29 Out na (o) 4:40 PM

Um treinamento que fica em outra plataforma pode ser aberto de dentro da Engage, sem o usuário digitar credenciais de novo. A Engage entrega os dados da sessão para uma página sua, e essa página faz o login no seu sistema. Este artigo mostra como montar essa página e como devolver a nota para a Engage.

Neste artigo

  1. Antes de começar
  2. Montar a atividade
  3. Devolver a nota para a Engage
  4. Cuidados
  5. Problemas comuns

Antes de começar

  • Este passo é de desenvolvimento front-end (HTML e JavaScript), não de API. Quando o seu servidor precisar chamar a API, as credenciais estão em Comece por aqui: credenciais para integrar com a API da Engage.
  • O template de atividade customizada atualizado, que você pede ao Suporte em meajuda@engage.bz.
  • Uma forma de o seu sistema reconhecer o usuário: a Engage entrega o login e o e-mail do usuário logado, e um dos dois precisa existir também no seu lado.
  • Monte e teste na instância de homologação; publique em produção só depois de validado.

Montar a atividade

1Prepare o template

  1. Descompacte o template e abra o index.html.
  2. Implemente a sua lógica de login no ponto indicado pelos comentários do arquivo.
  3. Compacte de novo em .zip, com o index.html na raiz.

2Crie a atividade na Engage

  1. Na área administrativa, crie uma atividade do tipo Customizada e salve. O campo Arquivo é habilitado.
  2. Clique em Importar, envie o .zip, atualize a biblioteca de mídia e selecione o index.html.
  3. Na aba Avançado, preencha o Código externo com o ID do treinamento no seu sistema.
  4. Vincule a atividade a um módulo e teste com um usuário comum.

Dica

Crie uma atividade Customizada para cada treinamento do seu sistema. O Código externo é o que liga as duas pontas: ele chega à sua página como externalCode.

3Converse com o player

A sua página roda dentro de um iframe do player e troca mensagens com ele por postMessage. O corpo é uma string JSON com message e, quando houver, param:

Você enviaO player respondePara que serve
{"message":"requestUserData"}retrieveUserDataDados do usuário logado, incluindo login e email
{"message":"requestActivityData"}retrieveActivityDados da atividade, incluindo o externalCode
{"message":"requestParameters"}retrieveParametersParâmetros configurados na atividade
{"message":"requestUserRelated"}retrieveUserRelatedDados complementares do usuário
{"message":"setAnswer","param":{"score":100}}—Conclui a atividade com a nota informada
{"message":"verifyActivityStatus"}—Consulta a situação da atividade
{"message":"refreshPage"}—Pede a atualização da tela do player

Envie as solicitações só depois do load da página.

Cuidado

A mensagem retrieveUserData traz dado pessoal. No seu addEventListener('message', ...), compare event.origin com o domínio do portal da instância (protocolo e domínio do platform_url, em GET /{customer_id}/infos/token) e descarte tudo que não bater. Ao enviar, use o domínio do portal como destino — nunca '*'.

Devolver a nota para a Engage

Há duas formas, e só uma precisa de integração no servidor:

  • Dentro da sessão (recomendado): quando o usuário termina com a página aberta, ela envia setAnswer com o score. Não precisa de webhook.
  • Fora da sessão: quando a conclusão acontece depois (correção manual, processamento em lote), o seu sistema envia o resultado para a Engage pela API, e é aí que um webhook do seu lado faz sentido.

Cuidados

  • login e email são dado pessoal. Não grave em console, não coloque em URL nem em localStorage. Se precisar registrar o acesso, registre no seu servidor.
  • Não coloque segredo no index.html. O arquivo vai para o navegador do usuário. Chamada que use client_secret ou token de servidor fica no seu back-end.
  • Não dependa de número de linha do template. Ele muda a cada versão; use os comentários do arquivo como referência.
  • A mesma página roda no navegador e no aplicativo da Engage.
  • Teste com um usuário comum. Testar só com administrador esconde erros de permissão e de vínculo de trilha.

Problemas comuns

O que apareceCausa provávelO que fazer
A atividade abre em brancoO index.html não foi selecionado, ou o .zip tem uma pasta a mais na raizRecompacte com o index.html na raiz e selecione-o de novo
A página não recebe resposta do playerA solicitação não foi enviada, ou foi enviada antes do loadEnvie as mensagens depois do load da página
O usuário não é reconhecido no seu sistemaO login ou o email não existe do seu ladoAlinhe o cadastro, ou troque o campo usado para reconhecer o usuário
externalCode chega vazioO Código externo não foi preenchido na aba AvançadoPreencha o Código externo da atividade
O usuário conclui no seu sistema e a atividade segue pendenteNenhuma das formas de devolver a nota foi implementadaEnvie setAnswer ou devolva o resultado pela API

Próximo passo

Para levar o usuário do seu sistema para a Engage, no sentido contrário, veja SSO — Passo 1: ligar o usuário do seu sistema ao usuário da Engage.

Precisa de ajuda?

Escreva para meajuda@engage.bz informando o customer_id, o ambiente e a atividade. Nunca envie senhas, tokens ou o client_secret por e-mail.

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