Todas las automatizaciones de DynamiHost se apoyan en un único mecanismo abierto: los webhooks. Este centro de ayuda tiene una guía dedicada para las plataformas más conocidas, pero tu herramienta no la necesita. Si un servicio puede darte una URL que acepte un HTTP POST, DynamiHost puede enviarle cada escaneo, y lo mismo vale para un servidor que gestiones tú.
Lo que necesitas
- Un plan de DynamiHost con webhooks: Trial, Pro o Business. Si la página Webhooks de tu panel muestra un mensaje de bloqueo, tu plan aún no incluye webhooks.
- Una URL de tu herramienta de automatización, o una ruta en tu propio servidor, que acepte solicitudes POST con un cuerpo JSON.
Las reglas de la URL
- La URL debe usar http o https y no debe contener credenciales incrustadas.
- El nombre de host debe resolverse a una dirección IP pública. Los rangos privados, de bucle local, de enlace local, multicast y reservados se rechazan al guardar el endpoint, y se vuelven a comprobar en el momento de la entrega.
- Las redirecciones nunca se siguen: apunta el endpoint a la URL final.
- Responde con cualquier estado 2xx para marcar una entrega como correcta. Cualquier otra cosa, o no responder en 10 segundos, cuenta como un fallo y se reintenta.
Configúrala
- En tu herramienta, busca su función de webhook entrante, disparador HTTP o escucha de solicitudes, y copia la URL que te dé. En tu propio servidor, crea primero la ruta.
- Abre Webhooks en el panel y haz clic en Add endpoint.
- Pega la URL, selecciona el evento scan.created y guarda.
- Copia el secreto de firma que se muestra una sola vez para el endpoint.
- De vuelta en la página Webhooks, haz clic en Send test en el endpoint y confirma que tu herramienta o servidor recibió el evento de ejemplo. Después escanea uno de tus códigos con tu teléfono para una entrega real.
Verifica que viene de verdad de DynamiHost
Cada entrega lleva una cabecera x-dynamihost-signature: el HMAC-SHA256 en hexadecimal del valor de la cabecera x-dynamihost-timestamp (la hora de este intento de entrega, en segundos), un punto y el cuerpo sin procesar, con el secreto de tu endpoint como clave. El campo timestamp dentro del cuerpo es la hora del propio evento y no es lo que se firma. Verifícala antes de actuar sobre una entrega, sobre todo en un servidor que expongas a internet. En la página Integraciones del panel hay fragmentos de verificación listos en Node y Python, y Webhooks: recibe un aviso en cada escaneo, en este centro de ayuda, cubre por completo el formato del payload, el calendario de reintentos y la regla de desactivación automática.
Ideas de automatización
- Un script pequeño en tu servidor que escriba los escaneos en tu propia base de datos.
- Una herramienta interna que ya acepta webhooks de otros productos: el JSON de DynamiHost sigue el mismo patrón.
- Una plataforma de automatización de nicho sin guía propia: los pasos anteriores son toda la integración.