Ce document explique comment configurer une instance unique du client de l’API WhatsApp Business en production.
Si vous ne l’avez pas encore fait, nous vous recommandons de configurer une instance unique du client de l’API WhatsApp Business sur une machine de développement en suivant les instructions de la page Configuration de développement : instance unique pour tester votre configuration avant de suivre la méthode présentée dans ce document pour configurer ce client en production.
Pour la configuration initiale, consultez nos exigences et suivez ces étapes :
biz
pour les scripts de configurationWA_API_VERSION
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.
Si vous avez déjà exécuté une configuration de développement et que vous souhaitez utiliser le même numéro de téléphone en production, reportez-vous au guide de migration avant de passer à la suite de ce document.
En effet, ce dernier s’applique aux nouvelles installations utilisant un nouveau numéro de téléphone.
Vous aurez besoin des éléments suivants :
MySQL 5.7xx ou PostgreSQL 13.x/12.x/11.x est obligatoire.
Le mot de passe de votre base de données ne doit contenir aucun des caractères suivants : ?{}&~!()^=
Dans le cas contraire, la configuration risque d’échouer.
Il existe aussi un problème de compatibilité connu avec MySQL 8. Nous travaillons activement au développement d’un correctif ; veuillez par conséquent éviter d’utiliser la dernière version pour le moment.
To install Docker Desktop on your developer machine:
The remaining steps are based on macOS and should be very similar for Linux or Windows 10.
To install Docker using macOS:
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.
biz
pour les scripts de configurationExécutez le code suivant à l’emplacement de votre choix pour le client de l’API WhatsApp Business :
mkdir ~/biz; cd ~/biz;
Clonez les fichiers de configuration prod-docker-compose.yml
et db.env
situés dans le répertoire Installation du dépôt GitHub WhatsApp-Business-API-Setup-Scripts dans le répertoire ~/biz
que vous avez créé à l’étape 1.
WA_API_VERSION
La variable d’environnement WA_API_VERSION
doit être définie sur la version actuelle avec la commande :
export WA_API_VERSION=current-whatsapp-version
Modifiez les variables d’environnement de la base de données dans le fichier db.env
du répertoire ~/biz
de sorte qu’elles correspondent à votre configuration MySQL/PostgreSQL.
WA_DB_ENGINE=MYSQL | PGSQL WA_DB_HOSTNAME=your-database-server WA_DB_PORT=your-database-server-port WA_DB_USERNAME=your-database-username WA_DB_PASSWORD=your-database-password
Le volume de contenu multimédia local (whatsappMedia:/usr/local/wamedia
, par défaut) défini dans le fichier prod-docker-compose.yml
sert à stocker les fichiers multimédias. Par défaut, le volume est monté dans un répertoire sur la machine Docker. Vous pouvez toutefois choisir de le monter dans un répertoire hôte. Pour modifier le point de montage du volume de contenu multimédia, indiquez le chemin d’accès au répertoire hôte que vous utilisez dans la définition du volume, à la section services
de whatsappMedia
.
services: wacore: ... volumes: - /your-local-media-volume-path:/usr/local/wamedia ... waweb: ... volumes: - /your-local-media-volume-path:/usr/local/wamedia ...
Pour démarrer le client de l’API WhatsApp Business avec un conteneur Webapp et un conteneur Coreapp, exécutez :
docker-compose -f prod-docker-compose.yml up -d
La sortie de cette commande doit se présenter comme suit :
Creating biz_wacore_1 ... done Creating biz_waweb_1 ... done
Pour vérifier que l’état de tous les conteneurs est UP, exécutez :
docker-compose -f prod-docker-compose.yml ps
La sortie de cette commande doit se présenter comme suit :
Name Command State Ports ------------------------------------------------------------------------------------------------- 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
Par défaut, le conteneur Webapp s’exécute sur le port 9090
.
Vous pouvez télécharger et configurer notre collection Postman pour interagir avec l’API WhatsApp Business si vous ne souhaitez pas utiliser la ligne de commande.
Vous pouvez contrôler l’état du client de l’API WhatsApp Business en envoyant un appel d’API au nœud health
.
La sortie de cette commande doit se présenter comme suit :
{ "health": { "gateway_status": "unregistered" } }
La réponse affiche un gateway_status
unregistered
comme gateway_status
, car le client de l’API WhatsApp Business n’est pas encore inscrit.
Vous pouvez inscrire votre client de l’API WhatsApp Business en envoyant un appel d’API au nœud account
.
Effectuez un autre contrôle de l’état du client de l’API WhatsApp Business en envoyant un appel d’API au nœud health
après avoir finalisé l’inscription.
La sortie de cette commande doit se présenter comme suit :
{ "health": { "gateway_status": "connected" } }
Un gateway_status
connected
signifie que le conteneur Coreapp peut se connecter au serveur WhatsApp pour vérifier les contacts et envoyer des messages.
Nous vous recommandons de configurer une surveillance de votre client de l’API WhatsApp Business en production.
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.
WA_API_VERSION
sur la nouvelle versionLa 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
Redémarrez les conteneurs Docker en exécutant :
docker-compose -f prod-docker-compose.yml up -d
v2.23.x
ou une version ultérieureVous 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.
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}
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
.
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.
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 -f prod-docker-compose.yml up -d
2.29.3
ou une version ultérieureSi vous effectuez une mise à jour de v2.29.1
à v2.29.2
ou rencontrez des problèmes durant la mise à jour de ces versions et que vous devez revenir à l’ancienne version pour des raisons de stabilité, nous vous recommandons d’effectuer la mise à jour vers v2.29.3
, puis d’exécuter la commande suivant sur le conteneur Webapp Docker :
chown -R root your-media-directory/incoming your-media-directory/outgoing your-media-directory/shared
Si vous ne l’avez pas modifié, le répertoire de contenu multimédia par défaut est /usr/local/wamedia
.
Remarque :
v2.29.1
et v2.29.2
.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 prod-docker-compose.yml
:
docker-compose -f prod-docker-compose.yml down
La sortie de cette commande doit se présenter comme suit :
Stopping biz_waweb_1 ... done Stopping biz_wacore_1 ... done Removing biz_waweb_1 ... done Removing biz_wacore_1 ... done
Afin de supprimer également tous les volumes définis dans le fichier prod-docker-compose.yml
, exécutez la commande down
avec le paramètre -v
:
docker-compose -f prod-docker-compose.yml down -v
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 -f prod-docker-compose.yml 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 -f prod-docker-compose.yml 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.