Pré-requisito (IMPORTANTE)
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
Atenção: É 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.
IMPORTANTE: Por fim, para que seja possível fazer o De-Para dos usuários na Engage com o sistema de terceiro, a partir das instruções disponíveis neste tutorial, é neccessário que o usuário esteja previamente cadastrado no portal Engage ou que o cliente desenvolva em seu processo de integração uma rotina para, primeiramente, criar o usuário na Engage e depois sim fazer o De-Para com os usuários de seu sistema. A documentação para criar novos usuários na Engage encontram-se dissponíveis neste link.
1. Ambiente de Homologação
Para desenvolvimento e testes de integração com a plataforma Engage, é disponibilizada abaixo a URL do ambiente de homologação:
2. Ambiente de Produção
- URL da API REST
- URL do front-end
- https://one.engage.bz/ (URL padrão da plataforma) OU
- https://{customer_id}.engage.bz/
3. 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. POST /auth
Este método deve ser utilizado nos seguintes cenários:
- Nos casos em que o login é efetuado no próprio site
- 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 2018 20:06:53 GMT",
".expires": "Fri, 11 Aug 2018 20:31:53 GMT"
}
- Em caso de falha, o retorno será semelhante ao JSON abaixo:
{
"error": "error_code",
"error_description": "This is an error."
}
5. POST/{customerId}/users/identifiers?customerToken={customerToken}
Para viabilizar o SSO na plataforma Engage com o ID interno de um sistema de terceiros, é necessário criar uma espécie de “De-Para” dentro do Engage. Este serviço permite que esta tarefa seja realizada.
Para consumir este serviço, é necessário estar autenticado com um usuário que possua a permissão UserManagement, 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 devem 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. |
customerToken | Query | String | Sim | O Token que representa a instância. Este parâmetro deve ser enviado por questões de segurança, visando manter a integridade dos dados. Esta informação é fornecida pela equipe da Engage e deve ser armazenada pela aplicação terceira em local seguro. |
identifiers | Body | Array | Sim | Deve ser enviado um array de objetos no corpo da requisição, conforme exemplo abaixo: [ { "user_login": "string", "client_application_id": "string", "identifier": "string" } ] OBS: Content-Type deste parâmetro deve ser application/json |
Onde:
Parâmetro | Tipo de Dado | Obrigatório | Único | Descrição |
user_login | String | Sim | Não | Login do usuário no Engage (É a mesma informação que o usuário utilizaria para logar no Engage caso tivesse informando seu usuário e senha para autenticar com as credenciais do Engage) |
client_application_id | String | Sim | Sim | client_id da plataforma externa que está se integrando no engage, ou seja, o mesmo client_id utilizado para obter o access_token de super usuário para consumir este serviço. |
identifier | String | Sim | Sim | Identificador do usuário na plataforma externa, podendo ser o UserId, um Guid, ou qualquer outra informação. Vale ressaltar que esta informação é única, ou seja, não é possível ter o mesmo identificador para dois usuários diferentes. |
6. POST /auth – grant_type=custom_sso
Este grant_type é uma forma nativa do Engage de permitir o SSO do usuário utilizando o identificador de sistemas de terceiros podendo ser um UserId, um Guid, etc...
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 | custom_sso | Como a autenticação se dará através identificador único – podendo ser ID auto incremento, Global Unique Identifiers [GUID], etc - de aplicações externas (que deverá estar previamente cadastrados na Plataforma Engage), este grant type deverá ser enviado hardcoded na requisição. |
customer_id | String | Sim | ID da instância que representa o ambiente do cliente. Esta informação será fornecida pela equipe da Engage. | |
customer_token | String | Sim | - | Token que representa o ambiente do cliente que está tentando ser acessado. Esta informação será fornecida pela equipe da Engage e deverá ser armazenada pela aplicação consumidora em local seguro. |
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 e deverá ser armazenada pela aplicação consumidora em local seguro. |
user_identifier | String | Sim | - | Identificador único do usuário que é utilizado na aplicação de origem para identificar o usuário. Pode ser um ID auto incremento, um GUID, um hash ou qualquer outra informação que permita a identificação do respectivo usuário. |
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": "fluig",
"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",
"key": "633cd237-42f4-4859-ba84-27789a39e8a1"
}
- Em caso de falha, o retorno será semelhante ao JSON abaixo:
{
"error": "error_code",
"error_description": "This is an error."
}
7. Realizando o Single-Sign On na Plataforma Engage
Em posse do parâmetro key - obtido no Passo 6 - basta fazer o redicionamento de sua aplicação para uma das URL's abaixo, a depender do ambiente que você está utilizando, passando o key obtido, conforme exemplo abaixo:
- https://one.engage.bz/#/login?key={key} - com a URL padrão da plataforma https://one.engage.bz OU
- https://{customer_id}.engage.bz/#/login?key={key} - com o subdomínio do cliente na plataforma.
O SSO será realizado e o acesso à plataforma Engage será liberado.
Este artigo foi útil?
Que bom!
Obrigado pelo seu feedback
Desculpe! Não conseguimos ajudar você
Obrigado pelo seu feedback
Feedback enviado
Agradecemos seu esforço e tentaremos corrigir o artigo