> ## Documentation Index
> Fetch the complete documentation index at: https://docs.alvys.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Autenticación y permisos globales

> Configure los parámetros Power BI, recupere un token de acceso API Alvys y establezca permisos globales para que las consultas posteriores se autentiquen en Public API.

Para interactuar con la API Alvys, primero debe recuperar un token de acceso utilizando sus credenciales de API. Este token es necesario para autenticar todas las consultas API posteriores.

## Autenticación

### **Crear una consulta de token de acceso**:

* Abra Power BI Escritorio y vaya a **Inicio > Transformar datos**.

<img src="https://mintcdn.com/alvys/MPqgFq1pceM5E4R4/images/migrated/04506be861f8.png?fit=max&auto=format&n=MPqgFq1pceM5E4R4&q=85&s=d4b3b3e0a29ad43869ffc4029e2756bb" alt="" width="1457" height="243" data-path="images/migrated/04506be861f8.png" />

**Configurar credenciales de API en Administrar parámetros**

* En Power BI, vaya a la cinta superior, seleccione **Transformar datos > Administrar parámetros**.
* **Asegúrese de tener los siguientes parámetros**:
  * `client_id`: El ID del cliente proporcionado por Alvys.
  * `client_secret`: El secreto del cliente proporcionado por Alvys.
* **Crear nuevos parámetros si no están presentes**:
  * Si estos parámetros aún no están disponibles:
    * Haga clic en **Nuevo** para crear un nuevo parámetro.
    * Utilice los nombres exactos: `client_id` y `client_secret`.
* Reemplace el **Valor actual** de cada parámetro con sus respectivas credenciales.

> ❗️ Importante: asegúrese de que los nombres de los parámetros coincidan exactamente como se define aquí. Si utiliza nombres diferentes, debe actualizarlos en la consulta `AccessToken` en consecuencia.

* Una vez que haya ingresado sus credenciales, haga clic en **Aceptar** y luego en **Cerrar y aplicar** para guardar los cambios.

<img src="https://mintcdn.com/alvys/MPqgFq1pceM5E4R4/images/migrated/5bab4fc476dd.png?fit=max&auto=format&n=MPqgFq1pceM5E4R4&q=85&s=253e182ec24f6a814b65fd8e806ac727" alt="" width="1010" height="972" data-path="images/migrated/5bab4fc476dd.png" />

<br />

* **Agregar una nueva consulta en blanco**:

Para agregar una nueva consulta, tienes dos opciones:

1. **Desde la cinta**: Vaya a **Inicio > Nueva fuente > Consulta en blanco**.

   <img src="https://mintcdn.com/alvys/MPqgFq1pceM5E4R4/images/migrated/a5f24fbdacf1.png?fit=max&auto=format&n=MPqgFq1pceM5E4R4&q=85&s=ca0ddf7629257f9d4c27e27024f00b46" alt="" width="313" height="585" data-path="images/migrated/a5f24fbdacf1.png" />

   <br />

2. **Desde el panel de consultas**: haga clic derecho en cualquier consulta existente (o en el espacio vacío debajo de la lista de consultas) y seleccione **Nueva consulta > Consulta en blanco**.

   <img src="https://mintcdn.com/alvys/MPqgFq1pceM5E4R4/images/migrated/db408f83a5f0.png?fit=max&auto=format&n=MPqgFq1pceM5E4R4&q=85&s=237f0f91dbbb009376f4237e3b186da5" alt="" width="442" height="522" data-path="images/migrated/db408f83a5f0.png" />

   <br />

<br />

1. Cambie el nombre de la consulta a `AccessToken`. En el **Panel de consultas**, haga clic derecho en la consulta recién creada y seleccione **Cambiar nombre**.

> ❗️ 📢 **Utilice exactamente este nombre. Otras consultas que requieran este token para la autenticación harán referencia al nombre.**

<img src="https://mintcdn.com/alvys/MPqgFq1pceM5E4R4/images/migrated/713d2401dd30.png?fit=max&auto=format&n=MPqgFq1pceM5E4R4&q=85&s=ecb444b5593e5fc8aca55547c4efb0be" alt="" width="725" height="654" data-path="images/migrated/713d2401dd30.png" />

<br />

* En el Editor avanzado, agregue el código siguiente.

```
let  
    // Define the token endpoint  
    url = "https://auth.alvys.com/oauth/token",

// URL-encode the client_secret, NOTE: should be used parameters Name for client_secret)
    
encodedClientSecret = Uri.EscapeDataString(client_secret),

// Construct the form data as a URL-encoded string
formData = "client_id=" & client_id & "&" &
           "client_secret=" & encodedClientSecret & "&" &
           "audience=" & Uri.EscapeDataString("https://api.alvys.com/public/") & "&" &
           "grant_type=client_credentials",

// Make the POST request
binaryFormData = Text.ToBinary(formData),
response = Web.Contents(url, [
    Headers = [
        #"Content-Type" = "application/x-www-form-urlencoded"
    ],
    Content = binaryFormData
]),

// Parse the JSON response to extract the token
jsonResponse = Json.Document(response),
accessToken = jsonResponse[access_token]

in  
    accessToken
```

Guarde y cierre la consulta.

* **Resultado esperado**: la consulta `AccessToken` devolverá `accessToken`, que se puede usar dinámicamente en otras consultas API.

<img src="https://mintcdn.com/alvys/MPqgFq1pceM5E4R4/images/migrated/7bc0c1b02ac8.png?fit=max&auto=format&n=MPqgFq1pceM5E4R4&q=85&s=899192447ddbcac4ec52731afbf4cf7a" alt="" width="1690" height="372" data-path="images/migrated/7bc0c1b02ac8.png" />

<br />

### Autenticación y permisos globales

La primera vez que intente conectarse a la API Alvys en Power BI, se le pedirá que se autentique. Siga estos pasos para configurar los ajustes necesarios:

1. Elija **Anónimo** para la conexión API web.
2. **Haga clic en Conectar.** Una vez seleccionadas estas configuraciones, haga clic en **Conectar** para continuar.

<img src="https://mintcdn.com/alvys/MPqgFq1pceM5E4R4/images/migrated/da49461608a4.png?fit=max&auto=format&n=MPqgFq1pceM5E4R4&q=85&s=b449e7d29c7fc2d5f80b039353bb8d4d" alt="" width="1161" height="415" data-path="images/migrated/da49461608a4.png" />

3. **Nivel de privacidad**: haga clic en Configuración de fuente de datos > Permisos globales > Editar permisos > en el menú desplegable Nivel de privacidad, asegúrese de que el nivel de privacidad esté configurado de manera adecuada (por ejemplo, Organizacional o Público) para su entorno.

<img src="https://mintcdn.com/alvys/MPqgFq1pceM5E4R4/images/migrated/8102ec13f453.png?fit=max&auto=format&n=MPqgFq1pceM5E4R4&q=85&s=2385905cb3cfce634ca3e68d6799f0ea" alt="" width="1256" height="900" data-path="images/migrated/8102ec13f453.png" />

<br />

> Nota: Es posible que se le solicite que repita este proceso para otros puntos finales si accede a ellos por primera vez. Asegúrese de que se apliquen las mismas configuraciones para lograr coherencia en todas las consultas.
