Configurazione dello sviluppatore: Istanza singola

Questo documento mostra la modalità di configurazione di un'istanza singola del client dell'API di WhatsApp Business su una macchina per sviluppatore per scopi di test. Per una configurazione di produzione, segui le istruzioni pertinenti elencate in Configurazioni di produzione.

Per configurare inizialmente un'istanza singola, controlla la nostra lista di requisiti e segui questi passaggi:

  1. Creazione di una directory biz per gli script di configurazione
  2. Acquisizione dei file di configurazione del client dell'API di WhatsApp Business
  3. Impostazione della variabile ambientale WA_API_VERSION
  4. Avvio del client dell'API di WhatsApp Business
  5. Verifica dell'esecuzione dei contenitori
  6. Esecuzione di un controllo integrità
  7. Registrazione del client dell'API di WhatsApp Business

Dopo aver configurato completamente l'istanza, puoi scegliere di aggiornarla. Per disinstallare il client, segui questi passaggi.

Prima di iniziare

Prima di iniziare avrai bisogno di completare le seguenti azioni:

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.

Altri prerequisiti

Assicurati di configurare un account test in locale in un ambiente di sviluppo. Servirà per uno sviluppo rapido e per testare nuove uscite.

Configurazione iniziale del client dell'API di 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

Aggiornamento del client dell'API di WhatsApp Business

Si verificherà un tempo di inattività durante il processo di aggiornamento.

Si consiglia vivamente di eseguire il backup delle impostazioni correnti dell'app prima dell'aggiornamento per assicurarsi che il processo sia rapido ed efficace. Segui la documentazione su backup e ripristino.

È sempre consigliabile eseguire gli aggiornamenti negli orari di minor attività.

Passaggio 1: modifica della variabile ambientale WA_API_VERSION con la nuova versione

La variabile ambientale WA_API_VERSION deve essere aggiornata al nuovo numero di versione mediante:

export WA_API_VERSION=new-whatsapp-version

Se stai eseguendo l'aggiornamento alla versione 2.33.4, il comando di esempio sarà:

~/biz $ export WA_API_VERSION=2.33.4

Passaggio 2: riavvio dei contenitori Docker

Riavvia i contenitori Docker eseguendo il seguente comando:

docker-compose up -d

L'output risultante dovrebbe essere simile al seguente:

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

Per gli utenti del database MySQL che eseguono l'aggiornamento alla versione v2.23.x e successive

Ora puoi avvalerti di un servizio di aggiornamento database per aggiornare il tuo database mentre l'app è ancora in esecuzione, evitando così tempi di inattività.

Passaggio 1: download del file di configurazione

Il file dbupgrade-compose.yml contiene dei campi indicanti la versione dei contenitori.

Esempio:

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

Passaggio 2: avvio del contenitore

Per aggiornare un'installazione, avvia il contenitore dbupgrade-service con la variabile ambientale WA_API_VERSION impostata sull'ultima versione:

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

Nota: se utilizzi un'orchestrazione che riavvia il contenitore dopo l'uscita verificatasi indipendentemente dal codice di uscita, avvia il servizio con la variabile ambientale EXIT_ON_SUCCESS impostata su FALSE per impedire l'uscita dal contenitore quando il codice di uscita è 0.

Passaggio 3: attesa della conclusione dell'aggiornamento

Se l'aggiornamento del database è avvenuto correttamente, il contenitore uscirà con codice 0. Puoi usare il comando Docker seguente per monitorare lo stato:

docker wait your-database-upgrade-container-name

Questa operazione genererà il codice di uscita del contenitore dbupgrade-service.

Passaggio 4: riavvio dei contenitori Coreapp e Webapp

Riavvia i contenitori Docker Coreapp e Webapp con la variabile ambientale WA_API_VERSION impostata sull'ultima versione:

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

Disinstallazione del client dell'API di WhatsApp Business

Si consiglia vivamente di eseguire il backup delle impostazioni correnti dell'app prima della disinstallazione. Segui la documentazione su backup e ripristino.

Se è necessario reimpostare l'ambiente di sviluppo rimuovendo tutti i contenitori, esegui il seguente comando dalla directory che contiene il file docker-compose.yml:

WA_API_VERSION={VERSION_NUMBER} docker-compose down

L'output risultante dovrebbe essere simile al seguente:

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

Per eliminare tutti i volumi definiti nel file docker-compose.yml in aggiunta ai contenitori, esegui il comando down con il parametro -v:

WA_API_VERSION={VERSION_NUMBER} docker-compose down -v

Risoluzione dei problemi

Per una risoluzione dei problemi più efficace, è consigliabile usare WADebug. WADebug è uno strumento da riga di comando che consente di trovare potenziali problemi con la configurazione dell'API di WhatsApp Business e di rendere le richieste all'assistenza di WhatsApp più efficaci.

In casi in cui non è possibile utilizzare WADebug o l'esecuzione dello strumento restituisce degli errori, esegui il comando seguente per raccogliere i registri da tutti i contenitori:

docker-compose logs > debug_output.txt

Per raccogliere i registri di un determinato servizio, aggiungi il nome del servizio (waweb o wacore) al comando docker-compose logs:

docker-compose logs waweb > debug_output.txt

I registri sono disponibili nel file debug_output.txt nella directory corrente.


Questo software utilizza il codice di FFmpeg concesso in licenza ai sensi della LGPLv2.1 e il relativo codice sorgente può essere scaricato qui.