BysMax

Contenido del curso

Volver al curso

Integrar Traccar con Evolution API para Notificaciones de WhatsApp

Guía paso a paso para conectar Traccar con Evolution API y enviar notificaciones de WhatsApp, resolviendo los errores 401 (autenticación) y de DNS (UnknownHostException).

Emmanuel Díaz Leal Hernández

May 25, 2024
Intermedio

Evolution API es una API gratuita y self-hosted de WhatsApp muy popular. Traccar puede enviar notificaciones a través de su notificador SMS por HTTP, pero requiere ajustes específicos porque Evolution usa una cabecera de autenticación no estándar. En esta guía documentamos la integración completa y los 2 problemas que resolvimos (autenticación 401 y DNS).

1. Dónde se configura el teléfono del destinatario

En Traccar los números NO van en el archivo de configuración, sino en la interfaz web: Ajustes / Usuarios → Editar Usuario → campo Teléfono (ej. 5218111913676). Formato: número internacional sin espacios ni el símbolo +.

2. El problema de autenticación (401 Unauthorized)

Por defecto Traccar envía la cabecera Authorization: Basic ..., pero Evolution API exige la cabecera apikey: TU_API_KEY. Al inspeccionar el código compilado de Traccar (HttpSmsClient.class) descubrimos una propiedad clave poco documentada: sms.http.authorizationHeader, que permite cambiar el NOMBRE de la cabecera de autorización. Si la especificas, Traccar envía la cabecera que le indiques con el valor de sms.http.authorization tal cual, sin anteponer Basic ni Bearer.

  • sms.http.authorizationHeader: define el nombre exacto de la cabecera (apikey).
  • sms.http.authorization: define el valor del token, sin prefijo.

3. El problema de red / DNS (UnknownHostException)

El cliente Java de Traccar no podía resolver el dominio evolution.bysmax.com por un fallo en el DNS del servidor. Solución: configurar 1.1.1.1 (DNS de Cloudflare) como primer servidor en /etc/resolv.conf:

# /etc/resolv.conf
nameserver 1.1.1.1

4. Configuración final en traccar.xml

<entry key='notificator.types'>web,mail,sms</entry>
<entry key='sms.http.url'>https://evolution.bysmax.com/message/sendText/Prueba</entry>
<entry key='sms.http.authorizationHeader'>apikey</entry>
<entry key='sms.http.authorization'>TU_API_KEY_DE_EVOLUTION</entry>
<entry key='sms.http.template'>
{
    "number": "{phone}",
    "text": "{message}"
}
</entry>

Esto hace que Traccar envíe exactamente la cabecera que Evolution API necesita: apikey: TU_API_KEY_DE_EVOLUTION. La URL apunta al endpoint sendText de tu instancia de Evolution (reemplaza Prueba por el nombre de tu instancia).

5. Reiniciar el servicio

systemctl restart traccar

Con esto Traccar envía notificaciones de WhatsApp a través de Evolution API sin costo por mensaje. Recomendación: limita las notificaciones de WhatsApp a eventos críticos (alarma, corte de energía) para no saturar tu instancia ni arriesgar bloqueos de WhatsApp.

Comentarios (0)