Ada.ia
Logo Base de Conhecimento

Publisher Full

O Publisher Full é uma funcionalidade que permite exibir objetos do seu projeto BIMachine fora da plataforma, de forma dinâmica, segura e com suporte a filtros personalizados. Essa funcionalidade é ideal para incorporar dashboards, análises, KPIs e mapas em aplicações externas.

A seguir, apresentamos o passo a passo completo para configurar e utilizar o Publisher Full.

1. Chave de aplicação 🔑

Para iniciar a utilização do Publisher Full, é necessário criar uma chave de aplicação, veja o passo a passo abaixo ou mais detalhado aqui:

  • Acesse o menu Gestão de Contas.
  • Clique em Nova Chave de Aplicação.
  • Dê um nome para identificar a chave.
  • Ccopie a chave gerada.

Essa chave será usada para autenticar futuras requisições à API.

2. Geração Token de autenticação 🔐

Com a chave de aplicação, você poderá gerar um token de autenticação do usuário, necessário para validar os acessos externos.

POST
<url_aplicação>/api/token-manager/?appKey=<chave_aplicação>

Request Body:
{
"email":"email@exemplo.com"
}

Resposta Esperada:

{
  "id": 1,
  "applicationKey": {
    "id": 1,
    "name": "NomeDaAplicacao",
    "token": "chave_da_aplicacao",
    "account": {
      "id": 1,
      "accountOwnerId": 1,
      "accountMasterId": 1,
      "applicationKeys": null,
      "name": "NomeDaConta"
    },
    "blockByDomain": false,
    "allowedDomains": null
  },
  "user": {
    "id": 1,
    "username": "usuario@dominio.com",
    "email": "usuario@dominio.com",
    "preferredLanguage": "idioma_preferido",
    "displayName": "Nome de Exibição",
    "viewTutorial": false,
    "createObject": false,
    "addData": false,
    "preferences": {
      "id": 1,
      "defaultProjectId": 0,
      "defaultCockpits": null
    },
    "phone": "(00) 0000-0000",
    "projectLinks": null,
    "members": [1],
    "avatarLink": "/avatar?user-id=1&i=0000000000000&oi=0"
  },
  "token": "token_de_autenticacao"
}

O token gerado é utilizado para autenticar o usuário no BIMachine quando utilizado em outras aplicações. Este Token é único e expirável, o tempo de expiração é de 30 minutos, mas é renovado toda vez que for utilizado.

Exemplo de código JAVA para autenticação por meio do token:

public String getToken(){
    try {
        return new SimpleTimeLimiter().callWithTimeout(new Callable<String>() {
            @Override
            public String call() throws Exception {
                String emailUser = "usuario@dominio.com";
                String appKey = "chave_da_aplicacao";
                RestTemplate restTemplate = new RestTemplate();
                URI uri = UriComponentsBuilder
                    .fromHttpUrl("http://app.bimachine.com.br/api/token-manager")
                    .queryParam("appKey", appKey)
                    .build()
                    .toUri();

                HttpEntity httpEntity = jsonEntity(new EmailToken(emailUser, appKey));
                ResponseEntity<Token> responseEntity = restTemplate.postForEntity(uri, httpEntity, Token.class);

                if (responseEntity.getStatusCode().value() == 200) {
                    return responseEntity.getBody().getToken();
                } else {
                    return null;
                }
            }
        }, 2, TimeUnit.SECONDS, true);
    } catch (Exception e) {
        e.printStackTrace();
        return null;
    }
}

3. Listagem de projetos e objetos 📋

Após autenticar o usuário, você poderá consultar os projetos e objetos disponíveis.

🔎 Listar projetos da conta

GET
<url_aplicação>/api/projects/list?appKey=<chave_aplicação>

🔎 Listar objetos de um projeto

GET
<url_aplicação>/api/projects/<id_projeto>/find-resources-for/<id_usuario>?appKey=<sua_chave_aplicacao>&addCaptions=true&addPublisher=true&filter=analysis&filter=dashboard&filter=maps&filter=kpi

4. Geração da URL para Embed 🔗

Para exibir o objeto fora da plataforma, acesse-o pelo BIMachine, vá até o menu de Publicação e copie o link gerado. Saiba mais.

A URL para embed pode ser customizada conforme parâmetros abaixo:

UriComponentsBuilder url = UriComponentsBuilder.fromHttpUrl("http://" + url_app)
    .path("/publisher/" + Files.getFileExtension(object.getPath()) + ".spr")
    .queryParam("content", object.getPath())
    .queryParam("chart", false)
    .queryParam("applyFrame", true)
    .queryParam("frameBorderColor", "%23CCCCCC")
    .queryParam("borderType", "SIMPLE")
    .queryParam("showUpdateDate", true)
    .queryParam("showTitle", true)
    .queryParam("width", width)
    .queryParam("height", height);

5. Aplicação de filtros 🧩

Você pode aplicar filtros personalizados na URL de publicação do objeto. Para isso, é necessário que o filtro esteja:

  • Criado no projeto.
  • Selecionado na publicação do objeto.

Após estes passos, é necessário converter o(s) filtro(s) desejado(s) com a função JS abaixo:

encodeURIComponent('[{"id":<id_filtro>,"members":["[<nome_do_membro_desejado>]"]}, {"id":<id_filtro>,"members":["[<nome_do_membro_desejado>]"]}]')

Essa função irá retornar uma string que deverá ser agrupado com o link gerado no publisher:

<url_gerado_no_publisher(com seu appKey*)>&filter=<retorno_da_função_js>

*Lembre-se de substituir <appToken> no final da url pelo seu token gerado anteriormente

Esse link irá retornar o objeto do publisher já com o filtro desejado aplicado.

6. Consultas de Filtros 🔍

🔸 Ver membros de um filtro

GET
<url_aplicação>/api/filters/<id_filtro>/members

🔸 Ver opções de períodos dinâmicos (filtros do tipo Tempo)

GET
<url_aplicação>/api/filters/<id_filtro>/dynamic-periodicities

🔸 Consultar informações completas do filtro

GET
<url_aplicação>/api/filters/<id_filtro>

Artigos recentes

Rolar para cima