Artículos sobre: Preguntas generales
Este artículo también está disponible en:

Entendiendo la sección de Desarrolladores - Webhooks


¿Qué es un Webhook?



Los Webhooks son una función muy potente que permite una comunicación fluida entre tu aplicación y los servicios o sistemas externos. Permiten el intercambio de datos en tiempo real, lo que los convierte en una valiosa herramienta para que los desarrolladores automaticen flujos de trabajo, desencadenen acciones y mejoren la funcionalidad de sus aplicaciones.

En este artículo, te guiaremos a través del proceso de uso de Webhooks para desarrolladores en Dataslayer, una nueva función que hemos añadido a nuestra plataforma. Al compartir un enlace de autenticación con sus clientes, te enviaremos automáticamente un correo electrónico de notificación para informarte de que alguien te ha concedido acceso a sus credenciales. Sin embargo, esta no es la única forma de recibir notificaciones al respecto. Usando los webhooks, enviaremos directamente a tu aplicación algunos parámetros para notificarte.

Esta es una funcionalidad avanzada que requiere algunos conocimientos de programación.

Uso de webhooks en Dataslayer



Siguiendo estos pasos, podrás configurar y utilizar webhooks de forma eficiente para mejorar las capacidades de tu aplicación.



Accede a la página de desarrolladores

Para empezar, ve a la sección Developers (Desarrolladores) de nuestra plataforma. Aquí es donde gestionarás y configurarás los webhooks para tu aplicación.

Añade un nuevo webhook

Una vez en la sección Developers, haz clic en el botón "+ Add Webhook" de la derecha. Esta acción iniciará el proceso de creación de un nuevo webhook. Tendrás que especificar la URL de tu endpoint donde quieres recibir los payloads del webhook. Esta URL debe ser la ubicación donde tu aplicación recibirá los datos entrantes y tiene que ser pública.

Copiar la clave secreta

Recomendamos copiar la clave secreta generada por nuestra plataforma durante el proceso de configuración del webhook. Esta clave secreta se utilizará para verificar la autenticidad de los payloads de los webhooks entrantes.



Variable de entorno para la clave secreta

Para una mayor seguridad, considera la posibilidad de crear una variable de entorno en tu servidor para almacenar la clave secreta (copiada en el paso 3). Esta práctica garantiza que tu clave secreta permanezca protegida.

Instalación del paquete Fernet (NPM)

Para descifrar el contenido de los payloads de los webhooks, necesitarás instalar el paquete Fernet usando npm. Este paquete le permite descifrar de forma segura los datos recibidos del webhook. A continuación explicamos cómo instalar el paquete:

npm i fernet


SOLO permitimos conexiones webhook desde este paquete.

Creación de una función o clase

Necesitarás crear una función o clase en tu lenguaje de programación que haga referencia a tu endpoint (URL especificada en el Paso 2).

Implementar el manejo del Webhook

En el controlador (o equivalente) de tu aplicación, implementa uno de los siguientes códigos (o el lenguaje de tu elección) para gestionar la petición POST:

Ejemplo de código PHP


use Fernet\Fernet;
// ...

$secret = env("DATASLAYER_WEBHOOK_SECRET");
$fernet = new Fernet(base64_encode($secret));
$payload = @file_get_contents('php://input');
$parsePayload = json_decode($payload, true);
$decryptedData = $fernet->decode($parsePayload["encrypted_data"]);
$decodeData = json_decode($decryptedData, true);
// ... Your custom logic here


Ejemplo de código PYTHON


import base64
import json
from cryptography.fernet import Fernet
from os import getenv
# ...

secret = getenv('DATASLAYER_WEBHOOK_SECRET')
fernet = Fernet(base64.b64encode(secret.encode()))
# payload is the parameter passed in the POST request, this is what we want to decrypt
decrypted_data = fernet.decrypt(payload.encrypted_data)
decode_data = json.loads(decrypted_data.decode())
# ... Your custom logic here



Entendiendo los códigos anteriores:

secret: recuperamos la clave secreta obtenida en el Paso 3 y establecida en el Paso 4.
fernet: inicializamos una variable usando la librería Fernet con la clave secreta obtenida anteriormente.
payload:_ obtenemos los datos encriptados recibidos del webhook.
parsePayload: analizamos el contenido de la carga del webhook.
decryptedData:_ decodificamos el contenido usando la librería Fernet.
DecodeData:_ decodificamos el contenido en un formato JSON con el que podamos trabajar. Después de esto, puedes añadir cualquier procesamiento o lógica adicional que necesites.

Manejo de los datos descodificados

Una vez decodificados los datos, puedes acceder al payload, que contendrá información valiosa para tu aplicación. Esta es la información que te enviaremos una vez que un usuario haya iniciado sesión con éxito con el enlace compartible que le enviaste:

Ejemplo de código PHP


$params = [
    'type' => 'shared_connection',
    'datasource' => $datasource,
    'email' => $email,
    'created' => time(),
];


Ejemplo de código PYTHON


params = {
    type: 'shared_connection',
    datasource: datasource,
    email: email,
    created: time()
}


La función time() devuelve la fecha en UNIX TIMESTAMP.

Siguiendo estos pasos, podrás configurar y utilizar con éxito los webhooks para desarrolladores. Esta función permitirá que tu aplicación reciba actualizaciones de datos en tiempo real, mejorando su funcionalidad y sus capacidades de automatización. No dudes en personalizar los datos descodificados para satisfacer tus requisitos específicos y liberar todo el potencial de los webhooks en tu aplicación.

Si sigues teniendo dudas o preguntas no dudes en ponerte en contacto con nosotros a través del chat en directo de nuestro sitio web o por correo electrónico. ¡Estaremos encantados de ayudarte!

Actualizado el: 28/02/2024

¿Este artículo te resultó útil?

Comparte tu opinión

Cancelar

¡Gracias!