Перейти к основному содержимому

Нет хранилища | Документация для разработчиков

Нет места для хранения

Обновлено: 1 декабря 2025 г
«Без хранилища» — это пользовательская конфигурация локального хранилища , при которой данные во время передачи хранятся до часа в центрах обработки данных Meta и не сохраняются в состоянии покоя (то есть ни в центрах обработки данных Meta, ни в хранилищах AWS In-Country).
    Исходящие/входящие сообщения хранятся в центрах обработки данных Meta максимум 1 час.Исходящие/входящие медиафайлы хранятся в центрах обработки данных Meta максимум 1 час.При загрузке медиафайлов можно задать пользовательское время жизни (TTL) — от 1 часа до 30 дней — чтобы переопределить истечение срока действия через 1 час (это особенно полезно для маркетинговых кампаний, в которых используются одни и те же медиафайлы)

    Ограничения

    При включении функции «Без хранения» содержимое сообщений не сохраняется в состоянии покоя в течение 30 дней, как это обычно происходит с Cloud API. Это приводит к следующим ограничениям, которые могут поставить под угрозу недоставки небольшой части вашего общего объема сообщений.
      Сбои при расшифровке сообщений — Если сообщение не расшифровывается на стороне получателя, Cloud API может повторить отправку сообщения только в течение 1-часового окна TTL. По истечении этого 1-часового окна Cloud API не сможет повторить отправку сообщения. Вы получите веб-перехватчик с ошибкой, указывающий на сбой. См.: Повторная отправка сообщений при сбоях .Сбои доставки веб-хуков — Обычно Cloud API повторяет попытки доставки недоставленных веб-хуков (например, входящих сообщений или квитанций) в течение 7 дней. При включенной опции «Без хранилища» количество повторных попыток доставки веб-хуков ограничено 1 часом. Если ваш сервер веб-хуков недоступен в течение этого периода, веб-хук (включая входящие сообщения, квитанции и т. д.) будет безвозвратно утерян. См.: Сбои доставки веб-хуков .Входящие медиасообщения — медиафайлы, прикрепленные к входящим сообщениям, будут доступны для загрузки в течение 1 часа. По истечении 1 часа медиафайлы будут безвозвратно удалены и не смогут быть восстановлены.

      Включить отсутствие хранилища

      Синтаксис запроса (версия 21.0 или новее)

      Включение этой функции осуществляется до регистрации путем вызова POST-запроса. /settings endpoint.
      curl 'https://graph.facebook.com/
      < API_VERSION > / < BUSINESS_PHONE_NUMBER_ID > /settings' \ -H 'Content-Type: application/json' \
      -H 'Authorization: Bearer
      < ACCESS_TOKEN > ' \ -d '
      {
      "storage_configuration": {
      "status": "NO_STORAGE_ENABLED",
      "retention_minutes": 60
      }
      }'
      retention_minutes допускается только 60 , поскольку это единственный поддерживаемый нами срок хранения.

      Синтаксис запроса (версия 20.0 или более ранняя)

      Включение этой функции осуществляется в рамках POST-запроса. /register запрос на регистрацию.
      curl 'https://graph.facebook.com/
      < API_VERSION > / < BUSINESS_PHONE_NUMBER_ID > /settings' \ -H 'Content-Type: application/json' \
      -H 'Authorization: Bearer
      < ACCESS_TOKEN > ' \ -d '
      {
      "messaging_product": "whatsapp",
      "pin": "123456",
      "tier": "test",
      "meta_store_retention_minutes": 60
      }'
        В настоящее время для параметра meta_store_retention_minutes допускается только значение 60, поскольку это единственный поддерживаемый нами срок хранения.Параметр meta_store_retention_minutes нельзя использовать одновременно с data_localization_region .

        Отключить отсутствие хранилища

        Чтобы отключить функцию «Нет места для хранения», необходимо отменить регистрацию бизнес-телефонного номера с помощью команды POST / /deregister endpoint, затем зарегистрируйте номер снова, исключив meta_store_retention_minutes .

        Пример синтаксиса отмены регистрации

        curl -X POST 'https://graph.facebook.com/
        < API_VERSION > / < BUSINESS_PHONE_NUMBER_ID > /deregister' \ -H 'Авторизация: Bearer
        < ACCESS_TOKEN > '

        Переопределить TTL исходящих медиафайлов

        Значение TTL по умолчанию, равное 1 часу, для бизнес-номеров телефонов без включенной функции хранения данных также применяется к медиафайлам, загружаемым на этот номер . Если вы хотите переопределить значение TTL по умолчанию, равное 1 часу, вы можете добавить новый ttl_minutes при загрузке медиафайлов.

        Пример синтаксиса

        curl 'https://graph.facebook.com/
        < API_VERSION > / < BUSINESS_PHONE_NUMBER_ID > /media' \ -H 'Content-Type: application/json' \
        -H 'Authorization: Bearer
        < ACCESS_TOKEN > ' \ -d '
        {
        "messaging_product": "whatsapp",
        "file": "file=
        < FILE_NAME > ;type= < FILE_MIME_TYPE > ", "ttl_minutes": "120"
        }'
          ttl_minutes составляет от 1 часа ( 60 ) до 30 дней ( 43200 ).В настоящее время API не возвращает дату истечения срока действия медиафайлов в ответе.

          Веб-хуки ошибок

          Повторная попытка получения сообщений об ошибках

          В случае сбоев расшифровки сообщения в WhatsApp мы прекратим попытки доставки недоставленного сообщения с номера, для которого не включено хранилище, как только истечет время жизни сообщения (TTL). В таких случаях запускается веб-перехватчик сообщений о статусе 131036 :
          Пример полезной нагрузки
          {
          "object"
          : "whatsapp_business_account" , "entry"
          : [{ "id"
          : "102290129340398" , "changes"
          : [{ "field"
          : "messages" , "value"
          : { "messaging_product"
          : "whatsapp" , "metadata"
          : { "display_phone_number"
          : "15550783881" , "phone_number_id"
          : "106540352242922" },
          "statuses"
          : [{ "id"
          : "wamid.HBgMNDQ3ODI1MDYzOTQxFQIAERgSN0MzMTg0Nzk2RkM wOEQ5NTQ2AA==" , "status"
          : "failed" , "timestamp"
          : "1712597457" , "recipient_id"
          : "16505551234" , "errors"
          : [{ "code"
          : 131036 , "title"
          : "Сообщение не было доставлено хотя бы на одном из устройств пользователя" , "message"
          : "Сообщение не было доставлено хотя бы на одном из устройств пользователя" , "error_data"
          : { "details"
          : "Содержимое сообщения не найдено" }
          }]
          }]
          }
          }]
          }]
          }
          Примечания:
            Эта ошибка отправляется только в том случае, если мы не обрабатываем запрос на повторную попытку, отправленный основным устройством. Если повторная попытка не удается для дополнительного устройства, мы игнорируем ее, поскольку сообщение будет доставлено при синхронизации с основным устройством.Возможно, сообщение было успешно доставлено на дополнительные устройства, но не на основное. В этом случае будет отправлен веб-хук.

            Невозможность доставки веб-хуков

            сообщений в течение 7 дней . Для бизнес-номеров телефонов без включенного хранилища, если доставка входящего сообщения через веб-хук не удается, мы отбрасываем его и вместо этого отправляем сообщение об ошибке с кодом 131035 .
            {
            "object"
            : "whatsapp_business_account" , "entry"
            : [{ "id"
            : "102290129340398" , "changes"
            : [{ "field"
            : "messages" , "value"
            : { "messaging_product"
            : "whatsapp" , "metadata"
            : { "display_phone_number"
            : "15550783881" , "phone_number_id"
            : "106540352242922" },
            "errors"
            : [{ "code"
            : 131035 , "title"
            : "Webhook could not be delivered within data retent limit" , "message"
            : "Webhook could not be delivered within data retent limit" , "error_data"
            : { "details"
            :
            "
            Не удалось доставить веб-перехватчик
            в
            пределах лимита
            хранения данных "