Guía 14

Bots de Messenger e Instagram: webhooks de Messenger Platform, ventanas de mensajería y configuración

Messenger e Instagram Direct comparten plataforma, formato de webhook y las mismas reglas sobre cuándo una empresa puede escribir a una persona.

Guía2 min de lecturaActualizado

Cómo encaja todo

Los bots de Messenger e Instagram son apps de Meta que reciben webhooks de una página de Facebook o de una cuenta profesional de Instagram vinculada a una página. Respondes con la Send API usando un token de acceso de la página. WhatsApp usa otro producto, la WhatsApp Cloud API, aunque la verificación del webhook sea igual.

  1. Crea una app en el panel de desarrolladores de Meta y añade el producto Messenger (y la mensajería de Instagram si la necesitas).
  2. Conecta la página y genera un token de acceso de página. Guárdalo como secreto.
  3. Configura la URL del webhook y un token de verificación, y suscribe la página a campos como messages y messaging_postbacks.
  4. Prueba con cuentas que tengan un rol en la app. El resto de personas solo podrá usar el bot cuando los permisos necesarios superen la revisión.

Webhooks

La verificación es un GET con hub.mode, hub.verify_token y hub.challenge: compara el token y devuelve el challenge. Cada POST lleva la cabecera X-Hub-Signature-256, un HMAC-SHA256 del cuerpo sin procesar con el secreto de la app. Verifícalo con una comparación de tiempo constante antes de analizarlo. Puedes generar firmas de prueba con el generador de firmas.

Responde 200 rápido y haz el trabajo en segundo plano. Meta reintenta las entregas fallidas y puede desactivar un webhook que falla de forma continuada.

Enviar mensajes

curl -X POST "https://graph.facebook.com/v21.0/me/messages" \
  -H "Authorization: Bearer $PAGE_TOKEN" -H "Content-Type: application/json" \
  -d '{"recipient":{"id":"PSID"},"messaging_type":"RESPONSE","message":{"text":"Hola"}}'

Las personas se identifican con un ID por página (PSID), distinto en cada página. Las versiones de la Graph API llevan fecha; fija una y actualiza a propósito.

La ventana de 24 horas

Las empresas pueden escribir libremente a una persona durante las 24 horas siguientes a su último mensaje. Fuera de esa ventana solo se permiten casos concretos, como etiquetas de mensaje aprobadas (por ejemplo, actualizaciones de cuenta) o flujos que la plataforma admite de forma explícita. Los mensajes promocionales fuera de la ventana incumplen la política y pueden restringir la página. Consulta las reglas vigentes en la documentación de políticas de Messenger Platform.

Funciones útiles

  • Respuestas rápidas para elecciones cortas y botones postback para menús.
  • Menú persistente y ice breakers para ayudar a empezar.
  • Protocolo de traspaso para pasar la conversación a una bandeja humana y recuperarla.
  • Enlaces m.me con parámetro ref para saber dónde empezó una conversación. El constructor de enlaces profundos los genera.

Lista de comprobación

  • Verifica las firmas y mantén el secreto de la app y el token de página fuera del repositorio.
  • Guarda PSIDs, no nombres, y borra los datos cuando una persona lo pida.
  • Ofrece una forma clara de hablar con una persona y de dejar de recibir mensajes.
  • Ten lista la URL de la política de privacidad: la revisión la exige. Consulta aspectos legales, términos y privacidad.

Comprueba lo aprendido

1. Fuera de la ventana de 24 horas, ¿qué mensajes se permiten?
2. ¿Qué cabecera demuestra que un webhook viene de Meta?