Solo se aplica a la API de la nube.
Los webhooks de mensajes se envían a la URL de devolución de llamada configurada en tu app, pero puedes anular esto configurando una URL de devolución de llamada alternativa en tu cuenta de WhatsApp Business (WABA) o número de teléfono comercial.
Cuando se active un webhook de mensajes, primero comprobaremos si el número de teléfono comercial asociado con el mensaje tiene una URL de devolución de llamada alternativa. Si la tiene, enviaremos el webhook a la URL de devolución de llamada alternativa. Si no la tiene, comprobaremos si la WABA asociada al número de teléfono tiene una URL de devolución de llamada alternativa y, si es así, enviaremos el webhook allí. Si tampoco hay una URL alternativa para la WABA, usaremos la URL de devolución de llamada de la app.
Antes de configurar una URL de devolución de llamada alternativa, asegúrate de que tu app esté suscrita a webhooks para la WABA y verifica que tu punto de conexión alternativo de devolución de llamada pueda recibir y procesar mensajes de webhooks correctamente.
Usa el punto de conexión POST /<WABA_ID>/subscribed_apps para configurar una URL de devolución de llamada alternativa en una WABA.
POST /<WABA_ID>/subscribed_apps
{ "override_callback_uri":"<WABA_ALT_CALLBACK_URL>", "verify_token":"<WABA_ALT_CALLBACK_URL_TOKEN>" }
Marcador de posición | Descripción | Valor de ejemplo |
---|---|---|
| Obligatorio. URL de devolución de llamada alternativa a donde se deberían enviar los webhooks de mensajes. No debe superar los 200 caracteres. |
|
| Obligatorio. Token de verificación de URL de devolución de llamada alternativa. Sin máximo. |
|
En caso de éxito:
{ "success": true }
curl -X POST \
'https://graph.facebook.com/v19.0
/102290129340398/subscribed_apps' \
-H 'Authorization: Bearer EAAJi...' \
-H 'Content-Type: application/json' \
-d '
{
"override_callback_uri":"https://my-waba-alternate-callback.com/webhook",
"verify_token":"myvoiceismypassport?"
}'
{ "success": true }
Usa el punto de conexión GET /<WABA_ID>/subscribed_apps para obtener una lista de todas las apps suscritas a webhooks en la WABA. La respuesta debería incluir una propiedad override_callback_uri
con su respectivo valor.
{ "data" : [ { "whatsapp_business_api_data" : { "id" : "670843887433847", "link" : "https://www.facebook.com/games/?app_id=67084...", "name" : "Lucky Shrub" }, "override_callback_uri" : "https://my-waba-alternate-callback.com/webhook" } ] }
Usa el punto de conexión POST /<WABA_ID>/subscribed_apps para suscribir tu app a webhooks en la WABA como lo harías normalmente (es decir, sin parámetros en el cuerpo de la solicitud POST). De esta manera, se eliminará la URL de devolución de llamada del punto de conexión alternativo, y los webhooks de mensajes de la WABA se volverán a enviar a la URL de devolución de llamada configurada en el panel de apps.
Usa el punto de conexión POST /<BUSINESS_PHONE_NUMBER_ID> para configurar una URL de devolución de llamada alternativa en el número de teléfono comercial.
POST /<BUSINESS_PHONE_NUMBER_ID>
{ "webhook_configuration": { "override_callback_uri": "<PHONE_ALT_CALLBACK_URL>", "verify_token": "<PHONE_ALT_CALLBACK_URL_TOKEN>" } }
Marcador de posición | Descripción | Valor de ejemplo |
---|---|---|
| Obligatorio. URL de devolución de llamada alternativa a donde se deberían enviar los webhooks de mensajes. No debe superar los 200 caracteres. |
|
| Obligatorio. Token de verificación de URL de devolución de llamada alternativa. Sin máximo. |
|
En caso de éxito:
{ "success": true }
curl 'https://graph.facebook.com/v19.0
/106540352242922' \
-H 'Content-Type: application/json' \
-H 'Authorization: Bearer EAAJB...' \
-d '
{
"webhook_configuration": {
"override_callback_uri": "https://my-phone-alternate-callback.com/webhook",
"verify_token": "myvoiceismypassport?"
}
}'
{ "success": true }
Usa el punto de conexión GET /<BUSINESS_PHONE_NUMBER_ID> y solicita el campo webhook_configuration
para verificar que el número de teléfono del negocio tenga una URL de devolución de llamada alternativa.
GET /<BUSINESS_PHONE_NUMBER_ID> ?fields=webhook_configuration
En caso de éxito:
{ "webhook_configuration": { "phone_number": "<PHONE_ALT_CALLBACK_URL>", "whatsapp_business_account": "<WABA_ALT_CALLBACK_URL>", "application": "<APP_CALLBACK_URL>" }, "id": "106540352242922" }
Ten en cuenta que whatsapp_business_account
solo se incluye si la WABA asociada con el número de teléfono comercial también tiene una URL de devolución de llamada alternativa.
curl 'https://graph.facebook.com/v17.0/106540352242922?fields=webhook_configuration' \ -H 'Authorization: Bearer EAAJB...'
{ "webhook_configuration": { "phone_number": "https://my-phone-alternate-callback.com/webhook", "whatsapp_business_account": "https://my-waba-alternate-callback.com/webhook", "application": "https://my-production-callback.com/webhook" }, "id": "106540352242922" }
Usa el punto de conexión DELETE /<WHATSAPP_BUSINESS_ACCOUNT_ID>subscribed_apps para eliminar una URL de devolución de llamada alternativa del número de teléfono comercial. Ten en cuenta que con esto también se cancela por completo la suscripción de la app a los webhooks en la WABA.