Варианты настроек для среды разработки. Один экземпляр.

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

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

  1. Создание каталога biz для скриптов настройки
  2. Получение файлов конфигурации для клиента API WhatsApp Business
  3. Настройка переменной среды WA_API_VERSION
  4. Запуск клиента API WhatsApp Business
  5. Проверка запуска контейнеров
  6. Проведение проверки работоспособности
  7. Регистрация клиента API WhatsApp Business

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

Перед началом работы

Перед началом работы вам необходимо будет выполнить следующее:

Install Docker Desktop

To install Docker Desktop on your developer machine:

  1. Navigate to the Docker website.
  2. If you do not have an existing Docker account, create one by clicking on Sign Up.
  3. After you have created your account, you will be directed to the Docker download page.
  4. Download Docker Desktop based on your OS (This should be automatically detected and presented as the default option).

The remaining steps are based on macOS and should be very similar for Linux or Windows 10.

To install Docker using macOS:

  1. Install the package (docker.dmg for macOS).
  2. After extraction, Finder will pop-up and you will be presented with a dialog that instructs you to drag the Docker icon to Applications. Drag Docker icon to the Application folder in Finder.
  3. In Applications launch Docker and then click the Open button.
  4. You may be prompted to enter your password Docker needs priviledged/administrator access.
  5. Docker will present you with a tutorial, you can click Start to launch a tutorial or you can click Skip Tutorial to start using Docker.

Verify Docker Compose is installed

Docker Compose is a plugin that is bundled with Docker Desktop and should have installed automatically. For more information about using or Docker Compose, see Overview of Docker Compose. If for some reason Docker Compose was not installed, you can install it by following the instructions located at Install Docker Compose.

Другие предварительные требования

В среде разработке должен быть настроен локальный тестовый аккаунт. Это необходимо для ускорения разработки и тестирования новых версий.

Начальная настройка клиента WhatsApp Business

Perform the following steps to install a single instance of the WhatsApp Business API client on a developer system.

Step 1: Create ~/biz

Create a ~/biz directory for the WhatsApp Business API client.

Step 2: Get Config Files

Clone the WhatsApp Business API Client docker-compose.yml and db.env configuration files from the WhatsApp GitHub repository for either a MySQL database setup or a Postgres database setup to your ~/biz directory.

Step 3: Set the Version

The WA_API_VERSION environmental variable should be set to the current version.

~/biz $ export WA_API_VERSION=CURRENT-WA-API-VERSION

To find the current version of the API that you installed, open docker-compose.yml and search for "WA_API_VERSION=". The version number should be noted by a developer in the wacore label:

    wacore:
    image: docker.whatsapp.biz/coreapp:v${WA_API_VERSION:?Run docker-compose with env var WA_API_VERSION (ex. WA_API_VERSION=2.31.4 docker-compose <command> <options>)}

Step 4: Start the Client

To start the WhatsApp Business API client, run:

~/biz $ docker-compose up -d

The resulting output should look like the following:

Creating volume "biz_whatsappMedia" with local driver
Creating volume "biz_mysqlData" with local driver
Creating biz_db_1 ... done
Creating biz_wacore_1 ... done
Creating biz_waweb_1  ... done

Verify Containers Are Running

You can check that all containers have an UP state by running:

~/biz $ docker-compose ps

By default, the Webapp container will be running on port 9090 (https://localhost:9090) and the database container will be running on port 33060 (https://localhost:33060).

The resulting output should look like the following:

~/biz $ docker-compose ps
     Name                    Command               State                   Ports
-------------------------------------------------------------------------------------------------
biz_db_1       docker-entrypoint.sh mysqld      Up      0.0.0.0:33060->3306/tcp, 33060/tcp
biz_wacore_1   /opt/whatsapp/bin/wait_on_ ...   Up      6250/tcp, 6251/tcp, 6252/tcp, 6253/tcp
biz_waweb_1    /opt/whatsapp/bin/wait_on_ ...   Up      0.0.0.0:9090->443/tcp

Status Check

Send a GET request to /v1/health endpoint to check the status of your client.

On success, you will see the following:

{
    "health": {
        "gateway_status": "unregistered"
    }
}

Register Your Client

To register your WhatsApp Business API client, send a POST request to the /v1/account endpoint.

Upon registration gateway_status will be set connected. Your Coreapp container is able to connect to the WhatsApp server for checking contacts and sending messages.

Next Steps

Обновление клиента API WhatsApp Business

Во время обновления будьте готовы к простою.

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

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

Шаг 1. Указание новой версии в переменной среды WA_API_VERSION

В переменной среды WA_API_VERSION нужно указать новую версию, выполнив следующую команду:

export WA_API_VERSION=new-whatsapp-version

Если вы выполняете обновление до версии 2.33.4, примером команды будет следующий:

~/biz $ export WA_API_VERSION=2.33.4

Шаг 2. Перезапуск контейнеров Docker

Перезапустите контейнеры Docker, выполнив следующую команду:

docker-compose up -d

Ответ в конце должен выглядеть так:

biz_db_1 is up-to-date
Recreating biz_wacore_1 ... done
Recreating biz_waweb_1  ... done

Для пользователей базы данных MySQL, выполняющих обновление до версии v2.23.x или выше

Вы можете воспользоваться сервисом обновления базы данных без остановки приложения.

Шаг 1. Скачивание файла конфигурации

В файле dbupgrade-compose.yml есть поля, в которых указана версия контейнера.

Пример

services:
  dbupgrade:
    image: docker.whatsapp.biz/coreapp:v${WA_API_VERSION:-2.21.3}

Шаг 2. Запуск контейнера

Чтобы обновить установленную базу данных, запустите контейнер dbupgrade-service, указав в значении переменной среды WA_API_VERSION последнюю версию базы:

WA_API_VERSION=new-whatsapp-version docker-compose -f dbupgrade-compose.yml up -d

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

Шаг 3. Дождитесь завершения обновления

Если оно будет успешным, контейнер завершит работу с выходным кодом 0. Отслеживать статус можно с помощью следующей команды Docker:

docker wait your-database-upgrade-container-name

Она показывает выходной код контейнера dbupgrade-service.

Шаг 4. Перезапуск контейнеров Coreapp и Webapp

Перезапустите контейнеры Docker Coreapp и Webapp, указав последнюю версию в переменной среды WA_API_VERSION:

WA_API_VERSION=new-whatsapp-version docker-compose up -d

Удаление клиента API WhatsApp Business

Перед удалением настоятельно рекомендуем создать резервную копию текущих настроек приложения. Следуйте инструкциям из статьи Резервное копирование и восстановление настроек.

Если вы хотите сбросить среду разработки, удалив все контейнеры, выполните следующую команду из каталога, содержащего файл docker-compose.yml:

WA_API_VERSION={VERSION_NUMBER} docker-compose down

Ответ в конце должен выглядеть так:

Stopping biz_waweb_1  ... done
Stopping biz_wacore_1 ... done
Stopping biz_db_1     ... done
Removing biz_waweb_1  ... done
Removing biz_wacore_1 ... done
Removing biz_db_1     ... done

Чтобы помимо контейнеров удалить и все тома, определенные в файле docker-compose.yml, выполните команду down с параметром -v:

WA_API_VERSION={VERSION_NUMBER} docker-compose down -v

Устранение неполадок

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

Если WADebug невозможно использовать или при запуске он возвращает ошибку, выполните следующую команду, чтобы собрать журналы событий всех контейнеров:

docker-compose logs > debug_output.txt

Чтобы собрать журналы определенной службы, укажите ее название (waweb или wacore) в команде docker-compose logs:

docker-compose logs waweb > debug_output.txt

Журналы событий можно найти в файле debug_output.txt, который находится в текущем каталоге.


В этом программном обеспечении используется исходный код из набора библиотек FFmpeg, предоставляемый по лицензии LGPLv2.1. Скачать его можно здесь.