Этот документ содержит информацию о настройке сети и отладке возможных проблем.
Для правильного подключения к серверам WhatsApp клиент WhatsApp Business API предъявляет определенные требования к сети. Если ваша компания не может выполнить перечисленные ниже условия, мы не сможем обеспечить вам интеграцию WhatsApp.
Мы понимаем, что в разных компаниях реализованы разные сетевые конфигурации и механизмы безопасности. Если этого документа недостаточно для настройки соответствующих параметров из-за специфических требований к сети или безопасности вашей компании, обратитесь в прямую поддержку.
Клиенту WhatsApp Business API для работы необходимо долгосрочное подключение TCP. Для его поддержки в активном состоянии периодически отправляются запросы. При этом вы должны проследить за тем, чтобы брандмауэр, маршрутизатор, система безопасности и другие средства на вашей стороне не прерывали долгосрочные подключения TCP.
Для исходящего трафика используются два порта:
5222
443
Они не прослушиваются и не используются для входящего трафика. Брандмауэр вашей компании может и далее обеспечивать фильтрацию входящего трафика.
По умолчанию клиент WhatsApp Business API использует порт 5222
. Если он недоступен, приложение использует резервный порт 443
. Порт 443
должен быть открыт для соединений HTTPS
как минимум на этапе регистрации и перезапуска приложения. Можно оставить порт 5222
закрытым и открыть порт 443
, но нельзя открыть порт 5222
, закрыв при этом порт 443
.
Рекомендуется открыть оба порта и разрешить весь исходящий трафик.
Клиент WhatsApp Business API использует протоколы двух типов:
chatd
HTTPS
Для обмена зашифрованными сообщениями и информацией с серверами WhatsApp используется собственный протокол чата WhatsApp, chatd
. Это частный протокол, поэтому мы просим добавить открытый порт в список разрешенных для всего исходящего трафика. Некоторые брандмауэры и прокси-серверы разрывают все подключения, кроме SSL, что может воспрепятствовать подключению приложения к серверам WhatsApp.
WhatsApp использует протокол HTTPS
во время регистрации. Он также необходим для перезапуска приложения. Мы не рекомендуем блокировать протокол HTTPS
после регистрации, поскольку неизвестно, в какой момент потребуется заново зарегистрировать или перезапустить клиент.
WhatsApp использует серверы с широким диапазоном IP-адресов. Можно попробовать добавить их все в список разрешенных. Однако лучше просто разрешить весь исходящий трафик и подключения по указанным выше портам.
Список IP-адресов и диапазонов серверов WhatsApp (в архиве ZIP)Этот список может часто изменяться. Чтобы не обновлять список разрешенных после каждого такого изменения, рекомендуется разрешить весь исходящий трафик с порта 5222
или 443
.
Серверы WhatsApp можно добавлять в список разрешенных по именам хостов, а не по IP-адресам.
Ниже перечислены имена хостов серверов WhatsApp, с которыми клиенту WhatsApp Business API необходимо соединение.
.*.cdn.whatsapp.net
g.whatsapp.net
graph.facebook.com
graph.whatsapp.com
media-.*.cdn.whatsapp.net
media..*.fna.whatsapp.net
mmg.whatsapp.net
pps.whatsapp.net
static.whatsapp.net
v.whatsapp.net
Чтобы скачать образы контейнеров Docker, необходимо предоставить доступ к нашему репозиторию JFrog, где они хранятся.
Для этого необходимо добавить в список разрешенных имена хостов JFrog, так как указать соответствующие IP-адреса нельзя.
Вот необходимые имена хостов JFrog:
docker.whatsapp.biz
dl.bintray.com
akamai.bintray.com
В зависимости от используемого брандмауэра и его настроек может понадобиться внести в разрешенный список все IP-адреса: список разрешенных имен хостов может не работать.
Например, если в список разрешенных включены только имена хостов, следующие алгоритмы действия брандмауэров не работают:
HTTP
/HTTPS
.Если ваш брандмауэр работает по одной из этих схем, добавьте в свой список разрешенных IP-адреса.
Настройте сетевые прокси-серверы, задав для следующих переменных среды параметры вашего прокси, а затем передайте эти переменные в приложение Coreapp:
http_proxy
https_proxy
Инструмент WADebug позволяет быстро проверить, имеет ли контейнер Coreapp доступ ко всем необходимым серверам WhatsApp. Установите WADebug и выполните следующую команду:
wadebug partial check_network