Instalación de desarrollador: una sola instancia

En este documento, se muestra cómo configurar una única instancia del cliente de la API de WhatsApp Business en un equipo de desarrollador con fines de prueba. Para configurar la producción, sigue las instrucciones relevantes indicadas en Instalaciones de producción.

Para configurar una única instancia, consulta nuestra lista de requisitos y sigue estos pasos:

  1. Crea un directorio biz para almacenar los scripts de configuración
  2. Obtén los archivos de configuración del cliente de la API de WhatsApp Business
  3. Configura la variable de entorno WA_API_VERSION
  4. Inicia el cliente de la API de WhatsApp Business
  5. Verifica que los contenedores se estén ejecutando
  6. Ejecuta una comprobación de estado
  7. Registra el cliente de la API de WhatsApp Business

Una vez que hayas configurado por completo tu instancia, podrás optar por actualizarla. Para desinstalar el cliente, sigue estos pasos.

Antes de empezar

Antes de empezar, necesitarás completar lo siguiente:

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.

Otros requisitos previos

Asegúrate de configurar una cuenta de prueba local en un entorno de desarrollo. Es útil para un desarrollo rápido y para poner a prueba nuevos lanzamientos.

Configuración inicial del cliente de la API de 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

Actualización del cliente de la API de WhatsApp Business

Habrá tiempo de inactividad durante el proceso de actualización.

Se recomienda crear una copia de seguridad de la configuración actual de la app antes de actualizarla; eso te permitirá asegurarte de que puedas volver a ponerte en marcha rápidamente. Sigue los pasos de la documentación sobre copias de seguridad y restauración.

Se recomienda siempre realizar las actualizaciones durante las horas de menos actividad.

Paso 1: Cambia la variable de entorno WA_API_VERSION por la nueva versión

La variable de entorno WA_API_VERSION debe actualizarse a la nueva versión mediante lo siguiente:

export WA_API_VERSION=new-whatsapp-version

Si haces una actualización a la versión 2.33.4, el comando de ejemplo sería el siguiente:

~/biz $ export WA_API_VERSION=2.33.4

Paso 2: Reinicia los contenedores Docker

Reinicia los contenedores Docker ejecutando lo siguiente:

docker-compose up -d

El resultado se verá como en el siguiente ejemplo:

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

Para usuarios de la base de datos MySQL que actualizan a la versión v2.23.x o a una superior

Ahora puedes utilizar un servicio de actualización de versión de base de datos que te permite actualizar la base de datos con la app en ejecución y así evitar tiempo de inactividad.

Paso 1: Descarga los archivos de configuración

El archivo dbupgrade-compose.yml tiene campos que indican la versión del contenedor.

Ejemplo:

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

Paso 2: Inicia el contenedor

Para actualizar la versión de una instalación, inicia el contenedor dbupgrade-service con la variable de entorno WA_API_VERSION configurada con el valor de la versión más reciente:

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

Nota: Si utilizas una orquestación que reinicia el contenedor al salir, independientemente del código de salida, inicia el servicio con la variable de entorno EXIT_ON_SUCCESS configurada en FALSE para evitar salir del contenedor cuando el código de salida sea 0.

Paso 3: Espera a que la actualización finalice

Si la base de datos se actualiza con éxito, el código del contenedor al salir será 0. Puedes utilizar el siguiente comando Docker para hacer un seguimiento del estado:

docker wait your-database-upgrade-container-name

El resultado devuelto será el código de salida del contenedor dbupgrade-service.

Paso 4: Reinicia los contenedores de la app principal y de la app web

Reinicia el contenedor Docker de la app web y el de la app principal con la variable de entorno WA_API_VERSION configurada con la versión más reciente:

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

Cómo desinstalar el cliente de la API de WhatsApp Business

Se recomienda crear una copia de seguridad de la configuración de la app actual antes de desinstalarla. Sigue los pasos de la documentación sobre copias de seguridad y restauración.

Si debes eliminar todos los contenedores para restablecer el entorno de desarrollo, ejecuta el siguiente comando desde el directorio que contiene el archivo docker-compose.yml:

WA_API_VERSION={VERSION_NUMBER} docker-compose down

El resultado se verá como en el siguiente ejemplo:

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

Si, además de los contenedores, quieres eliminar todos los volúmenes definidos en el archivo docker-compose.yml, ejecuta el comando down con el parámetro -v:

WA_API_VERSION={VERSION_NUMBER} docker-compose down -v

Solución de problemas

Para solucionar problemas de forma más eficaz, recomendamos utilizar WADebug. WADebug es una herramienta de línea de comandos que sirve para buscar posibles problemas en la configuración de la API de WhatsApp Business y para pedir ayuda a la asistencia de WhatsApp con mayor facilidad.

En los casos en que no se pueda utilizar WADebug o cuando al ejecutar la herramienta se devuelvan errores, ejecuta el siguiente comando para recopilar registros de todos los contenedores:

docker-compose logs > debug_output.txt

Para recopilar los registros de un servicio específico, agrega el nombre del servicio (waweb o wacore) al comando docker-compose logs:

docker-compose logs waweb > debug_output.txt

Puedes encontrar los registros en el archivo debug_output.txt en el directorio actual.


Este software utiliza código de FFmpeg con licencia de LGPLv2.1, y puedes descargar el código fuente aquí.