Icono del sitio ZimbronApps

Enviar mensajes de WhatsApp utilizando la API de Infobip en Node.js

Para utilizar la API de Infobip para enviar mensajes de WhatsApp desde Node.js, puedes seguir los siguientes pasos:

Registrarte en Infobip

Para poder utilizar la API de Infobip, necesitarás registrarte en su sitio web y obtener una clave de API https://portal.infobip.com/homepage/ Dentro del panel de infobip podemos encontrar la API_KEY, API_BASE_URL y SENDER_PHONE que necesitaremos más adelante.

Antes de continuar es necesario activar el Sandbox de Infobip, para eso, dentro del panel de infobip, podrás encontrar la sección “Activate Infobip sandbox to start testing”, la cual te pedirá que escanees un código QR y envíes un mensaje en Whatsapp. Hecho esto podemos continuar.

Clonar Proyecto

Vamos a clonar este proyecto base de Express + TypeScript ejecutando el siguiente comando en una terminal.

git clone https://github.com/gzimbron/typescript-express-template.git infobip-demo

Abrir Proyecto

Abrimos el proyecto en nuestro editor de código, en este caso usaré visual studio code con el siguiente comando:

code infobip-demo

Instalar dependencias necesarias

Instala el paquete @infobip-api/sdk en tu proyecto utilizando el siguiente comando:

Este comando además, nos instala las dependencias originales que tenía el proyecto base.

npm install @infobip-api/sdk

Configurando variables de entorno

Vamos a crear un archivo .env en la raíz de tu proyecto y agregamos las siguientes variables, que podemos obtener en el panel de Infobip

INFOBIP_API_KEY="TU_API_KEY"
INFOBIP_BASE_URL="TU_API_BASE_URL"
INFOBIP_SENDER_PHONE="TU_SENDER_PHONE"
.env

Implementando el código

En el fichero src/index.ts, vamos a importar lo siguiente:

import { AuthType, Infobip } from '@infobip-api/sdk';

Agregamos un nuevo endpoint de tipo POST, donde recibiremos los datos “phone” y “message” para enviar el whatsapp:

 app.post('/whatsapp', async (req, res) => {
	const { phone, message } = req.body;

	const client = new Infobip({
		baseUrl: process.env.INFOBIP_BASE_URL!,
		apiKey: process.env.INFOBIP_API_KEY!,
		authType: AuthType.ApiKey
	});

	const messageConfig = {
		type: 'text',
		from: process.env.INFOBIP_SENDER_PHONE!,
		to: phone,
		content: {
			text: message
		}
	};

	try {
		const result = await client.channels.whatsapp.send(messageConfig);

		console.log(result);
		res.json({ sucess: true, data: result.data });
	} catch (error) {
		console.error(error);

		res.status(500).json({ sucess: false, error });
	}
});

Este código funciona de la siguiente manera:

Prueba

Ya tenemos listo nuestro endpoint, así que procedemos a correr nuestra aplicación con el siguiente comando:

npm run dev

Con estos pasos, deberías poder enviar mensajes de WhatsApp utilizando la API de Infobip en tu proyecto de NodeJS haciendo un POST a la ruta http://localhost:3000/whatsapp con un JSON como el siguiente:

{ 
	"phone": "447123456789",
	"message": "Hello World!"
}

Es importante resaltar que se debe de incluir el código telefónico del país, sin el simbolo +, por ejemplo para México sería: 521234567890 donde 52 es el código del país y 1234567890 es el número telefónico de destino.

Capturas de Pantalla

Llamada al endpoint:

Mensaje recibido:

Salir de la versión móvil