Configuración del Webhook de Facebook Messenger 2026: Guía para Desarrolladores para Recibir y Responder a Mensajes

La mayoría de las guías de webhook de Facebook Messenger aún combinan tres trabajos separados en un tutorial confuso: demostrar a Meta que tu URL de callback es real, recibir eventos de webhook de una Página de Facebook y enviar una respuesta a través de la API de Envío. Cuando esas tres piezas se mezclan, los desarrolladores suelen terminar mirando una pantalla de verificación fallida o un registro de webhook lleno de eventos que nunca desencadenan una respuesta.

Aquí está el modelo mental limpio. Un webhook de Messenger es tu canal de entrada. Es cómo Meta le dice a tu servidor que algo sucedió en una conversación de Página: una persona envió un mensaje, tocó un botón de postback, leyó un mensaje, reaccionó a uno de tus mensajes o activó otro evento suscrito. La lógica de tu bot se encuentra detrás de ese webhook. La API de Envío es el canal de salida que usas cuando quieres responder.

Esa distinción importa más en 2026 de lo que lo hacía hace unos años porque la documentación de la Plataforma Messenger es más explícita sobre la verificación, la firma, el comportamiento de reintento y la ruta actual de la API de Envío. La documentación actual de Messenger de Meta aún muestra el clásico apretón de manos de webhook con hub.mode, hub.verify_token, y hub.challenge, pero también enfatiza dos realidades de producción que las publicaciones de blog más antiguas suelen omitir: tu webhook debe responder a las notificaciones de eventos dentro de cinco segundos, y la entrega fallida puede eventualmente deshabilitar tu suscripción al webhook.

Esta guía está escrita para desarrolladores y especialistas en marketing técnico que quieren que la configuración funcione a la primera. Verás el flujo del panel, las formas exactas de las solicitudes, un ejemplo seguro para producción de Node/Express, errores comunes y el punto de entrega entre la lógica del webhook y la API de Send. Si tu verdadero objetivo es la automatización, la captura de leads y las respuestas de Messenger sin poseer la infraestructura, compara la ruta codificada con Ver precios de MessengerBot antes de que pases un fin de semana depurando una URL de callback que en realidad no necesitabas.

Lo que realmente hace un Webhook de Facebook Messenger para tu Bot

Un webhook de Facebook Messenger es un endpoint HTTPS que Meta llama cuando ocurren eventos suscritos en una conversación de Página de Facebook. No es un sistema de sondeo y no es tu API de respuesta. Tu servidor espera a que Meta envíe una solicitud POST a tu URL de callback, luego tu aplicación decide qué hacer con el evento.

Hay dos tipos de solicitudes que necesitas entender desde el primer día:

  • Solicitud de verificación: una solicitud GET que Meta envía cuando configuras por primera vez la URL de callback. Tu código verifica el token de verificación y responde con el desafío.
  • Notificación de evento: una solicitud POST con una carga útil JSON. Este es el tráfico real del webhook que te importa después de que la configuración esté completa.

La forma de la carga útil base es simple. Meta envía objeto: "página", un entrada arreglo, y un mensajería arreglo con los datos del evento real dentro de él. Aunque la estructura de la carga útil parece pequeña, el evento dentro de él podría ser un mensaje de texto, un archivo adjunto, un postback, un recibo de entrega, un recibo de lectura, una reacción, un eco o un evento de traspaso. Por eso es importante una lógica de enrutamiento limpia. Quieres que tu webhook reconozca lo que recibió antes de intentar responder.

Lo más útil de los webhooks es que eliminan la necesidad de sondear la actividad de conversación. La propia documentación de Meta señala que los webhooks te ayudan a evitar los límites de tasa que enfrentarías si siguieras consultando la plataforma en busca de cambios. En la práctica, eso significa bots más rápidos, arquitecturas más simples y muchas menos llamadas a la API desperdiciadas.

Las suscripciones de webhook que más importan en una nueva construcción de Messenger

Campo de webhook Lo que te dice Cuándo suscribirse
mensajes Una persona envió un mensaje a tu Página Siempre. Esta es la suscripción de entrada principal para la mayoría de los bots.
mensajes_postbacks Un usuario hizo clic en un botón de postback, en el botón Comenzar o en un elemento de menú Suscríbete si usas botones, menús persistentes o cargas de incorporación.
entregas_de_mensajes Un mensaje enviado por tu negocio fue entregado Útil para análisis, registro de entregas y depuración del tiempo de respuesta.
lecturas_de_mensajes Un usuario leyó un mensaje enviado por tu negocio Útil si rastreas el compromiso o deseas lógica de seguimiento basada en la lectura.
eco_mensajes Tu negocio envió un mensaje y Meta lo devolvió Útil para la sincronización de transcripciones, análisis y prevención de procesamiento duplicado.

Si todo lo que necesitas es un bot de respuesta automática básico, comienza con mensajes y mensajes_postbacks. Agrega los otros cuando tengas una razón. Suscribirse en exceso demasiado pronto no hace que tu bot sea más inteligente. Solo hace que tu enrutador de eventos sea más ruidoso.

La aplicación de Facebook, la página y los componentes del servidor que necesitas antes de tocar los webhooks

Una configuración de webhook de Messenger solo funciona cuando cuatro elementos están alineados: una aplicación de Meta, una página de Facebook, un servidor HTTPS público y los tokens o secretos correctos. Eso suena obvio, pero aquí es donde la mayoría de los primeros intentos fallan. Los desarrolladores a menudo tienen el endpoint funcionando localmente, pero la página no está conectada. O tienen un token de acceso de página, pero la URL de devolución aún está en HTTP simple. O tienen ambos, pero el token de verificación en el código no coincide con el de el panel.

Configuración del webhook de Messenger

Necesitas el siguiente stack mínimo antes de que la pantalla de configuración valga la pena abrir:

  • Una aplicación de Meta con Messenger habilitado: esta es la aplicación que posee la configuración del webhook dentro del panel de desarrolladores.
  • Una página de Facebook que puedes administrar: necesitas una página real, no solo un perfil personal, porque los eventos del webhook están vinculados a la mensajería de la página.
  • Un token de acceso de página: La documentación actual de Meta muestra esto como el token utilizado para enviar respuestas. La documentación también señala que una persona con la TAREA DE MENSAJERÍA en la página debe solicitarlo.
  • Tu secreto de aplicación y un token de verificación: el secreto de la aplicación es para la validación de firmas. El token de verificación es tu secreto compartido para el apretón de manos inicial GET.
  • Una URL de callback HTTPS pública con un certificado TLS o SSL válido: los certificados autofirmados no son compatibles para la verificación del webhook.

No hay nada serio sin necesidad de registro aquí. El desarrollo de webhook de Messenger requiere una aplicación de desarrollador de Meta, una Página, permisos y una URL de callback accesible externamente. Puedes mantener bajos los costos de herramientas mientras construyes, pero el canal en sí no es un sandbox casual de un clic.

La forma de menor fricción para obtener el ID de la Página y el token

Si deseas mantenerte cerca de la documentación de Meta, utiliza el Graph API Explorer o llama a /me/accounts con un token de acceso de usuario que tenga pages_show_list. La respuesta incluye el ID de la Página y un token de acceso de Página para las Páginas que puedes administrar.

curl -X GET "https://graph.facebook.com/v25.0/me/accounts?access_token=USER_ACCESS_TOKEN"

Para enviar respuestas, la documentación actual de Messenger de Meta menciona pages_messaging más un token de acceso de página. Esa es la combinación que usarás más tarde cuando llames a la API de envío.

Las opciones de alojamiento de callback que son realistas en 2026

Opción de configuración Mejor caso de uso Compensación que necesitas conocer
Servidor de desarrollo local expuesto a través de un túnel La forma más rápida de probar la verificación y los eventos de mensajes durante el desarrollo Bueno para pruebas a corto plazo, no es el punto final del que quieras depender en producción
Función sin servidor Receptores de webhook simples con tráfico moderado y bajo costo operativo Debes conservar el cuerpo de la solicitud sin procesar para la verificación de la firma y observar el tiempo de inicio en frío
Servicio API dedicado Bots que necesitan colas, sincronización de CRM, análisis y enrutamiento personalizado Más trabajo operativo, pero es el camino más limpio para bots serios
Configuración sin código de MessengerBot Equipos que se preocupan más por flujos, respuestas y conversión que por poseer el código del webhook Intercambias control de infraestructura por un lanzamiento más rápido y menos mantenimiento

La lista de verificación previa que previene la mayoría de fallos del panel de control

  1. Confirma que tu URL de callback sea accesible a través de https:// desde internet público.
  2. Make sure the route you paste into Meta matches your server code exactly, including the path.
  3. Set one explicit verify token value in your environment and paste that exact string into the dashboard.
  4. Load the app secret into your server before you start validating X-Hub-Signature-256.
  5. Store your Page access token and Page ID separately so you are not hard-coding them inside handlers.
  6. Subscribe to mensajes first, then add other fields after the base flow works.
  7. Send a manual local test request before you try dashboard verification.

If you want the business outcome without maintaining this stack yourself, that is exactly where building without coding becomes the better path. But if you do need direct webhook control, the next section is the exact setup sequence that works.

How to Set Up a Facebook Messenger Webhook in Meta App Dashboard

The cleanest order is app first, callback second, subscription fields third, Page connection last. Doing it in another order is possible, but it usually creates confusion because you cannot tell whether the failure is in your endpoint, your dashboard configuration, or the Page installation step.

Create the Meta app and enable the Messenger product

Inside the Meta App Dashboard, create your app if you have not already done it, then add the Messenger product. Meta’s current docs still point developers to Products > Messenger > Settings for webhook configuration. That is the screen where you will eventually paste the callback URL and verify token.

If you are testing as a developer or admin first, keep the setup narrow. One app, one Page, one callback route, one handler file. Messenger webhook work gets messy when people start rotating Pages and tokens before the first message round-trip is complete.

Connect the Page and capture the Page access token

Next, connect the Facebook Page you want to use and capture the Page access token you will use for replies. In Meta’s documentation, the Page access token is the credential used for message sends, and the request should come from someone who can perform the Page’s messaging task.

Keep three values in your environment variables from the start:

MESSENGER_VERIFY_TOKEN=choose-a-random-string
MESSENGER_APP_SECRET=your-app-secret
MESSENGER_PAGE_ACCESS_TOKEN=your-page-access-token
MESSENGER_PAGE_ID=your-page-id

You can make the verify token anything you want. It does not come from Meta. That freedom is exactly why mismatches happen so often. Pick one string once, store it in your environment, and paste that same value into the dashboard.

Expose your webhook route over public HTTPS

For Meta to verify your callback URL, the route has to be publicly reachable. A local URL like http://localhost:3000/webhook is useful for your own cURL tests, but the dashboard cannot verify it directly. You need either a deployed HTTPS endpoint or a temporary public tunnel that maps to your local dev server.

If you are still in development, a tunnel is fine. If you are setting up a production bot for a client or a live business Page, skip the fragile setup and deploy a real endpoint with stable DNS, proper certificates, and centralized logs.

Subscribe to the fields your bot will actually handle

After Meta verifies the callback URL, subscribe to the fields your logic supports. For a standard bot, start with mensajes y mensajes_postbacks. If you need delivery analytics, add entregas_de_mensajes. If you need read state, add lecturas_de_mensajes. If you sync outbound transcripts, add eco_mensajes.

The important part is that the Page and the webhook subscription both need to line up. Verification alone does not mean you will start seeing message events. Your app still needs to be subscribed correctly, and the messaging app needs to be installed on the Page you are using.

How Meta Verifies Your Callback URL and Why the Verify Token Matters

When you click to verify the callback URL, Meta sends a GET request to your endpoint with three query parameters: hub.mode, hub.verify_token, y hub.challenge. Your job is simple: if the token matches the string you configured in your app, return the challenge as the response body. If it does not match, return 403.

webhook troubleshooting

This is not OAuth. It is a shared-secret handshake. The most common bug is embarrassingly small: a typo, whitespace, different environment file, or a code route such as /messaging-webhook while the dashboard points to /webhook. That is why it is worth testing the GET route manually before you paste anything into the dashboard.

app.get("/webhook", (req, res) => {
  const mode = req.query["hub.mode"];
  const token = req.query["hub.verify_token"];
  const challenge = req.query["hub.challenge"];

  if (mode === "subscribe" && token === process.env.MESSENGER_VERIFY_TOKEN) {
    return res.status(200).send(challenge);
  }

  return res.sendStatus(403);
});

You can locally test the verification logic with a simple request before you even open the Meta dashboard:

curl -X GET "http://localhost:3000/webhook?hub.verify_token=choose-a-random-string&hub.challenge=CHALLENGE_ACCEPTED&hub.mode=subscribe"

If your route is correct, the server should return CHALLENGE_ACCEPTED. If it returns 403, do not move on. Fix the token mismatch first. Dashboard verification will fail for the same reason.

One more detail that catches people: Meta requires valid HTTPS for real verification. A self-signed certificate may be enough for your own browser, but it will not pass Meta’s webhook requirements.

How to Parse Message Events Without Losing Replies, Postbacks, or Signatures

Once the callback URL is verified, the real work starts. Meta will send event notifications as POST requests to the same endpoint. That payload needs three things from your code if you want a production-safe bot: signature validation, a fast 200 OK response, and routing logic that handles different event types cleanly.

The signature piece matters more than many tutorials admit. Meta signs event payloads with X-Hub-Signature-256. If you re-serialize JSON before validating, your hashes can drift. The safest approach is to capture the raw request body bytes during parsing, calculate the HMAC with your app secret, and compare it to the header value using a timing-safe comparison.

A production-safe Express example for Messenger webhooks

import crypto from "node:crypto";
import express from "express";

const app = express();
const PORT = process.env.PORT || 3000;
const VERIFY_TOKEN = process.env.MESSENGER_VERIFY_TOKEN;
const APP_SECRET = process.env.MESSENGER_APP_SECRET;
const PAGE_ACCESS_TOKEN = process.env.MESSENGER_PAGE_ACCESS_TOKEN;
const PAGE_ID = process.env.MESSENGER_PAGE_ID;

app.use(
  express.json({
    verify: (req, res, buf) => {
      req.rawBody = buf;
    },
  })
);

function hasValidSignature(req) {
  const header = req.get("X-Hub-Signature-256");
  if (!header || !req.rawBody) return false;

  const [scheme, signature] = header.split("=");
  if (scheme !== "sha256" || !signature) return false;

  const expected = crypto
    .createHmac("sha256", APP_SECRET)
    .update(req.rawBody)
    .digest("hex");

  const provided = Buffer.from(signature, "hex");
  const actual = Buffer.from(expected, "hex");

  return provided.length === actual.length &&
    crypto.timingSafeEqual(provided, actual);
}

app.get("/webhook", (req, res) => {
  const mode = req.query["hub.mode"];
  const token = req.query["hub.verify_token"];
  const challenge = req.query["hub.challenge"];

  if (mode === "subscribe" && token === VERIFY_TOKEN) {
    return res.status(200).send(challenge);
  }

  return res.sendStatus(403);
});

app.post("/webhook", async (req, res) => {
  if (!hasValidSignature(req)) {
    return res.sendStatus(401);
  }

  const body = req.body;

  if (body.object !== "page") {
    return res.sendStatus(404);
  }

  res.status(200).send("EVENT_RECEIVED");

  queueMicrotask(async () => {
    for (const entry of body.entry ?? []) {
      for (const event of entry.messaging ?? []) {
        try {
          await routeMessengerEvent(event);
        } catch (error) {
          console.error("Webhook handler failed", error, event);
        }
      }
    }
  });
});

async function routeMessengerEvent(event) {
  const senderId = event.sender?.id;
  if (!senderId) return;

  if (event.message && !event.message.is_echo) {
    const text = event.message.text?.trim();

    if (text) {
      await sendTextMessage(senderId, `You said: ${text}`);
      return;
    }

    if (event.message.attachments?.length) {
      await sendTextMessage(senderId, "I received your attachment.");
      return;
    }
  }

  if (event.postback) {
    const payload = event.postback.payload;

    if (payload === "GET_STARTED") {
      await sendTextMessage(senderId, "Welcome. Tell me what you need.");
      return;
    }

    await sendTextMessage(senderId, `Postback received: ${payload}`);
    return;
  }
}

async function sendTextMessage(psid, text) {
  const url = `https://graph.facebook.com/v25.0/${PAGE_ID}/messages?access_token=${PAGE_ACCESS_TOKEN}`;

  const response = await fetch(url, {
    method: "POST",
    headers: {
      "Content-Type": "application/json",
    },
    body: JSON.stringify({
      recipient: { id: psid },
      messaging_type: "RESPONSE",
      message: { text },
    }),
  });

  const data = await response.json();

  if (!response.ok) {
    throw new Error(`Send API error ${response.status}: ${JSON.stringify(data)}`);
  }

  return data;
}

app.listen(PORT, () => {
  console.log(`Messenger webhook listening on port ${PORT}`);
});

A few things in that example are worth calling out. First, the handler returns 200 before the heavy work begins. That matches Meta’s guidance to answer event notifications within five seconds or less. Second, it ignores message.is_echo so you do not create loops by reacting to your own outbound messages. Third, it keeps event routing narrow and explicit. That is the pattern that scales.

The event types worth handling on day one

For most bots, you only need three branches at the start: text messages, attachments, and postbacks. Add delivery receipts, read receipts, message echoes, and handover events when the product needs them. Developers often overbuild a giant webhook parser on day one, then spend the next day debugging event types they never actually use.

If your real deliverable is lead routing, booking requests, FAQs, or campaign follow-up instead of backend ownership, that is the point where Características de MessengerBot Pro can be more useful than another custom event switch statement. Not every Page needs a custom webhook worker just because Meta offers one.

How to Send Messenger Replies Back Through the Send API

Receiving a webhook event does not send a reply automatically. Your code still has to call the Send API with a Page access token and a recipient ID. Meta’s current Messenger docs show the send path as POST /{PAGE_ID}/messages. That matters because many older community examples still use /me/messages and then leave readers wondering which form is current.

As of April 2026, Meta’s Messenger docs show examples using the page-specific path with a Graph API version like v25.0. That is the pattern used in the code above, and it is the one I would mirror in fresh implementations.

curl -X POST "https://graph.facebook.com/v25.0/PAGE_ID/messages?access_token=PAGE_ACCESS_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "recipient": { "id": "PSID" },
    "messaging_type": "RESPONSE",
    "message": { "text": "hello, world" }
  }'

There are three sending modes that matter most:

  • RESPONSE: use this when you are answering a user’s message inside the standard 24-hour window.
  • UPDATE: proactive messaging inside the 24-hour window when the message is not directly a reply.
  • MESSAGE_TAG: non-promotional messaging outside the standard 24-hour window when the message matches an allowed tag use case.

The 24-hour window is where a lot of first bots break. A webhook can receive a message just fine, but the reply call fails because the business logic tries to send outside the allowed window or uses the wrong messaging type. If you are doing simple customer support or lead capture, keep your first implementation inside the RESPONSE path until the round-trip works.

Also note one current-policy detail from Meta’s Send API docs: message tags are heavily constrained, and Meta’s current docs say some tag requests will begin returning error code 100 effective April 27, 2026. If your use case depends on outbound notifications outside the normal messaging window, read the current policy text in the docs before you build the flow around a tag that is about to stop working.

Messenger Webhook Errors That Break Most First Deployments

Messenger webhook failures usually look mysterious from the dashboard and trivial from the logs. That is why the fastest way to debug them is to map the visible symptom to the likely broken assumption.

Symptom Likely cause What usually fixes it
Meta says the callback URL or verify token could not be validated The GET route path is wrong or the verify token does not match exactly Test the GET route with cURL first and verify the dashboard token string character for character
You receive events but answer nothing The webhook works, but the Send API call is failing Log the send response body, confirm the Page token, Page ID, PSID, and messaging type
401 or signature mismatch errors You are hashing parsed JSON instead of raw bytes, or the app secret is wrong Capture the raw body during parsing and recompute the HMAC with the real app secret
Webhook works locally but fails in dashboard verification Meta cannot reach localhost or the HTTPS certificate is not valid Use a public HTTPS URL with a trusted certificate
Replies fail after the first day You are trying to send outside the standard 24-hour window Use the correct messaging type and review the current message-tag rules before sending
Duplicate events show up in your logs Meta retried delivery after timeout or failure Add idempotency and deduplication instead of assuming every webhook is unique

The three debugging habits that save the most time

  1. Log the request type separately: keep GET verification logs distinct from POST event logs so you do not confuse setup traffic with live traffic.
  2. Log the raw response from the Send API: the send failure usually contains the exact clue you need.
  3. Store one sample payload per event type: once you have a real text message, attachment message, and postback payload saved, local testing gets much faster.

Meta’s webhook docs also note that failed notification delivery is retried immediately a few times, that alerts can be sent after fifteen minutes of failure, and that continuing failure for around one hour can disable the subscription. That is not a theoretical warning. If your endpoint is flaky, the channel really does degrade.

Scaling, Security, and Monitoring Rules for Production Messenger Bots

The first version of a Messenger webhook only needs to work. The production version needs to keep working when traffic spikes, when a third-party API is slow, when a retry arrives out of order, and when someone accidentally rotates the wrong secret. That is where most hobby examples stop being useful.

The production checklist I would use before sending live traffic to a client Page

  • Return 200 OK fast: acknowledge receipt first, then push heavy work to a queue or async worker.
  • Validate X-Hub-Signature-256 on every POST: do not trust the source because the route is obscure.
  • Deduplicate events: retries happen, and your business logic should be idempotent.
  • Store timestamps: Meta warns that messages may not always arrive in chronological order during failures, so event time should be part of your processing model.
  • Centralize logs: you want searchable logs for verification failures, signature failures, send failures, and slow handlers.
  • Alert on delivery failures: do not wait for the webhook to disable itself before you notice.
  • Keep secrets out of code: verify tokens, app secrets, and Page access tokens belong in managed secrets, not inside source files.
  • Version your Graph API calls intentionally: Meta examples currently show v25.0, so pin a version and review it during upgrades instead of letting behavior drift.

Performance-wise, the main mistake is doing synchronous downstream work in the webhook request itself. If your handler waits for an LLM call, a CRM update, a spreadsheet write, and an email trigger before returning 200, you are creating your own retry storm. Acknowledge first. Process second.

Security-wise, the most common blind spot is storing too much trust in the Page access token and too little in the inbound signature. Outbound token hygiene matters, but inbound verification matters too. If a route accepts arbitrary JSON and treats it as a real Messenger event, your logs and automation pipeline become trivial to poison.

Monitoring-wise, the metrics that matter are simple: verification failures, signature failures, webhook processing latency, Send API error rate, message throughput, retry rate, and time-to-first-reply. Those numbers tell you more about bot health than a vanity dashboard full of total messages sent.

How to Launch a Messenger Bot Without Owning Webhook Code

There is a point where writing webhook code is the wrong optimization. If the business needs auto-replies, lead capture, follow-up sequences, button flows, audience segmentation, live chat handoff, and analytics, the technical bottleneck is usually not “can we parse entry.messaging?” It is “how fast can we launch and how much maintenance do we want to own?”

That is where MessengerBot.app makes more sense than a custom webhook stack for many teams. You still get the business outcome of Facebook Messenger automation, but you do not have to maintain the callback route, signature checks, token handling, event router, or Send API glue code yourself.

If you want deeper automation, sequencing, and advanced flow tools, review Características de MessengerBot Pro. If you want to compare plans and decide whether the no-code route is cheaper than developer time, Ver precios de MessengerBot. And if you are still deciding between coding the stack and dragging together a faster workflow, the guide on building without coding is the right next read.

The practical rule is simple. Build custom webhooks when you need deep control, custom integrations, or a productized messaging backend. Use a platform when your actual goal is conversations, conversions, and reporting rather than infrastructure ownership.

Preguntas Frecuentes

¿Qué es un webhook de Facebook Messenger?

A Facebook Messenger webhook is a public HTTPS endpoint that Meta calls when subscribed messaging events happen on a Facebook Page. It handles inbound event notifications such as user messages, postbacks, deliveries, and reads. Your bot logic processes those events, then your app uses the Send API to reply.

¿Necesito programar para construir un bot de Messenger?

No. You only need custom code if you want full control over the webhook receiver, routing logic, integrations, and reply handling. If your goal is to launch Messenger automation faster, a no-code platform like MessengerBot is usually the shorter path.

¿Cómo verifico un webhook de Messenger?

Meta verifies a Messenger webhook by sending a GET request with hub.mode, hub.verify_token, y hub.challenge. Your endpoint must confirm that the token matches your configured verify token, then return the challenge value as the response body. If the token does not match, return 403.

¿Qué es la API de envío para Messenger?

The Send API is the outbound API you use to send messages from your Page to a user after you receive an inbound event. In Meta’s current Messenger docs, message sends use the page-specific endpoint pattern POST /{PAGE_ID}/messages with a Page access token, a recipient PSID, and a messaging type such as RESPONSE.

¿Puedo probar un webhook localmente antes de implementarlo?

Yes, you can test the GET verification route and POST event parsing locally with cURL. For actual Meta dashboard verification, you still need a public HTTPS callback URL. Most developers either use a temporary tunnel during development or deploy a small staging endpoint before going live.

Artículos Relacionados

es_ESEspañol
logo de messengerbot

Choose the Messenger Bot updates you want

Tell us what you came for so we can send the right Messenger Bot emails.

Business automation, earning-bot safety notes, and GOECB/GCash clarification now go into separate MailWizz paths.

Thanks. You are on the right Messenger Bot update path.

logo de messengerbot

Choose the Messenger Bot updates you want

Tell us what you came for so we can send the right Messenger Bot emails.

Business automation, earning-bot safety notes, and GOECB/GCash clarification now go into separate MailWizz paths.

Thanks. You are on the right Messenger Bot update path.