Мы прекращаем поддержку локального API. Подробные сведения и информацию о том, как перейти на облачный API нового поколения, см. в документе Упразднение локального API.

Часто задаваемые вопросы по локальным API

Посетите страницу статуса платформы WhatsApp Business, чтобы быть в курсе доступности платформы.

Начало работы

Соединение с пользователями WhatsApp Business API, управляющими конечной точкой API на своих серверах, считается защищенным сквозным шифрованием, так как никакая третья сторона не может получить доступ к контенту между конечными точками.

Некоторые организации предпочитают передать управление конечной точкой WhatsApp Business API стороннему поставщику решений для компаний. В таких ситуациях для передачи данных используется то же шифрование по протоколу Signal. Однако в этих случаях соединение не считается защищенным сквозным шифрованием, так как пользователь WhatsApp Business API привлекает третью сторону для управления конечной точкой. В 2021 г. этот подход будет применяться также для компаний, которые пользуются облачной версией API, размещенной на серверах Facebook.

Кроме того, если вы выполняете вызовы к клиенту WhatsApp Business API по протоколу HTTPS, данные на пути от вашего внутреннего клиента к клиенту WhatsApp Business API защищаются с помощью SSL-шифрования.

Подробные сведения см. в этом техническом документе.

Нет, в экземпляре может использоваться только один аккаунт. Если вам нужен второй тестовый аккаунт, используйте для второго экземпляра другой номер.

НЕТ. Одновременно может быть запущен только один экземпляр клиента API WhatsApp Business с определенным номером телефона. Как только вы зарегистрируете ещё один экземпляр, предыдущий завершит работу. Мы работаем над решением этой проблемы. Следите за новостями.

Клиенту локального API WhatsApp Business требуется база данных для хранения ключей, с помощью которых расшифровываются сообщения переписки между компанией и клиентами. Все сообщения в WhatsApp зашифрованы ключами отправителя и получателя. Ключи пользователя хранятся на его мобильном устройстве, а ключи компании — в ее базе данных. Подробнее о безопасности в WhatsApp…

Если вы используете облачный API WhatsApp Business, то база данных компании размещается на серверах Meta. В этом случае мы можете пользоваться API, не тратя средства на размещение своих серверов. Подробнее…

Нет. На данный момент невозможно использовать несколько номеров для одного клиента WhatsApp Business API. Мы работаем над решением, которое позволит делать это в будущем.

Yes, Whatsapp Flows can be sent with On-Premises API. You can learn more about Whatsapp Flows here, or learn how to get started with Whatsapp Flows and On-Premises API here.

Установка

Да. По умолчанию клиент WhatsApp Business API устанавливает соединение с помощью chatd через порт 5222. Порт 5222 следует открыть для любого исходящего трафика. Это безопасно, так как вы отправляете трафик только из своего центра обработки данных.

Если порт 5222 закрыт, клиент WhatsApp Business API попытается использовать порт 443. Если брандмауэр или прокси продолжает блокировать соединения, обратитесь в прямую поддержку, чтобы получить помощь от команды WhatsApp.

Нет. Клиент API WhatsApp Business открывает исходящее TCP-подключение к порту 5222 или 443 на серверах WhatsApp. Трафик TCP передается через это долговременное подключение. В брандмауэрах он обычно классифицируется как исходящий и подтвержденный трафик. Конечно, пакеты будут передаваться в обе стороны, но подключение исходит из клиента API WhatsApp Business, поэтому правило, разрешающее входящие подключения, не требуется.

Требования зависят от нагрузки и ситуации. Это решение будет работать на любом устройстве, если оно подключено к Интернету и на нем работает платформа Docker. Например, простое тестирование можно выполнить на обычном ноутбуке.

Минимальные требования к рабочему серверу с одним экземпляром: твердотельный накопитель емкостью 250 ГБ, 16 ГБ ОЗУ, четырехъядерный ЦП. Использовать обычные жесткие диски не рекомендуется из-за низкой скорости ввода-вывода: при высокой нагрузке это будет мешать работе.

Минимальные требования к рабочему серверу с распределением нагрузки: твердотельный накопитель емкостью 50 ГБ, 4ГБ ОЗУ, двухъядерный ЦП для каждого контейнера Coreapp, Master или Webapp.

В общем случае база данных должна работать на отдельном физическом сервере (не на том, где размещены контейнеры Coreapp и Webapp). Допустимая задержка при передаче данных между этим сервером и компьютером — не более нескольких миллисекунд.

Такая конфигурация поддерживает отправку примерно 20 сообщений в секунду.

Необходима версия MySQL 5.7.x либо версия PostgreSQL 9.5.x, 9.6.x или 10.x. При использовании более ранних версий возникает ошибка Unable to initialize config store.

Локально настройте MySQL, следуя этому руководству.

Локально настройте PostgreSQL, следуя этому руководству.

В общем случае база данных должна работать на отдельном физическом сервере (не на том, где размещены контейнеры Coreapp и Webapp). Допустимая задержка при передаче данных между этим сервером и компьютером — не больше нескольких миллисекунд.

Белый список можно создавать на основе и имен хоста, и IP-адресов.

Дополнительную информацию см. в разделе Имена хостов документа Требования к сети.

Да, подключение TCP обязательно. Если вы не можете использовать дополнительные порты, воспользуйтесь дешифрованным протоколом SSL.

Подробнее см. в статье Требования к сети.

Управление данными

Поддерживаются MySQL и PostgreSQL. Если вы настраиваете Docker самостоятельно, потребуется база данных MySQL или PostgreSQL, к которой будут подключаться контейнеры. При использовании шаблона AWS по умолчанию настраивается база данных MySQL.

Нет. В настоящее время клиент API WhatsApp Business не работает в Docker для Windows. В целях разработки рекомендуется запускать Docker на виртуальной машине Linux. В рабочей среде во избежание проблем с совместимостью и производительностью мы рекомендуем использовать сервер Linux.

Чтобы перезапустить контейнеры Docker, выполните указанные ниже команды.

Контейнер Coreapp

docker restart wacore<Current_WABA_Version>

Контейнер Webapp

docker restart webapp<Current_WABA_Version>

Проверка версии

docker ps

Да. Поведение при ротации журналов для контейнеров webapp и coreapp различается.

  • Webapp: хранятся последние 30 файлов журналов. Ротация выполняется, только если размер файла превышает 20 МБ.
  • Coreapp: хранятся последние 30 файлов журналов. Ротация выполняется, только если размер файла превышает 15 МБ. Файлы после ротации сжимаются.

Очистить старые записи журнала контейнера можно с помощью следующего скрипта:

docker exec CONTAINER_NAME /opt/whatsapp/bin/cleanup.sh

Его можно использовать как для контейнеров Webapp, так и для Coreapp. Скрипт удаляет старые файлы и оставляет последние 30 файлов журнала контейнера.

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

Сообщения хранятся в базе данных. Их можно удалять по мере необходимости. Если в настройках приложения для параметра pass_through установлено значение false, все сообщения сохраняются в базе данных и их необходимо удалять явным образом.

Медиафайлы, которые вы получаете от пользователей, скачиваются на тома медиаданных. Вы сами решаете, какие файлы нужно удалить. В большинстве случаев можно удалять все медиафайлы. Проверить путь к тому медиаданных можно с помощью команды docker inspect your-container-id.

Да, если это не влияет на таблицы, связанные с WhatsApp.

В базе данных хранится информация о настройках приложения, переписках, сообщениях, медиафайлах и т. п. Все эти данные необходимы для работы приложения.

В версии v2.25.x по сравнению с предыдущими повышена производительность обработки входящего и исходящего трафика. Для такой оптимизации используются дополнительные соединения с базой данных. В результате в некоторых развертываниях количество соединений может превзойти ограничение. Чтобы сохранить высокую производительность, увеличьте максимальное количество соединений, которое может принимать ваш сервер базы данных. Если это невозможно, измените значение параметра axolotl_context_striping_disabled, чтобы отключить оптимизацию. Подробнее о том, как его изменить, см. в документации.

Таблицы messages и messages_reciept_log периодически очищаются от мусора.

При этом в сборщике мусора сохраняются сообщения некоторых видов, необходимые для доставки или обработки сообщений. Например, входящие сообщения сохраняются в течение определенного времени, чтобы бизнес-интеграция могла пометить сообщение как прочитанное.

Coreapp собирает мусор со случайными интервалами (каждые несколько часов). Это необходимо, чтобы избежать снижения производительности в стеках повышенной доступности из-за заполнения базы данных.

Сбор мусора не затрагивает очередь обратных вызовов. Например, если сервер Webhooks недоступен в течение четырех дней, обратные вызовы сохраняются и будут отправлены, когда сервер станет доступен.

Используйте сбор мусора в базе данных API конечной точки services, чтобы удалить сообщения и соответствующие подтверждения о получении сообщений из таблиц messageStore.messages и messageStore.messages_receipt_log.

Регистрация

Если вы создадите резервную копию текущей конфигурации и восстановите ее на новом компьютере, регистрационные данные должны быть перенесены вместе с остальными настройками. Дополнительные сведения см. в разделе Резервное копирование и восстановление настроек.

Аутентификация

При выходе пользователя с помощью конечной точки users все маркеры аутентификации, привязанные к его аккаунту, становятся недействительными. Кроме того, чтобы сделать маркеры недействительными, можно удалить пользователя, однако это крайняя мера. Обратите внимание: при выходе пользователя с помощью конечной точки users возвращается новый маркер аутентификации, но маркеры, которые уже используются, не становятся недействительными. Если у пользователя есть доступ к этим маркерам, он сможет пользоваться ими до тех пор, пока их срок действия не истечет или вы не сделаете их недействительными одним из указанных выше способов.

Отправка сообщений

Примечание. Не отправляйте сообщение повторно одному и тому же получателю через WhatsApp Business API.

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

Сообщения, которые могут быть доставлены с помощью WhatsApp, имеют очень высокий коэффициент доставки. Однако проблемы доставки могут возникать по различным причинам. Точно узнать статус сообщения можно по обратным вызовам. В случае с SMS, например, ситуация иная: у вас нет возможности узнать окончательное состояние доставки, а при повторной отправке результат может быть иным.

Сообщения могут не доставляться, потому что телефон пользователя неисправен, его аккумулятор разрядился или телефон потерялся и пользователь временно отключил SIM-карту. Возможно, клиенту не удается подключиться к сети. Возможно также, что не доставляются обратные вызовы (Webhooks). Отслеживать эти ситуации можно с помощью узла health. Чтобы знать, попадают ли сообщения на серверы WhatsApp, можно включить прием обратных вызовов на этих серверах.

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

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

Если проблемы с доставкой наблюдаются в течение длительного времени, обратитесь в прямую поддержку.

При отправке сообщения вы получаете его ID. Это означает, что запрос на отправку сообщения сохранен в нашей базе данных. Клиент API WhatsApp Business будет отправлять это сообщение до тех пор, пока сервер WhatsApp не примет его. Попытки отправки не ограничены по времени. После принятия сообщения сервер WhatsApp попытается доставить его конечному пользователю. Если устройство пользователя отключено, сообщение будет храниться на сервере WhatsApp в течение 30 дней, после чего будет удалено.

В данный момент количество и имена пользователей, которые заблокировали вашу компанию, узнать нельзя. Вы можете проверить обратные вызовы статуса. Если от пользователя нет ответного статуса delivered, он заблокировал вас или у него отсутствует подключение к Интернету. Дополнительную информацию см. в документации по Webhook.

Даже если пользователь заблокировал вашу компанию, API Contacts будет возвращать его номер телефона в качестве действительного пользователя WhatsApp. Однако отправленные ему сообщения не будут доставляться. Если сообщение платное, средства списываться не будут.

Так и должно быть, если вы отправляете сообщение получателю, которого нет в вашей адресной книге и которому вы ещё не отправляли сообщений. Если сообщение отправляет компания, при первом взаимодействии с пользователем необходимо использовать шаблон сообщения, чтобы установить доверие. После этого клиент API WhatsApp Business будет действовать согласно настройкам автоматического скачивания в приложении.

Так и должно быть, если вы отправляете сообщение получателю, которого нет в вашей адресной книге и которому вы ещё не отправляли сообщений. Если сообщение отправляет компания, при первом взаимодействии с пользователем необходимо использовать шаблон сообщения, чтобы установить доверие. После этого клиент API WhatsApp Business сможет представить ссылку как интерактивную.

Нет. Сообщения могут доставляться в другом порядке. Если для вас важен порядок доставки, дождитесь получения обратного вызова о доставке одного сообщения и только после этого отправляйте следующее.

При использовании узла messages нужно задать для заголовка Content-Type значение application/json, чтобы клиент API WhatsApp Business мог правильно проанализировать текст сообщения. Кроме того, заголовок Authorization должен содержать действительный маркер доступа. Информацию о получении маркера и его сроке действия см. в разделе Вход и аутентификация.

Да. Перед отправкой сообщения необходимо отправить вызов API на узел contacts. Полученная от contacts информация кэшируется в контейнере. Ее отсутствие может вызвать ошибку Unkown Contact. Дополнительную информацию см. в документации по проверке контактов.

If there is a delay in a subset of numbers, then it is likely not an issue affecting the customers integration but rather an issue on the recipients end, these delays in delivery can happen for a number of reasons. See Send Message Performance, Delays for more information.

No this is not possible. Numbers that are registered under WABAs (WhatsApp Business Accounts) can only message regular WhatsApp accounts.

Медиафайлы

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

Чтобы определить точку подключения тома медиафайлов, можно воспользоваться командой docker.

Запрос

docker volume inspect whatsappMedia

Ответ

[
    {
        "Driver": "local",
        "Labels": {},
        "Mountpoint": "/var/lib/docker/volumes/whatsappMedia/_data",
        "Name": "whatsappMedia",
        "Options": {},
        "Scope": "local"
    }
]

Затем запустите команду ls с полученным путем файла Mountpoint, чтобы увидеть все входящие медиафайлы:

ls /var/lib/docker/volumes/whatsappMedia/_data/

В конфигурации AWS том медиафайлов подключается по пути /mnt/wa/media на хосте.

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

Вы сами принимаете решение об удалении медиафайлов.

После загрузки медиафайла вы получаете его ID, который затем можно использовать для отправки сообщения с загруженным мультимедийным содержимым получателю. При отправке сообщения с медиафайлом WhatsApp Business API зашифровывает и загружает этот файл на серверы WhatsApp, где он хранится в течение 14 дней. После этого вы можете удалить медиафайл по его ID либо сохранить для использования в будущем. Мы рекомендуем хранить медиафайлы в течение 30 дней, однако вы самостоятельно определяете политику хранения с учетом потребностей вашей организации.

К изображениям подписи можно добавлять в качестве описания. Текст подписи отображается для изображений полностью как на устройствах Android, так и на iPhone.

Для документов подпись заменяет собой имя файла. Она отображается на устройстве пользователя не как описание, а как имя файла. На iPhone текст отображается целиком, в то время как на устройствах Android имя файла обрезается (таковы особенности текущей реализации WhatsApp на обеих платформах).

Для этого нужно отправить через WhatsApp Business API не менее 4 изображений подряд. Если в момент получения изображений у пользователя включено свое представление чата, то представление альбома не будет доступно до следующего сеанса.

Альбом не создается, если выполняется хотя бы одно из следующих условий:

  1. Изображения снабжены подписями.
  2. Разделитель не удается прочитать, и пользователь видит только некоторые изображения.
  3. Дата доставки в заголовке одного из изображений отличается от дат других.

Нет, в настоящее время для совместного доступа Coreapp и Webapp к тому медиафайлов необходимо использовать AWS EFS.

Нет. На данный момент мы не поддерживаем изменение местоположения медиафайлов по умолчанию (/usr/local/wamedia/). Для правильной работы все медиафайлы должны находиться в этой папке.

Шаблоны сообщений

На данный момент кэширование производится на 7 дней. Если кэш не обновлялся более 7 дней, самый новый языковой пакет будет загружен с сервера, независимо от того, имеется нужный элемент в пакете или нет.

Примечание. Начиная с версии v2.27.8, языковая политика fallback упразднена. Теперь по умолчанию используется политика deterministic.

Если вы создаете перевод на новый язык, на него нужно перевести все используемые элементы. В противном случае, если телефону получателя не удастся найти элемент на нужном языке, могут происходить ошибки типа Structure Unavailable (Структура недоступна). Они случаются при отправке сообщений с шаблонами в режиме резервного языка.

Если перевод шаблонов пока невозможен, выберите режим определенного языка, чтобы избежать этих ошибок.

Webhooks

Клиент API WhatsApp Business отправляет вам обратные вызовы Webhook через контейнер Coreapp. Поэтому конечную точку Webhook необходимо настроить так, чтобы она могла принимать входящие запросы от Coreapp.

Если Webhook не отправляет обратный отзыв, он переносится в очередь повторной отправки. Все обратные вызовы, отправленные после сбоя, будут получены только после успешной отправки неудавшегося вызова.

Если событие Webhook не было доставлено по какой-либо причине (например, клиент находится офлайн) или запрос к Webhook вернул код статуса HTTP, отличный от 200, мы попытаемся доставить событие ещё раз. Попытки будут повторяться через все большие промежутки времени, пока не истечет время ожидания (обычно 24 часа, но может быть иным) или пока событие не будет доставлено.

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

Проверьте параметр pass_through. Если параметр pass_through включен в клиенте WhatsApp Business API версии v2.29.1 или более поздней, вы не будете получать обратные вызовы для статуса "прочитано".

Чтобы получать эти вызовы, отключите параметр pass_through. Примечание. При включенном параметре pass_through база данных может быстро заполняться. Подробнее об управлении базой данных см. в документации.

Ошибки

Она вызвана ошибкой в старой версии клиента для iOS. По мере обновления клиента пользователями эти ошибки будут происходить все реже.

Чтобы выяснить причину, проверьте обратные вызовы.

Если имеется сообщение об ошибке "Conflict: Detected multiple instances that share the same number" (Конфликт: обнаружено несколько экземпляров с одинаковым номером), проверьте контейнеры. Скорее всего, несколько контейнеров Docker пытаются подключиться к серверам WhatsApp с использованием одного аккаунта WhatsApp. Одновременно должен работать только один контейнер. Завершите работу старых контейнеров, и ошибка будет устранена.

Если вы хотите протестировать более сложное решение с повышенной доступностью, см. этот раздел.

Это известная проблема. Иногда при обновлении клиента API WhatsApp Business через скрипты CloudFormation производится обновление стека базы данных RDS. Имя хоста нового стека RDS отличается от имени исходного, из-за чего контейнеры Docker не могут подключиться к базе данных. Чтобы решить эту проблему, войдите через SSH в экземпляр EC2, созданный CloudFormation. Обновите имя хоста в файле whatsapp.conf и перезапустите контейнеры Docker.

Эта ошибка происходит, когда база данных настроена неправильно.

  • Необходимо использовать либо MySQL версии 5.7 или более поздней, либо PostgreSQL версий 9.5.x, 9.6.x или 10.x.
  • Пароль базы данных не должен содержать символы ?{}&~!()^.
  • Если вы используете AWS, имя стека должно быть коротким. Дополнительную информацию см. в документации по установке.

Она происходит, если мост Docker поврежден. Чтобы устранить ее, лучше всего перезапустить службу Docker. Можно также попробовать выполнить команду docker restart в контейнерах.

Скорее всего, это означает, что контейнер Coreapp не запущен. Чтобы проверить это, выполните команду docker ps. Если контейнер не работает, просмотрите журналы Docker. Возможно, Coreapp не удается подключиться к базе данных. Убедитесь в том, что она настроена правильно.

Причин может быть множество. Например, Coreapp может быть недоступен или база данных может быть настроена неправильно. Если дело не в этом, просмотрите журналы Coreapp (или основного узла Coreapp в режиме распределения нагрузки). Если имеются ошибки подключения к базе данных, скорее всего, не хватает подключений. См. документацию по MySQL или документацию по PostgreSQL.

Мы рекомендуем увеличить количество подключений к базе данных. Одной тысячи подключений должно быть достаточно, но решение следует принимать с учетом конкретной ситуации. Если ошибка не устраняется, подайте заявку в службу поддержки.

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

Ошибка Structure Unavailable происходит, когда телефон не может прочитать сообщение с шаблоном.

Шаблоны хранятся на сервере. Если сообщение с шаблоном отправляется через узел messages ,на телефон отправляется только информация о пространстве имен, языке, имени элемента и локализованных параметрах. Получив эти значения, телефон пытается сформировать из них сообщение.

Если при формировании сообщения возникают какие-либо ошибки, на URL обратного вызова отправляется сообщение об ошибке structure unavailable , содержащее ID получателя и сообщения. Причинами могут быть неправильное пространство имен, несоответствие локализованных параметров, неправильное имя элемента и т. д.

Чтобы узнать правильное количество параметров, перейдите в WhatsApp Manager в своем аккаунте Facebook Business Manager. Проверьте, правильно ли указано пространство имен и существует ли имя элемента.

Распространенная причина ошибок — отсутствие переводов для некоторых используемых шаблонов. Например, если вы обычно отправляете два шаблона и добавляете перевод на новый язык для одного из них, то нужно обязательно добавить перевод и для второго. Если вам нужно реализовать поддержку нескольких языков, предоставьте переводы всех шаблонов на каждый из них.

В большинстве случаев ошибки structure unavailable происходят из-за ошибок в вызове messages API, и их можно исправить, изменив отправляемые полезные данные.

Прежде чем отправлять сообщение, нужно проверить, существует ли контакт. Дополнительную информацию см. в разделе Контакты.

Эта ошибка происходит, если узел Coreapp ещё не запустился. Возможно, регистрация не выполнена, и вам потребуется заново пройти ее перед отправкой вызова к другой конечной точке. После установки API WhatsApp Business необходимо выполнить вход и пройти регистрацию. Без этого отправлять запросы к конечным точкам невозможно.

Все сборки клиента API WhatsApp Business имеют срок действия 6 месяцев с даты выпуска. Если возникает эта ошибка, выполните обновление до последней версии.

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

Если при настройке в AWS возникает ошибка, схожая с указанной ниже, сократите название стека (не более 8 символов).

Country Name (2 letter code) [AU]:State or Province Name (full name) [Some-State]:Locality Name (eg, city) []:Organization Name (eg, company) [Internet Widgits Pty Ltd]:Organizational Unit Name (eg, section) []:Common Name (e.g. server FQDN or YOUR name) []:string is too long, it needs to be less than 64 bytes long Common Name (e.g. server FQDN or YOUR name) []:Email Address []:error, no objects specified in config file problems making Certificate Request Created device key for internal-wa-inc-name-LB-123456789.ap-southeast-1.elb.amazonaws.com (Страна (двухбуквенный код) [AU]:штат или провинция (полное название) [штат]:населенный пункт (например, город) []:название организации (например, компании) [Internet Widgits Pty Ltd]:название подразделения (например, отдела) []:общее имя (например, полностью квалифицируемое доменное имя сервера или ваше имя) []:слишком длинная строка, размер общего имени не должен превышать 64 байт общее имя (например, полностью квалифицируемое доменное имя сервера или ваше имя) []:электронный адрес []:ошибка, в файле конфигурации не указан объект проблемы с созданием ключа устройства запроса сертификата для internal-wa-inc-name-LB-123456789.ap-southeast-1.elb.amazonaws.com)

Если бизнес-профиль заполнен только частично, возвращается пустой объект profile. Чтобы избежать этой ошибки, выполните обновление до версии v2.21.4.

Дополнительную информацию о заполнении бизнес-профиля см. в этом разделе.

Код ошибки 471 связан с ограничением количества обращений в зависимости от качества. Дополнительную информацию см. в документации.

Вот список ошибок и возможные причины их возникновения.

  • "Не найдены шаблоны сообщений для языка ваш_язык" или "Не найдены шаблоны сообщений для языка ваш_язык и региона ваш_регион". Эта ошибка означает, что указанный пакет языков не существует. Проверьте свой аккаунт Business Manager.
  • "Шаблон имя_вашего_шаблона для языка ваш_язык не найден" или "Шаблон имя_вашего_шаблона для языка ваш_язык и региона ваш_регион не найден". Эта ошибка означает, что вы пытаетесь использовать несуществующий шаблон (возможно, он не создан или ещё не одобрен). Эта ошибка также возникает при отправке сообщения, шаблон которого удален.
  • "Количество локализуемых параметров localizable_params num1 не совпадает с ожидаемым количеством num2". Эта ошибка означает, что вы пытаетесь отправить шаблон сообщения с неправильным количеством параметров. Проверьте правильность вызова API.
  • "имя_вашего_шаблона содержит особое форматирование, и для его использования необходим API шаблонов сообщений". Эта ошибка означает, что вы пытаетесь отправить шаблон сообщения с медиафайлами как обычный шаблон. Убедитесь, что задан тип сообщения template. Дополнительную информацию см. в документации по шаблонам сообщений с медиафайлами.
  • После одобрения или удаления шаблонов в Business Manager клиент WhatsApp Business API получает обновленные сведения в течение 20 минут. Если вы пытаетесь отправить сообщение с недавно одобренным шаблоном и получаете ошибку, в сообщении о которой сказано, что шаблон не существует, подождите до 20 минут и повторите попытку.

Иногда после разъединения с сервером клиент API WhatsApp Business версии 2.21.6 простаивает до 4 минут, прежде чем восстановить подключение. Чтобы сократить время простоя, установите версию 2.23.4.

До версии v2.29.x существовала ошибка, из-за которой очередь исходящих сообщений могла увеличиваться со временем. Чтобы избежать этой ошибки, выполните обновление до версии v2.29.3.

Coreapp проверяет каталоги /usr/local/waent/data и /usr/local/waent/log в контейнере Coreapp. В них должно быть не менее 10 МБ свободного пространства. В противном случае возникает эта ошибка.

Проверьте каталоги данных и журналов вручную и убедитесь, что в них достаточно места.

Другое

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

Необходимо зарегистрировать второй номер телефона и создать второй стек CloudFormation или экземпляр Docker для тестирования. Если два активных клиента WhatsApp Business API используют один и тот же номер телефона, сервер откажет вам в доступе из-за конфликта ключей шифрования. Рекомендуется иметь вторую среду, которую можно использовать для тестирования нерабочего экземпляра перед выполнением миграции на рабочем клиенте.

Проверка работоспособности не требует дополнительных ресурсов. Ее можно проводить с любой частотой.

Подробную информацию о данных статистики приложения и базы данных, которые можно запрашивать, см. в документации по статистике. Статистика приложения хранится в памяти и требует небольшого количества ресурсов для считывания. Статистика базы данных требует большего количества ресурсов. Ее следует запрашивать только при необходимости.

Автоматические уведомления о том, что клиент изменил номер телефона, не предусмотрены. При запросе узла contacts для номера будет указан новый статус: invalid.

Пользователи с неактивным номером телефона могут по-прежнему пользоваться WhatsApp до тех пор, пока номер телефона не будет переназначен другому пользователю или использован при регистрации.

WhatsApp проверяет, действительно ли предоставленный номер принадлежит телефону. Если у пользователя есть аккаунт WhatsApp, это означает, что он прошел проверку и никто другой не регистрировался в WhatsApp с использованием этого номера. Однако это не гарантирует, что SIM-карта находится в телефоне.

С другой стороны, при потере или краже телефона пользователь может деактивировать свой аккаунт WhatsApp. Подробнее о деактивации аккаунтов при потере или краже телефона см. в этом разделе.

Нет. С помощью API WhatsApp Business нельзя определить, используют ли несколько устройств один и тот же номер.

Полезные данные сообщения — это текст или медиафайл.

На данный момент способы отправлять вредоносные данные в тексте не выявлены.

Для медиафайлов:

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

Обратитесь в службу поддержки и предоставьте всю имеющуюся у вас информацию. Мы разберемся в ситуации и заблокируем подложные номера.

Начиная с версии 2.18.26 конечная точка App Stats позволяет экспортировать внутренние метрики в текстовом формате Prometheus. Дополнительную информацию см. в документации по мониторингу экземпляров.

Клиенту локального API WhatsApp Business требуется база данных для хранения ключей, с помощью которых расшифровываются сообщения переписки между компанией и клиентами. Все сообщения в WhatsApp зашифрованы ключами отправителя и получателя. Ключи пользователя хранятся на его мобильном устройстве, а ключи компании — в ее базе данных. Подробнее о безопасности в WhatsApp…

Если вы используете облачный API WhatsApp Business, то база данных компании размещается на серверах Meta. В этом случае мы можете пользоваться API, не тратя средства на размещение своих серверов. Подробнее…