Configuration de développeur·se : instance unique

Ce document explique comment configurer une instance unique du client de l’API WhatsApp Business sur une machine de développeur·se à des fins de test. Pour une configuration en production, suivez les instructions correspondantes de la section Configurations en production.

Pour configurer une instance unique, consultez notre liste de conditions requises, puis suivez ces étapes :

  1. Créer un répertoire biz pour les scripts de configuration
  2. Obtenir les fichiers de configuration du client de l’API WhatsApp Business
  3. Définir la variable d’environnement WA_API_VERSION
  4. Démarrer le client de l’API WhatsApp Business
  5. Vérifier que les conteneurs s’exécutent
  6. Effectuer un contrôle de l’état
  7. Inscrire le client de l’API WhatsApp Business

Une fois que votre instance est entièrement configurée, vous pouvez choisir de mettre à jour le client. Pour désinstaller le client, suivez ces étapes.

Avant de commencer

Avant de commencer, vérifiez que vous possédez les éléments suivants :

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.

Autres conditions requises

Configurez un compte de test localement dans un environnement de développement. Il assure un développement rapide et permettra de tester les nouvelles versions.

Configuration initiale du client de l’API 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

Mise à jour du client de l’API WhatsApp Business

Il y aura un temps d’arrêt pendant la mise à jour.

Il est fortement recommandé de sauvegarder vos paramètres d’application avant de lancer une mise à jour afin de vous assurer de pouvoir reprendre votre activité rapidement. Veuillez consulter la documentation sur la sauvegarde et la restauration.

Il est toujours recommandé d’effectuer les mises à jour pendant les heures creuses.

Étape 1 : Modifier la variable d’environnement WA_API_VERSION sur la nouvelle version

La variable d’environnement WA_API_VERSION doit toujours être mise à jour de manière à indiquer le numéro de la nouvelle version avec la commande :

export WA_API_VERSION=new-whatsapp-version

Si vous effectuez la mise à jour vers la version 2.33.4, la commande se présentera comme suit :

~/biz $ export WA_API_VERSION=2.33.4

Étape 2 : Redémarrer les conteneurs Docker

Redémarrez les conteneurs Docker en exécutant :

docker-compose up -d

Le résultat de cette commande doit se présenter comme suit :

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

Pour les utilisateur·ices de bases de données MySQL passant à v2.23.x ou une version ultérieure

Vous pouvez maintenant utiliser un service de mise à jour qui vous permettra de mettre à jour votre base de données pendant l’exécution de votre application, pour éviter les temps d’arrêt.

Étape 1 : Télécharger le fichier de configuration

Le fichier dbupgrade-compose.yml contient des champs indiquant la version du conteneur.

Exemple :

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

Étape 2 : Démarrer le conteneur

Pour mettre à jour une installation, démarrez le conteneur dbupgrade-service avec la variable d’environnement WA_API_VERSION définie sur la dernière version :

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

Remarque : si vous utilisez une orchestration qui redémarre le conteneur à la sortie indépendamment du code de sortie, démarrez le service avec la variable d’environnement EXIT_ON_SUCCESS définie sur FALSE pour éviter de quitter le conteneur lorsque le code de sortie est 0.

Étape 3 : Laisser la mise à jour se terminer

Si la mise à jour de la base de données est réussie, le code de sortie du conteneur sera 0. Vous pouvez utiliser la commande Docker suivante pour suivre l’état :

docker wait your-database-upgrade-container-name

Le code de sortie du conteneur dbupgrade-service sera alors indiqué dans la sortie.

Étape 4 : Redémarrer les conteneurs Coreapp et Webapp

Redémarrez les conteneurs Docker Coreapp et Webapp avec la variable d’environnement WA_API_VERSION définie sur la dernière version :

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

Désinstallation du client de l’API WhatsApp Business

Il est fortement recommandé de sauvegarder vos paramètres d’application avant de lancer une procédure de désinstallation. Veuillez consulter la documentation sur la sauvegarde et la restauration.

Pour réinitialiser votre environnement de développement en supprimant tous les conteneurs, exécutez la commande suivante depuis le répertoire contenant le fichier docker-compose.yml :

WA_API_VERSION={VERSION_NUMBER} docker-compose down

Le résultat de cette commande doit se présenter comme suit :

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

Afin de supprimer également tous les volumes définis dans le fichier docker-compose.yml, exécutez la commande down avec le paramètre -v :

WA_API_VERSION={VERSION_NUMBER} docker-compose down -v

Dépannage

Nous recommandons l’utilisation de WADebug pour un dépannage plus efficace. WADebug est un outil de ligne de commande qui vous aide à repérer les problèmes potentiels liés à la configuration de l’API WhatsApp Business et à simplifier les demandes d’aide auprès de l’assistance WhatsApp.

Si vous ne pouvez pas utiliser WADebug ou que son exécution renvoie des erreurs, exécutez la commande suivante pour recueillir les journaux de tous les conteneurs :

docker-compose logs > debug_output.txt

Pour recueillir les journaux d’un service spécifique, ajoutez le nom du service (waweb ou wacore) à la commande docker-compose logs :

docker-compose logs waweb > debug_output.txt

Vous trouverez les journaux dans le fichier debug_output.txt enregistré dans le répertoire actuel.


Ce logiciel utilise le code de FFmpeg sous licence du LGPLv2.1 et sa source peut être téléchargée ici.