You are not logged in.
En este espacio estaré detallando cómo conectar a GLPI usando API REST y recopilar los datos a EXCEL con Power Query. Por el momento es un blog personal donde dejaré detallado mis pruebas. Si alguien le sirve o desea contribuir con más detalle, bienvenido.
He seguido este tutorial para crear un API Token de aplicación, y también un User Token: https://tic.gal/es/como-configurar-la-api-de-glpi/
Para mi prueba he creado un usuario con permisos de Super-Admin en una entidad recursivamente.
También me he basado en la documentación de APIREST de GLPI, que está disponible desde la misma instancia de GLPI apañadiendo apirest.php o desde este público: https://github.com/ramylson/glpi/blob/m … apirest.md
La documentación indica que es requerido, para todo así parece, iniciar con el método initSession. Hay que pasar 3 parámetros en los HEADERS: Content-Type, que en mi caso al ser consulta será: application/json, App-Token, y Authorization.
En Excel hacer clic en Datos > Obtener datos > De otras fuentes > De la Web. Activar: Uso avanzado.
En las partes de la URL, sería: https://dominioglpi/apirest.php/initSession importante respetar la mayúscula.
En la parte inferior, en: Parámetros de encabezado de solicitud HTTP, se añaden los 3 Headers necesarios (Parámetro : Valor):
Content-Type : application/json
App-Token : El token obtenido al crear un cliente API
Authorization : En la documentación del ApiRest indica que se puede usar: Basic base64({login}:{password}) o user_token "Seguido del token que se creó del usuario con permiso de Super-Admin". En mi caso yo usé user_token TOKEN
Si la imagen está disponible pueden visualizarla aquí: https://prnt.sc/bJ2udJ291hvJ
Al dar clic en aceptar, se abrirá Power Query, devolviendo un parámetro: session_token, y su valor. Vamos a guardar este valor en una variable para usarlo posteriormente, para aquello abrimos el Editar avanzado: https://prnt.sc/msIfe9Q3E6MR
Dentro del bloque let, en la última línea, que en mi comienza con una variable llamada Origen =, agregamos una coma "," saltamos a la siguiente línea y añadimos una variable asignándole el valor que obtiene la variable Origen[session_token], quedando en mi caso sessiontoken = Origen[session_token]
Con este token de sesión se pueden realizar las demás consultas del APIRest. Por este momento a modo de ejemplo se ejecutará apirest.php/getMyProfiles/.
Para aquello, añadimos un salto de línea sin olvidar que cada línea que le sigue otra debe terminar con un "," con excepción de la última del bloque let.
Luego creamos una variable, en mi caso se llamará Perfil, y utilizaré Json.Document y Web.Contents, similar a lo que se encuentra en la variable Origen, con excepción de que en Web.Contents se reemplará el Path cambiando initSession con getActiveProfile/, y en los Headers se reemplaza Authorization y su valor, con el header obligatorio: Session-Token y se le asigna el valor de la variable sessiontoken. En Power Query se asigna Session-Token como #"Session-Token" = sessiontoken
Quedaría así: Perfil = Json.Document(Web.Contents("https://DOMINIO/apirest.php/getActiveProfile/", [Headers=[#"Content-Type"="application/json", #"App-Token" = "ELAPP-TOKEN NO SE CAMBIA", #"Session-Token" = sessiontoken]]))
En el bloque in, eliminamos la variable que se encuentra, en mi caso Origen, y dejamos la variable que acabamos de asignar, en este caso Perfil.
Guardamos, y al cerrar, en Excel puede salir la advertencia: "Formula.Firewall [...] is accessing data sources that have privacy levels which cannot be used together.", para aquello vamos a Inicio > Orígenes de datos > Configuración de origen de datos, y dejámos el Nivel de Privacidad como Público: https://prnt.sc/jznrRGUgfDq2
Cerramos e intentamos, en caso aparezca que no se tiene acceso con las credenciales proporcionadas, en cada uno de los pasos dar clic en actualizar: https://prnt.sc/WTDp57tvGEjF
El método getActiveProfile/ devolvió un parámetro: active_profile con un valor de tipo Record. Si se hace clic en Record, se abrirá una tabla con valores. Esta tabla se puede convertir para que se muestre en Excel, haciendo clic en Convertir > En tabla : https://prnt.sc/k61lFb8i-T0u
Aquí ya podemos Cerrar y Cargar, y se cargará en Excel: https://prnt.sc/8hRTfW4W2TXh
O antes también se puede Transponer y luego transformar la primera fila en Encabezado:
- Transponer: https://prnt.sc/L132aHXVFh1s
- Usar la primera fila como encabezado: https://prnt.sc/AbidsplTe6YP
Se Cerra y se carga en Excel: https://prnt.sc/wyk4jxmj8khU
Por el momento hasta ahí ya podemos traer datos a Excel del GLPI por medio de ApiRest.
Last edited by jcervantes.sipecom (2023-10-28 20:33:01)
Offline