Бизнес-аккаунт Meta (другое название — аккаунт Business Manager или просто бизнес-аккаунт) теперь будет называться бизнес-портфолио. Это изменение будет внедряться на платформах Meta постепенно. Оно носит исключительно косметический характер и не затрагивает ID бизнес-аккаунтов Meta (ID бизнес-портфолио).

Работоспособность обмена сообщениями

В этом документе рассказывается, как определить, можете ли вы отправлять сообщения с использованием того или иного ресурса API.

У следующих узлов имеется поле health_status:

Если запросить поле health_status в любом из этих узлов, API вернет сводную информацию обмена сообщениями для всех узлов, участвующих в запросах, если используется целевой узел. В этой сводке указывается, можете ли вы использовать API для отправки сообщений, будет ли такая отправка частично ограничена на одном или нескольких узлах или же у вас вообще не будет возможности обмениваться сообщениями.

Синтаксис запроса

GET /<NODE_ID>?fields=health_status

Ответ

{
  "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>"
}

Содержимое ответа

ЗаполнительОписаниеПример значения

<APP_ID>

ID приложения.

634974688087057

<APP_MESSAGING_STATUS>

Работоспособность обмена сообщениями для приложения. См. Работоспособность обмена сообщениями.

AVAILABLE

<BUSINESS_PORTFOLIO_ID>

ID бизнес-портфолио.

506914307656634

<BUSINESS_PORTFOLIO_MESSAGING_STATUS>

Работоспособность обмена сообщениями для бизнес-портфолио. См. Работоспособность обмена сообщениями.

AVAILABLE

<BUSINESS_PHONE_NUMBER_ID>

ID номера телефона компании.

106540352242922

<BUSINESS_PHONE_NUMBER_MESSAGING_STATUS>

Работоспособность обмена сообщениями для номера телефона компании. См. Работоспособность обмена сообщениями.

AVAILABLE

<NODE_ID>

ID целевого узла.

161311403722088

<OVERALL_MESSAGING_STATUS>

Общая работоспособность обмена сообщениями с учетом всех узлов, задействованных в запросе, если используется целевой узел. См. Работоспособность обмена сообщениями.

AVAILABLE

<TEMPLATE_ID>

ID шаблона.

1421988012088524

<TEMPLATE_MESSAGING_STATUS>

Работоспособность обмена сообщениями для шаблона. См. Работоспособность обмена сообщениями.

AVAILABLE

<WABA_ID>

ID аккаунта WhatsApp Business.

102290129340398

<WABA_MESSAGING_STATUS>

Работоспособность обмена сообщениями для аккаунта WhatsApp Business. См. Работоспособность обмена сообщениями.

AVAILABLE

Работоспособность обмена сообщениями

В процессе отправки сообщения задействованы несколько узлов, в том числе приложение, бизнес-портфолио, которому оно принадлежит или которое заявило о правах на него, аккаунт WhatsApp Business, номер телефона компании и шаблон (если отправляется сообщение с шаблоном).

У каждого из этих узлов может быть одно из следующих состояний работоспособности, установленных в свойстве can_send_message:

  • AVAILABLE означает, что узел соответствует всем требованиям для обмена сообщениями;
  • LIMITED означает, что узел соответствует всем требованиям для обмена сообщениями, но для него существуют некоторые ограничения (если для какого-либо узла установлено это значение, будет указана дополнительная информация);
  • BLOCKED означает, что узел не соответствует одному или нескольким требованиям для обмена сообщениями (если для какого-либо узла установлено это значение, будет добавлено свойство ошибок с описанием ошибки и предложением возможного решения).

Общее состояние

Свойство общего состояния работоспособности (health_status.can_send_message) устанавливается следующим образом:

  • если один или несколько узлов заблокированы, будет установлено значение BLOCKED;
  • если заблокированных узлов нет, но для одного или нескольких узлов существуют ограничения, будет установлено значение LIMITED;
  • если все узлы доступны, будет установлено значение AVAILABLE.

Пример запроса

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

Пример ответа

{
  "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"
}

Свойство дополнительной информации

Если для свойства can_send_message какого-либо узла установлено значение LIMITED, дополнительная информация об ограничении будет указана в свойстве additional_info.

Пример ответа при наличии ограничений

Это пример ответа на запрос номера телефона компании, который можно использовать для отправки сообщений, но который имеет ограничение по количеству отправляемых сообщений, поскольку его отображаемое имя не утверждено.

{
  "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"
}

Свойство ошибок

Если для свойства can_send_message какого-либо узла установлено значение BLOCKED, в свойстве errors будет указана причина такого состояния и возможное решение для его устранения.

Пример ответа при наличии блокировки

Это пример ответа на запрос шаблона, который нельзя отправить в сообщении, поскольку он все еще рассматривается.

{
  "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"
}