Las cuentas empresariales de Meta, a veces denominadas “cuentas de Business Manager” o simplemente “cuentas empresariales”, pasarán a llamarse porfolios empresariales. Este cambio se implementará de forma gradual en las tecnologías de Meta. El cambio solo es estético y no afecta a los identificadores de las cuentas empresariales de Meta (identificadores de porfolios empresariales).

Estado de los mensajes

En este documento se describe cómo determinar si se pueden enviar mensajes correctamente usando un recurso de la API concreto.

Los siguientes nodos tienen el campo health_status:

Si solicitas el campo health_status en cualquiera de estos nodos, la API devolverá un resumen del estado de los mensajes de todos los nodos que intervienen en las solicitudes de mensajes si se utiliza el nodo de destino. En el resumen se indica si podrás usar la API para enviar mensajes correctamente, si existe alguna limitación en uno o más nodos que afecte al envío o si no podrás enviar ningún mensaje.

Sintaxis de la solicitud

GET /<NODE_ID>?fields=health_status

Respuesta

{
  "health_status": {
    "can_send_message": "<OVERALL_MESSAGING_STATUS>",
    "entities": [
    
      /* Only included if targeting a business phone number */
      {
        "entity_type": "PHONE_NUMBER",
        "id": "<BUSINESS_PHONE_NUMBER_ID>",
        "can_send_message": "<BUSINESS_PHONE_NUMBER_MESSAGING_STATUS>"
      },
      
      /* Only included if targeting a template */
      {
        "entity_type": "MESSAGE_TEMPLATE",
        "id": "<TEMPLATE_ID>",
        "can_send_message": "<TEMPLATE_MESSAGING_STATUS>"
      },
      
      /* WABA, business, and app always included */
      {
        "entity_type": "WABA",
        "id": "<WABA_ID>",
        "can_send_message": "<WABA_MESSAGING_STATUS>"
      },
      {
        "entity_type": "BUSINESS",
        "id": "<BUSINESS_PORTFOLIO_ID>",
        "can_send_message": "<BUSINESS_PORTFOLIO_MESSAGING_STATUS>"
      },
      {
        "entity_type": "APP",
        "id": "<APP_ID>",
        "can_send_message": "<APP_MESSAGING_STATUS>"
      }
    ]
  },
  "id": "<NODE_ID>"
}

Contenido de la respuesta

Marcador de posiciónDescripciónEjemplo de valor

<APP_ID>

Identificador de la aplicación.

634974688087057

<APP_MESSAGING_STATUS>

Estado de los mensajes de la aplicación. Consulta Estado de los mensajes.

AVAILABLE

<BUSINESS_PORTFOLIO_ID>

Identificador del porfolio empresarial.

506914307656634

<BUSINESS_PORTFOLIO_MESSAGING_STATUS>

Estado de los mensajes del porfolio empresarial. Consulta Estado de los mensajes.

AVAILABLE

<BUSINESS_PHONE_NUMBER_ID>

Identificador del número de teléfono de empresa.

106540352242922

<BUSINESS_PHONE_NUMBER_MESSAGING_STATUS>

Estado de los mensajes del número de teléfono de empresa. Consulta Estado de los mensajes.

AVAILABLE

<NODE_ID>

Identificador del nodo de destino.

161311403722088

<OVERALL_MESSAGING_STATUS>

Estado general de los mensajes teniendo en cuenta todos los nodos que intervienen en las solicitudes de mensajes si se utiliza el nodo de destino. Consulta Estado de los mensajes.

AVAILABLE

<TEMPLATE_ID>

Identificador de la plantilla.

1421988012088524

<TEMPLATE_MESSAGING_STATUS>

Estado de los mensajes de la plantilla. Consulta Estado de los mensajes.

AVAILABLE

<WABA_ID>

Identificador de la cuenta WABA.

102290129340398

<WABA_MESSAGING_STATUS>

Estado de los mensajes de la cuenta WABA. Consulta Estado de los mensajes.

AVAILABLE

Estado de los mensajes

Hay varios nodos que intervienen en el envío de un mensaje, entre los que se incluyen la aplicación, el porfolio empresarial al que pertenece la aplicación o que la haya reclamado, la cuenta WABA, el número de teléfono de empresa y la plantilla (en caso de enviar un mensaje de plantilla).

Cada uno de estos nodos puede tener asignado uno de los siguientes estados a la propiedad can_send_message:

  • AVAILABLE: indica que el nodo cumple todos los requisitos de los mensajes.
  • LIMITED: indica que el nodo cumple los requisitos de los mensajes, pero tiene ciertas limitaciones. Si un nodo tiene este valor, se incluirá la propiedad “additional info”.
  • BLOCKED: indica que el nodo no cumple uno o más requisitos de los mensajes. Si un nodo tiene este valor, se incluirá la propiedad “errors”, que describe el error y una posible solución.

Estado general

El valor de la propiedad de estado general (health_status.can_send_message) se establece de la siguiente manera:

  • Si uno o más nodos están bloqueados, se establece en BLOCKED.
  • Si no hay nodos bloqueados, pero uno o más nodos están limitados, se establece en LIMITED.
  • Si todos los nodos están disponibles, se establece en AVAILABLE.

Ejemplo de solicitud

curl 'https://graph.facebook.com/v21.0/106540352242922?fields=health_status' \
-H 'Authorization: Bearer EAAJB'

Ejemplo de respuesta

{
  "health_status": {
    "can_send_message": "AVAILABLE",
    "entities": [
      {
        "entity_type": "PHONE_NUMBER",
        "id": "106540352242922",
        "can_send_message": "AVAILABLE"
      },
      {
        "entity_type": "WABA",
        "id": "102290129340398",
        "can_send_message": "AVAILABLE"
      },
      {
        "entity_type": "BUSINESS",
        "id": "506914307656634",
        "can_send_message": "AVAILABLE"
      },
      {
        "entity_type": "APP",
        "id": "634974688087057",
        "can_send_message": "AVAILABLE"
      }
    ]
  },
  "id": "106540352242922"
}

Propiedad “additional info”

Si el valor de la propiedad can_send_message de un nodo está establecido en LIMITED, se incluirá la propiedad additional_info, que proporciona información adicional sobre la limitación.

Ejemplo de respuesta limitada

A continuación, se muestra un ejemplo de respuesta a una solicitud de un número de teléfono de empresa que puede enviar un número limitado de mensajes porque el nombre para mostrar no está aprobado.

{
  "health_status": {
    "can_send_message": "LIMITED",
    "entities": [
      {
        "entity_type": "PHONE_NUMBER",
        "id": "106540352242922",
        "can_send_message": "LIMITED",
        "additional_info": [
          "Your display name has not been approved yet. Your message limit will increase after the display name is approved."
        ]
      },
      {
        "entity_type": "WABA",
        "id": "102290129340398",
        "can_send_message": "AVAILABLE"
      },
      {
        "entity_type": "BUSINESS",
        "id": "506914307656634",
        "can_send_message": "AVAILABLE"
      },
      {
        "entity_type": "APP",
        "id": "634974688087057",
        "can_send_message": "AVAILABLE"
      }
    ]
  },
  "id": "105154286024403"
}

Propiedad “errors”

Si el valor de la propiedad can_send_message de un nodo está establecido en BLOCKED, se incluirá la propiedad errors, que describe el motivo del estado y una posible solución.

Ejemplo de respuesta bloqueada

A continuación, se muestra un ejemplo de respuesta a una solicitud de una plantilla que no puede enviarse en un mensaje de plantilla porque todavía está en estado “pendiente”.

{
  "health_status": {
    "can_send_message": "BLOCKED",
    "entities": [
      {
        "entity_type": "MESSAGE_TEMPLATE",
        "id": "2632273056924580",
        "can_send_message": "BLOCKED",
        "errors": [
          {
            "error_code": 141002,
            "error_description": "Message templates can only be sent out if they are approved.",
            "possible_solution": "Edit or appeal the message template review decision."
          }
        ]
      },
      {
        "entity_type": "WABA",
        "id": "102290129340398",
        "can_send_message": "AVAILABLE"
      },
      {
        "entity_type": "BUSINESS",
        "id": "506914307656634",
        "can_send_message": "AVAILABLE"
      },
      {
        "entity_type": "APP",
        "id": "634974688087057",
        "can_send_message": "AVAILABLE"
      }
    ]
  },
  "id": "2632273056924580"
}