DOCUMENTOS/CANALES~ 12 MIN DE LECTURA

CAPÍTULO 03 · CANALES

Conecta todos los canales
en una sola bandeja.

Telegram, WhatsApp Cloud, Facebook Messenger e Instagram DM — todos conectados de extremo a extremo. Cada paso a continuación está verificado contra los paneles de Meta y la Bot API de Telegram. Cuando Meta llama algo de una manera y nosotros de otra, decimos ambas.

§ 00Lo que necesitarás

Cada canal toma entre 5 y 20 minutos. Harás el trabajo en dos lugares: la consola de desarrollador del propio canal (BotFather de Telegram, Meta Developer Dashboard) y la pantalla Canales dentro de tu workspace de EasyLiveChat en app.livechattools.com/channels.

Los cuatro canales comparten la misma arquitectura en EasyLiveChat — una Conversación normalizada por contacto, una bandeja, una caja de respuesta. Las diferencias están en las credenciales que cada proveedor requiere y en su esquema de firma de webhook.

CONCEPTOS COMPARTIDOS

  • URL de Webhook. EasyLiveChat genera una por integración: https://api.livechattools.com/api/channels/webhook/{channel}/{integration-id}. Nombre del canal en minúsculas. Pegas esta URL en el panel del proveedor.
  • Token de verificación. El proveedor hace un handshake GET único a tu URL de webhook con este token; nosotros respondemos su challenge si coincide. EasyLiveChat lo auto-genera cuando creas la integración — abre Ajustes de integración.
  • App Secret (solo canales Meta). Meta firma cada POST de webhook con x-hub-signature-256 usando el App Secret de la Meta App — no el verify token. Lo pegarás una vez al crear la integración de WhatsApp / Messenger / Instagram.

§ 01Telegram

El canal más simple de configurar. Telegram no necesita una app de desarrollador ni una cuenta business — solo un bot. Los tokens de bot duran para siempre y la integración completa toma unos cinco minutos.

1. Crea un bot con BotFather

Abre Telegram e inicia un chat con @BotFather. Envía /newbot, elige un nombre para mostrar y un username que termine en bot. BotFather responde con un token con forma de 1234567890:ABCdefGHI…. Cópialo.

2. Conéctalo en EasyLiveChat

En tu workspace ve a Canales → Bot de Telegram → Conectar. Pega el token del bot. Elige cualquier nombre para mostrar — solo se ve dentro de la bandeja. Envía.

Abre Ajustes de integración en la fila recién creada para revelar el Secreto del webhook y la URL de callback de la integración.

3. Apunta Telegram a nuestro webhook

La Bot API de Telegram no tiene UI para webhooks; los configuras vía setWebhook. Reemplaza los placeholders abajo con el token del bot, el ID de integración y el secret del webhook, luego ejecútalo una vez:

bashregistrar webhook de Telegram
curl -X POST "https://api.telegram.org/bot${BOT_TOKEN}/setWebhook" \
  -H "Content-Type: application/json" \
  -d '{
    "url": "https://api.livechattools.com/api/channels/webhook/telegram/${INTEGRATION_ID}",
    "secret_token": "${WEBHOOK_SECRET}",
    "allowed_updates": ["message", "edited_message"]
  }'

Telegram responde {"ok":true,"description":"Webhook was set"}. . Verifica con getWebhookInfo— el pending_update_count debe bajar a 0.

4. Prueba

Abre t.me/yourbot_username en Telegram, toca Iniciar, envía cualquier mensaje. Debe aparecer en tu bandeja de EasyLiveChat en menos de un segundo con el nombre del remitente y el código de idioma. Responde desde el dashboard — llegará al Telegram del visitante un momento después.

§ 02WhatsApp Cloud

Meta Cloud API es la mejor opción para casi todos — completamente hospedado, gratis hasta 1.000 conversaciones de servicio al mes, y el único transporte de WhatsApp que no requiere infraestructura de tu lado. La configuración es más pesada que Telegram porque Meta requiere una app de desarrollador y un business portfolio verificado para tráfico de producción.

1. Crea una Meta developer app

Ve a developers.facebook.com/apps → Create App. Elige un nombre, un email, luego en la siguiente pantalla selecciona el caso de uso “Connect with customers through WhatsApp”. Adjunta un Business Portfolio — uno existente o el Test Business integrado de Meta para evaluación.

Después de crear la app, abre Use Cases → Connect on WhatsApp → API Setup. Verás un Phone Number ID (el número de prueba que Meta provee gratis, o el tuyo una vez agregado) y un botón Generate access token. Haz clic, aprueba y copia el token resultante. También copia el Phone Number ID.

Duración del token. El token del botón Generate es de corta duración (unas 24 horas). Para producción, crea un System User en Business Settings → Users → System Users, asigna la WhatsApp Business Account, y genera un token sin expiración con los permisos whatsapp_business_messaging y whatsapp_business_management .

2. Obtén el App Secret

En el mismo Meta dashboard, abre App settings → Basic. El App Secret está oculto detrás de un botón Show — revélalo y cópialo. Esta es la clave HMAC que Meta usa para firmar cada POST de webhook. Sin ella tus mensajes entrantes serán rechazados como BAD_SIGNATURE.

3. Conecta WhatsApp en EasyLiveChat

Canales → WhatsApp Cloud → Conectar. Llena el nombre para mostrar (libre), el Phone Number ID, el Access Token y el App Secret. Envía. Abre los ajustes de la integración para copiar el secret de webhook auto-generado y el integration ID.

4. Configura el webhook de Meta

De vuelta en el dashboard de Meta, ve a Use Cases → Connect on WhatsApp → Configuration. Pega:

configconfiguración del webhook de WhatsApp en Meta
Callback URL : https://api.livechattools.com/api/channels/webhook/whatsapp/${INTEGRATION_ID}
Verify token : ${WEBHOOK_SECRET}

Haz clic en Verify and save. Meta envía un handshake GET — respondemos su challenge si el verify token coincide. En la misma página, encuentra la lista de Webhook fields y activa messages a Subscribed. Sin este toggle Meta acepta la URL del webhook pero nunca entrega nada.

5. Agrega un destinatario de prueba (solo sandbox)

Si usas el número de prueba gratis de Meta, debes incluir cada destinatario en la lista permitida antes de enviarles. En API Setup → To, agrega el número desde el cual enviarás mensajes — Meta envía un OTP de 6 dígitos por SMS para verificar. Puedes permitir hasta cinco destinatarios de prueba. Los números business reales no tienen esta restricción.

§ 03Facebook Messenger

Messenger usa la misma Meta App, App Secret y plomería de webhook que WhatsApp — pero habla con una Página de Facebook en vez de un número de teléfono, y los access tokens son Page Access Tokens, no tokens de WhatsApp Business.

1. Agrega Messenger a tu Meta app

En la misma app que usaste para WhatsApp (o una nueva), abre Use cases → Add use cases → filtra Business messaging → Engage with customers on Messenger from Meta. Guarda. La app ahora tiene dos productos lado a lado.

2. Conecta una Página de Facebook

Abre Messenger from Meta → Messenger API Settings. Bajo Generate access tokens, haz clic en Connect al lado de No FB pages yet. Meta pregunta a qué Páginas dar acceso — elige la que quieres usar para recibir mensajes, acepta los permisos, guarda.

La Página ahora aparece con un Page Access Token de un clic y un Page ID. Copia ambos. El Page ID es también el valor que pegarás como pageId en EasyLiveChat.

3. Conecta Messenger en EasyLiveChat

Canales → Messenger → Conectar. Llena Page ID, Page Access Token y el mismo App Secret que usaste para WhatsApp. Envía y copia el secret de webhook + ID de la nueva integración.

4. Suscripción de webhook de dos capas

Messenger tiene una particularidad que WhatsApp no: necesita dos suscripciones para entregar algo. Primero la suscripción a nivel de app — en Messenger API Settings → Configure webhooks pega:

configconfig de webhook a nivel de app de Messenger
Callback URL : https://api.livechattools.com/api/channels/webhook/messenger/${INTEGRATION_ID}
Verify token : ${WEBHOOK_SECRET}

Haz clic en Verify and save, luego expande Webhook fields y activa messages. Luego la suscripción a nivel de Página, que no puedes hacer desde la UI — corre este curl:

bashsuscribir la Página a la app
curl -X POST "https://graph.facebook.com/v20.0/${PAGE_ID}/subscribed_apps" \
  -d "subscribed_fields=messages,messaging_postbacks,message_deliveries,message_reads" \
  -d "access_token=${PAGE_ACCESS_TOKEN}"

Sin la suscripción a nivel de Página, Meta devuelve {"success":true} en la suscripción de app pero nunca dispara el webhook. Puedes confirmar que todo está conectado consultando:

bashverificar ambas capas de suscripción
curl "https://graph.facebook.com/v20.0/${APP_ID}/subscriptions?access_token=${APP_ID}|${APP_SECRET}"

La respuesta debe listar un objeto de tipo page con un array fields no vacío incluyendo messages.

§ 04Instagram DM

La mensajería de Instagram viaja por las mismas tuberías de la Messenger Platform pero agrega dos requisitos: la cuenta de Instagram debe ser una cuenta Business (no personal ni Creator), y debe estar conectada a una Página de Facebook en el mismo Business Portfolio. Una vez que ambos son ciertos, tu Page Access Token también es tu access token de Instagram.

1. Convierte la cuenta IG a Business

En la app móvil de Instagram: Configuración → Cuenta → Cambiar a cuenta profesional → Empresa. Elige cualquier categoría. La conversión es reversible.

2. Agrega la cuenta IG a tu Business Portfolio

En Meta Business Suite Settings → Accounts → Instagram accounts → Add → inicia sesión con las credenciales de IG. Meta confirma y muestra el Instagram Business Account ID de la cuenta IG — un número de 17 dígitos que empieza con 1784…. Cópialo; este es tu pageId para la integración de EasyLiveChat.

3. Vincula IG a la Página de Facebook

Este es el paso que más se pasa por alto. Abre la bandeja de la Página de Facebook en Meta Business Suite — business.facebook.com/latest/inbox?asset_id={page_id}. Un banner dice “Connect to Instagram” con un botón Connect. Haz clic, inicia sesión en Instagram, otorga los permisos solicitados, confirma. Después de esto la Graph API de Meta comenzará a responder preguntas sobre la cuenta IG con scope al access token de la Página.

4. Conecta Instagram en EasyLiveChat

Canales → Instagram DM → Conectar. Usa el Instagram Business Account ID del paso 2 como pageId, el mismo Page Access Token que usaste para Messenger como pageAccessToken, y el mismo App Secret que antes.

5. Suscríbete en ambas capas

Instagram usa object=instagram para webhooks a nivel de app (Messenger usó object=page. ). Agrega este curl encima de la suscripción de Messenger que ya tienes:

bashsuscribir la app a mensajes de Instagram
curl -X POST "https://graph.facebook.com/v20.0/${APP_ID}/subscriptions" \
  -d "object=instagram" \
  -d "callback_url=https://api.livechattools.com/api/channels/webhook/instagram/${INTEGRATION_ID}" \
  -d "verify_token=${WEBHOOK_SECRET}" \
  -d "fields=messages,messaging_postbacks,message_reactions" \
  -d "access_token=${APP_ID}|${APP_SECRET}"
Reglas de entrega en modo desarrollo. Mientras tu Meta app esté no publicada, Meta solo entrega eventos de webhook de Instagram desde remitentes que son administradores, desarrolladores o testers de la app. Los DMs aleatorios de usuarios reales se descartan silenciosamente. Para probar con alguien fuera de tu equipo, agrégalo como Tester en App Dashboard → Roles → Roles y que acepte la invitación. Para aceptar cualquier remitente, debes publicar la app vía App Review.

§ 05Solución de problemas

401 · BAD_SIGNATURE

La firma del POST de Meta no coincidió. Casi seguro pegaste el valor equivocado en el campo App Secret — debe ser el App Secret de la Meta App de App settings → Basic, no el verify token y no un Page Access Token. Abre Ajustes de integración en EasyLiveChat y verifica que el valor enmascarado de App Secret sea de 32 caracteres hex.

404 · UNKNOWN_CHANNEL

El segmento de canal en la URL no coincide con un adaptador conocido. Pásalo a minúsculas ( /whatsapp/ no /WHATSAPP/) — aunque la ruta es insensible a mayúsculas, algunos intermediarios normalizan diferente.

handshake pasa, no llegan mensajes

Para canales Meta, corre el chequeo de suscripciones arriba. Si el objeto relevante (page o instagram o whatsapp_business_account) tiene un array fields vacío, la app está registrada pero no suscrita a ningún evento — re-activa messages en la lista de Webhook fields.

access token expirado (Meta)

Los tokens del botón Generate access token en el dashboard de Meta o de Graph API Explorer duran unas 24 horas. Para cualquier cosa más allá de una demo, provisiona un System User y genera un token sin expiración con los permisos correctos de Page o WhatsApp Business Account.

Telegram no entrega nada

Corre getWebhookInfo — la respuesta incluye un campo last_error_message. Valores comunes: “404 Not Found” (integration ID equivocado en la URL), “SSL handshake failed” (proxy / problema de certificado).

¿Fue útil este artículo?

Sugerir una edición ↗