Configuração do desenvolvedor: instância única

Este documento mostra como configurar uma instância única do cliente da API do WhatsApp Business em uma máquina de desenvolvedor para fins de teste. Caso você queira uma configuração de produção, siga as instruções listadas em Configurações de produção.

Para configurar inicialmente uma instância única, confira nossa lista de requisitos e execute estas etapas:

  1. Criar um diretório biz para os scripts de configuração
  2. Obter os arquivos de configuração do cliente da API do WhatsApp Business
  3. Definir a variável de ambiente WA_API_VERSION
  4. Iniciar o cliente da API do WhatsApp Business
  5. Verificar se os contêineres estão em execução
  6. Executar uma verificação de integridade
  7. Registrar o cliente da API do WhatsApp Business

Depois de concluir a configuração da sua instância, você pode atualizá-la. Para desinstalar o cliente, siga estas etapas.

Antes de começar

Antes de começar, você precisará realizar o seguinte:

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.

Outros pré-requisitos

Configure uma conta de teste local em um ambiente de desenvolvimento. Ela deve ser usada para agilizar o desenvolvimento e testar lançamentos.

Configuração inicial do cliente da API do 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

Atualização do cliente da WhatsApp Business API

Haverá um período de inatividade durante o processo de atualização.

Recomendamos que você faça backup das configurações do aplicativo antes de atualizar para garantir que você possa voltar a usá-lo rapidamente. Siga as instruções da documentação sobre backup e restauração.

Recomendamos que as atualizações sejam realizadas nos momentos mais tranquilos do dia.

Etapa 1: alterar a variável de ambiente WA_API_VERSION para a nova versão

A variável de ambiente WA_API_VERSION precisa ser atualizada para a versão mais recente por meio de:

export WA_API_VERSION=new-whatsapp-version

Se você estiver atualizando para a versão 2.33.4, o comando de exemplo será:

~/biz $ export WA_API_VERSION=2.33.4

Etapa 2: reiniciar os contêineres do Docker

Reinicie os contêineres do Docker executando:

docker-compose up -d

A saída terá aparência semelhante a esta:

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

Para usuários do banco de dados MySQL que estão atualizando para v2.23.x e versões posteriores

Agora você pode usar um serviço de atualização do banco de dados para atualizar o banco de dados enquanto o app continua em execução, evitando o tempo de inatividade.

Etapa 1: baixar o arquivo de configuração

O arquivo dbupgrade-compose.yml tem campos que indicam a versão do contêiner.

Exemplo:

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

Etapa 2: inicializar o contêiner

Para atualizar uma instalação, inicialize o contêiner dbupgrade-service com a variável de ambiente WA_API_VERSION definida como a versão mais recente:

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

Observação: se você estiver usando uma orquestração que reinicia o contêiner na saída independentemente do código de saída, inicialize o serviço com a variável de ambiente EXIT_ON_SUCCESS definida como FALSE. Isso evitará a saída do contêiner quando o código de saída for 0.

Etapa 3: permitir que a atualização seja concluída

Se a atualização do banco de dados for bem-sucedida, o contêiner sairá com o código 0. É possível usar o seguinte comando do Docker para acompanhar o status:

docker wait your-database-upgrade-container-name

Com isso, o código de saída do contêiner dbupgrade-service será criado.

Etapa 4: reiniciar os contêineres do Coreapp e do Webapp

Reinicie os contêineres do Docker do Coreapp e do Webapp com a variável de ambiente WA_API_VERSION definida como a versão mais recente:

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

Desinstalar o cliente da WhatsApp Business API

Recomendamos que você faça backup das configurações atuais do seu aplicativo antes da desinstalação. Siga as instruções da documentação sobre backup e restauração.

Se você precisar redefinir seu ambiente de desenvolvimento removendo todos os contêineres, execute o seguinte comando no diretório que contêm o arquivo docker-compose.yml:

WA_API_VERSION={VERSION_NUMBER} docker-compose down

A saída terá aparência semelhante a esta:

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

Para eliminar todos os volumes definidos no arquivo docker-compose.yml além dos contêineres, execute o comando down com o parâmetro -v:

WA_API_VERSION={VERSION_NUMBER} docker-compose down -v

Solução de problemas

Recomendamos o uso do WADebug para solucionar os problemas de modo mais eficaz. WADEbug é uma ferramenta de linha de comando para ajudar a encontrar possíveis problemas com a configuração da API do WhatsApp Business e tornar a solicitação de suporte ao WhatsApp mais eficaz.

Se o WADebug não puder ser usado ou a execução da ferramenta retornar erros, execute o seguinte comando para coletar registros de todos os contêineres:

docker-compose logs > debug_output.txt

Para coletar os registros de um serviço específico, anexe o nome do serviço (waweb ou wacore) ao comando docker-compose logs:

docker-compose logs waweb > debug_output.txt

Os registros podem ser encontrados no arquivo debug_output.txt no diretório atual.


Esse software usa código de FFmpeg licenciado como LGPLv2.1. Baixe a fonte aqui.