Enviar mensaje de Messenger

POST
/api/meta/send

Envía texto o un adjunto por URL (nunca ambos) a un contacto de una página de Facebook conectada. El page access token se resuelve en el servidor.

Destino en una de dos formas (ADR 0019):

  • conversationId solo, tomado del conversation.id del webhook.
  • pageId + recipientId; si además viene conversationId, debe coincidir con ese par.

Messenger solo permite responder dentro de las 24 horas desde el último mensaje del contacto y trunca el texto a 2000 caracteres.

AuthorizationBearer <token>

API key opaca del tenant, creada en Settings → API Tokens. Una key revocada, inexistente o malformada responde 401 {"error":"unauthorized"}.

In: header

Header Parameters

Idempotency-Key?string

Clave elegida por el cliente (1–200 caracteres). Repetirla devuelve 200 con el resultado original y resender.idempotentReplay: true, sin volver a llamar a Meta. Una cabecera vacía o de más de 200 caracteres responde 400.

Length1 <= length <= 200
x-request-id?string

Identificador de correlación opcional que se copia a los logs del servidor.

Request Body

application/json

TypeScript Definitions

Use the request body type in TypeScript.

Destino del envío. O conversationId solo, o pageId + recipientId (opcionalmente con conversationId, que debe coincidir con el par).

Exactamente uno de reply o attachment.

Exactamente uno de reply o attachment.

Response Body

application/json

application/json

application/json

application/json

application/json

application/json

application/json

application/json

application/json

curl -X POST "https://example.com/api/meta/send" \  -H "Idempotency-Key: order-8841-confirmation" \  -H "Content-Type: application/json" \  -d '{    "conversationId": "6f0e5a2c-8a5e-4a3d-9c2b-1f2e3d4c5b6a",    "reply": "¡Hola! Tenemos ese modelo en talle 38 y 40."  }'
{  "meta": {    "message_id": "m_AbCdEfGhIjKlMnOpQrStUvWxYz0123456789"  },  "resender": {    "conversationId": "6f0e5a2c-8a5e-4a3d-9c2b-1f2e3d4c5b6a",    "messageId": "0c9d2f6e-3b7a-4e1d-8f5c-2a1b3c4d5e6f",    "status": "sent"  }}