- whatsapp-web.js; será la que haga toda la magia
- qrcode-terminal; no permitirá dibujar códigos QR en la terminal
- ora; dibujará en consola spinners
- chalk; coloreará líneas de código que mostremos por la terminal
- mime-db; identifirá tipos de archivos, que lo necesitaremos para enviar y recibir archivos multimedia.
Vamos a usar Node con Typescript, así que:
- Creamos una carpeta
- Dentro de esa carpeta, en la consola escribimos
npm init --y
. Con esto crearemos un archivo package.json donde se encontrará nuestra configuración del proyecto de Node. - Instalamos TypeScript como dependencia, ya que no lo necesitaremos para producción, para ello
npm i typescript -D
- Inicializamos el proyecto de TypeScript con
npx tsc-init
. Se generara el fichero de configuración de TypeScript llamado tsconfig.json - Crea una carpeta llamada dis que será donde se compile el código de TypeScript a JavaScript.
- Modifica el tsconfig.json para que quede así:
{
"compilerOptions":
{
"target": "es6",
"module": "commonjs",
"outDir": "./dist",
"strict": true,
"esModuleInterop": true
}
}
- Crea un fichero llamado app.ts
- En el fichero crea algo como
console.log("Ready");
- Ejecutamos el espia de TypeScript para que esté vigilando los cambios en los ficheros ts y los compile automáticamente al guardar cualquier fichero ts. Para ello
tsc --watch
- Si nos vamos a la carpeta dis que creamos en el punto 5 veremos que se ha generado un nuevo fichero app.js
- Ejecutamos
node dist/app.js
y veremos por consola el mensaje de Ready
npm i whatsapp-web.js
Esta librería usa Puppeteer, y a su vez Puppeteer usa una versión de Chromium concreta para simular que es un navegador web, porque lo que hace la librería es simular que es un navegador web para iniciar una sesión WhatsApp Web.
Así que no te asustes si vez que se está descargando algo que ocupa algo más de 150 Mb, ya sabes qué es.
Es necesario instalar los tipos para TypeScript de Puppeteer, para ello npm i --save-dev @types/puppeteer
Instalamos otra librería que será la que dibuje en la consola el código QR necesario para escanear con nuestro móvil donde tenemos el número de WhatsApp sobre el que queremos crear nuestro bot. Para ello npm i qrcode-terminal --save
Las siguiente librerías no son necesarias, pero nos ayudará a que la aplicación tenga un mejor aspecto en la terminal.
npm i ora chalk mime-db --save