Publisher Full es una funcionalidad que te permite mostrar objetos de tu proyecto BIMachine fuera de la plataforma, de forma dinámica, segura y con soporte para filtros personalizados. Esta funcionalidad es ideal para incorporar cuadros de mando, análisis, KPIs y mapas en aplicaciones externas.
A continuación encontrarás una guía completa paso a paso para configurar y utilizar Publisher Full.
1. Clave de la aplicación 🔑
Para empezar a utilizar Publisher Full, necesita crear una clave de aplicación, consulte el paso a paso a continuación o con más detalle aquí:
- Vaya al menú Gestión de cuentas.
- Haga clic en Nueva clave de aplicación.
- Dale un nombre a la clave para identificarla.
- Copie la clave generada.
Esta clave se utilizará para autenticar futuras solicitudes a la API.
2. Generación de token de autenticación 🔐
Con la clave de aplicación, puedes generar un token de autenticación de usuario, necesario para validar los accesos externos.
POST
<url_aplicação>/api/token-manager/?appKey=<chave_aplicação>
Request Body:
{
"email":"email@exemplo.com"
}
Respuesta 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"
}
El token generado se utiliza para autenticar al usuario en el BIMachine cuando se utiliza en otras aplicaciones. Este token es único y caduca en 30 minutos, pero se renueva cada vez que se utiliza.
Ejemplo de código JAVA para la autenticación utilizando el 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("https://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. Listado de proyectos y objetos 📋
Tras autenticar al usuario, puedes consultar los proyectos y objetos disponibles.
🔎 Listar proyectos de la cuenta
GET
<url_aplicação>/api/projects/list?appKey=<chave_aplicação>
🔎 Listar los objetos de un proyecto
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. Generación de la URL para incrustar 🔗
Para mostrar el objeto fuera de la plataforma, accede a través de BIMachine, ve al menú Publicación y copia el enlace generado. Más información.
La URL de embed se puede personalizar según los parámetros que se indican a continuación:
UriComponentsBuilder url = UriComponentsBuilder.fromHttpUrl("https://" + 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. Aplicar filtros 🧩
Puede aplicar filtros personalizados a la URL de publicación del objeto. Para ello, el filtro debe estar:
- Creado en el proyecto.
- Seleccionado en la publicación del objeto.
Tras estos pasos, es necesario convertir el filtro o filtros deseados con la función JS que se indica a continuación:
encodeURIComponent('[{"id":<id_filtro>,"members":["[<nome_do_membro_desejado>]"]}, {"id":<id_filtro>,"members":["[<nome_do_membro_desejado>]"]}]')
Esta función devolverá una cadena que debe agruparse con el enlace generado en el editor:
<url_gerado_no_publisher(com seu appKey*)>&filter=<retorno_da_função_js>
*Recuerde reemplazar <appToken> al final de la url con su token generado previamente.
Este enlace devolverá el objeto publisher con el filtro deseado aplicado.
6. Filtrar consultas 🔍
🔸 Ver los miembros de un filtro
GET
<url_aplicação>/api/filters/<id_filtro>/members
🔸 Ver opciones de periodos dinámicos (filtros de tiempo)
GET
<url_aplicação>/api/filters/<id_filtro>/dynamic-periodicities
🔸 Ver la información completa del filtro
GET
<url_aplicação>/api/filters/<id_filtro>