Pasa valores dinámicos
La URL y los valores de cabecera de un servicio vinculado pueden contener marcadores {{params.x}} que se rellenan cuando se llama al servicio. Así, un mismo servicio se adapta a cada petición —llevar un término de búsqueda en la query string, o reenviar el token del usuario que ha iniciado sesión para que tu endpoint pueda autenticarlo— sin fijar el valor en la configuración.
Dónde van los marcadores
- En la URL: p. ej.,
https://api.example.com/search?q={{params.query}}. El valor se
codifica para URL, así que se puede pasar texto libre sin problema.
- En un valor de cabecera: añade una cabecera en Headers cuyo valor sea una plantilla, p. ej., una
cabecera Authorization con el valor Bearer {{params.token}}.
Un marcador se escribe {{params.<name>}}, donde <name> es un identificador simple.
De dónde salen los valores
Los valores llegan desde dos sitios y se combinan; un valor de la llamada prevalece sobre un valor de inicialización con el mismo nombre:
- En la inicialización: para valores que no cambian durante toda la sesión (un token de usuario, un
id de tenant). Pásalos a startAssistant:
skdwn.startAssistant({
assistantId: 'as-xxxxxxxx',
accessToken: 'your-key-or-token',
params: { token: yourUserToken }
});
- En cada llamada: para valores que dependen del momento (un término de búsqueda, un id seleccionado). Pásalos como
cuarto argumento de executeProxyRequest:
executeProxyRequest('search_api', null, callback, { query: userInput });
Un mismo servicio puede usar ambos a la vez: una cabecera fija {{params.token}} y un {{params.query}} por llamada en la URL.
params no es userInformation
Los params se usan solo para rellenar estos marcadores: nunca se envían al modelo ni se registran en la analítica. Guarda los tokens y los valores de la petición en params; usa userInformation solo para dar contexto sobre el visitante.
Ejemplo: reenvía el token del usuario
Un patrón habitual es dejar que tu propio endpoint autentique al usuario. Configura el servicio con:
- URL:
https://api.example.com/me/orders - Cabecera: nombre
Authorization, valorBearer {{params.token}} - En la inicialización:
params: { token: <the token your backend issued the user> }
Tu API recibe una cabecera Authorization: Bearer … normal y la valida, exactamente igual que haría con cualquier petición. Como tu endpoint valida el token, esto es seguro aunque el valor lo proporcione la página: un token no válido o de otra persona solo concede lo que ese token ya permite.
Reenvía solo credenciales que tu endpoint verifique
Un valor de {{params}} procede de la página, así que solo es fiable si el endpoint que lo recibe lo verifica (un token firmado que valida) o si el valor no es sensible (un término de búsqueda). Nunca trates un id sin más pasado en params como prueba de quién es el usuario: valida una credencial real.
Documentación relacionada
- Autenticar peticiones: un secreto guardado en el servidor, la alternativa a un valor reenviado.
- Personalización avanzada: dónde vive
executeProxyRequest.