Creando chatbot para el grupo de Whatsapp

Iniciado por 4h1g4L0w4, Agosto 10, 2024, 07:34:34 PM

Tema anterior - Siguiente tema

0 Miembros y 1 Visitante están viendo este tema.

Para crear el bot utilizaremos nodejs y las librerias "whatsapp-web.js" y "qrcode-terminal"

Primero instalamos nodejs
Código: text
curl -fsSL https://deb.nodesource.com/setup_18.x | sudo -E bash

Código: text
sudo apt install -y nodejs

Creamos una carpeta para el bot
Código: text
mkdir bot-underc0de

Código: text
cd bot-underc0de/

iniciamos npm dentro de la carpeta
Código: text
npm init -y

Instalamos las librerias whatsapp-web.js y qrcode-terminal
Código: text
npm install whatsapp-web.js qrcode-terminal

Creamos un archivo para el codigo del bot
Código: text
touch bot.js

Y colocamos el siguiente codigo
Código: text
const { Client, LocalAuth } = require('whatsapp-web.js');
const qrcode = require('qrcode-terminal');

const client = new Client({
    authStrategy: new LocalAuth()
});

client.on('qr', qr => {
    // Genera el código QR en la terminal
    qrcode.generate(qr, { small: true });
});

client.on('ready', () => {
    console.log('Client is ready!');
});

client.on('message', message => {
    if (message.isGroup) {
        console.log(`Mensaje en grupo: ${message.body}`);
        if (message.body.toLowerCase() === '!links') {
            const links = `
            - === === Links útiles === ===
	    *Como ser miembro de Underc0de* > https://underc0de.org/hola

	    *Podes ver todos estos links en https://underc0de.org/comunidad*

	    *App de Underc0de Android* > https://bit.ly/Underc0deAndroid

	    *App Underc0de iOS* > https://apps.apple.com/uy/app/underc0de/id1591350156?l=es

	    Para todos aquellos que estan buscando trabajo:
	    *Formulario de trabajo 2024* > https://forms.gle/AFWZh3az1yPgqPzr6

	    *Cursos Gratis en Torrent*
	    > https://bit.ly/torrentuc
	    > https://drive.google.com/drive/u/0/folders/1BsHOHrClnUmpz0TI_ymhzXmKokNko8Zv

	    - === === Canales === ===
	    *# becas, cursos, etc* > https://bit.ly/Underc0de

	    *# Canal de posiciones IT* > https://bit.ly/PosicionesITUC

	    - === === Grupos de WhatsApp === ===
	    *IA y Análisis de Datos* > https://bit.ly/IAUC

	    *Hacking, Seguridad y Pentesting* > https://bit.ly/HackUC

        *Underc0de Oficial #2* > https://bit.ly/Underc0deOficial2

        *OffTopic* > https://bit.ly/OfftopicUC

        *English* > https://bit.ly/Underc0deEnglish

        *Programación* > https://bit.ly/ProgramacionUC1

        *Programación #2* > https://bit.ly/ProgramacionUC2

        *Hardware y Reparaciones* > https://bit.ly/HardwareUC
        *Marketing y Diseño UX/UI* > https://chat.whatsapp.com/FQvluEf4GD59C4wrnmLNZW

        *Underc0de Oficial* > https://bit.ly/Underc0deOficial
        *Criptos - USD - Inversiones* > https://bit.ly/CriptosUC
        *Criptos - USD - Inversiones #2* > https://bit.ly/CriptosUSD2
        *QA* > https://bit.ly/QAUC
        *QA #2* > https://bit.ly/QAUC2
        *QA #3* > https://bit.ly/QAUC3
        *Diseño UX/UI* > https://bit.ly/Underc0deUXUI
        *Grupo de Emprendedores* > https://bit.ly/EmprendedoresUnderc0de

        *Gaming* > https://bit.ly/GamingUC
        *Underc0aching* > https://bit.ly/Underc0aching
        *Underc0de Argentina* > https://bit.ly/Underc0deArg
        *Underc0de Mexico* > https://bit.ly/Underc0deMex
        *Underc0de Europa* > https://bit.ly/Underc0deEuropa
        *Underc0de Mendoza #1* > https://bit.ly/Underc0deMza
        *Underc0de Mendoza #2* > https://bit.ly/Underc0deMza2
        *Underc0de Mendoza #3* > https://bit.ly/Underc0deMza3
        *Underc0de San Rafael (MZA)* > https://bit.ly/Underc0deSanRafael

        *Underc0de Tucumán* > https://bit.ly/Underc0deTuc
        *Compra/Venta Mendoza* > https://bit.ly/CompraVentaMZA
        *Underc0de Links* > https://bit.ly/Underc0deLinks
        *Salidas recreativas Mendoza* > https://bit.ly/SalidasMZA

        - === === Otras redes === ===
        *# Telegram* > https://t.me/underc0deoficial
        *# Telegram Links* > https://t.me/underc0denews
        *# Instagram* > https://instagram.com/underc0de
        *# Twitter* > https://twitter.com/underc0de
        *# Facebook* > https://facebook.com/underc0de
        *# YouTube* > https://www.youtube.com/user/under0detv
        *# Linkedin* > https://www.linkedin.com/company/underc0de
        *# Twitch* > https://www.twitch.tv/underc0detv
        *# Tiktok* > https://www.tiktok.com/@underc0de
        *# Discord* > https://discord.gg/underc0de
        *# Slack* > https://bit.ly/SlackUnderc0de
        *# YouTube QARMY* > https://www.youtube.com/@QARMY-UC/
        *# Web QARMY* > https://qarmy.ar

        - === === más links útiles === ===
        # Foro
        > https://underc0de.org/foro
        # Blog
        > https://blog.underc0de.org
        # Fundación
        > https://fundacion.underc0de.org
            `;
            message.reply(links);
        } else if (message.body.match(/^[1-3]$/)) {
            const option = message.body;
            const responses = {
                '1': 'Has elegido la Opción 1 en el grupo.',
                '2': 'Has elegido la Opción 2 en el grupo.',
                '3': 'Has elegido la Opción 3 en el grupo.'
            };
            message.reply(responses[option]);
        }
    } else {
        console.log(`Mensaje en chat: ${message.body}`);
        if (message.body.toLowerCase() === '!links') {
            const links = `
            - === === Links útiles === ===
	    *Como ser miembro de Underc0de* > https://underc0de.org/hola

	    *Podes ver todos estos links en https://underc0de.org/comunidad*

	    *App de Underc0de Android* > https://bit.ly/Underc0deAndroid

	    *App Underc0de iOS* > https://apps.apple.com/uy/app/underc0de/id1591350156?l=es

	    Para todos aquellos que estan buscando trabajo:
	    *Formulario de trabajo 2024* > https://forms.gle/AFWZh3az1yPgqPzr6

	    *Cursos Gratis en Torrent*
	    > https://bit.ly/torrentuc
	    > https://drive.google.com/drive/u/0/folders/1BsHOHrClnUmpz0TI_ymhzXmKokNko8Zv

	    - === === Canales === ===
	    *# becas, cursos, etc* > https://bit.ly/Underc0de

	    *# Canal de posiciones IT* > https://bit.ly/PosicionesITUC

	    - === === Grupos de WhatsApp === ===
	    *IA y Análisis de Datos* > https://bit.ly/IAUC

	    *Hacking, Seguridad y Pentesting* > https://bit.ly/HackUC

        *Underc0de Oficial #2* > https://bit.ly/Underc0deOficial2

        *OffTopic* > https://bit.ly/OfftopicUC

        *English* > https://bit.ly/Underc0deEnglish

        *Programación* > https://bit.ly/ProgramacionUC1

        *Programación #2* > https://bit.ly/ProgramacionUC2

        *Hardware y Reparaciones* > https://bit.ly/HardwareUC
        *Marketing y Diseño UX/UI* > https://chat.whatsapp.com/FQvluEf4GD59C4wrnmLNZW

        *Underc0de Oficial* > https://bit.ly/Underc0deOficial
        *Criptos - USD - Inversiones* > https://bit.ly/CriptosUC
        *Criptos - USD - Inversiones #2* > https://bit.ly/CriptosUSD2
        *QA* > https://bit.ly/QAUC
        *QA #2* > https://bit.ly/QAUC2
        *QA #3* > https://bit.ly/QAUC3
        *Diseño UX/UI* > https://bit.ly/Underc0deUXUI
        *Grupo de Emprendedores* > https://bit.ly/EmprendedoresUnderc0de

        *Gaming* > https://bit.ly/GamingUC
        *Underc0aching* > https://bit.ly/Underc0aching
        *Underc0de Argentina* > https://bit.ly/Underc0deArg
        *Underc0de Mexico* > https://bit.ly/Underc0deMex
        *Underc0de Europa* > https://bit.ly/Underc0deEuropa
        *Underc0de Mendoza #1* > https://bit.ly/Underc0deMza
        *Underc0de Mendoza #2* > https://bit.ly/Underc0deMza2
        *Underc0de Mendoza #3* > https://bit.ly/Underc0deMza3
        *Underc0de San Rafael (MZA)* > https://bit.ly/Underc0deSanRafael

        *Underc0de Tucumán* > https://bit.ly/Underc0deTuc
        *Compra/Venta Mendoza* > https://bit.ly/CompraVentaMZA
        *Underc0de Links* > https://bit.ly/Underc0deLinks
        *Salidas recreativas Mendoza* > https://bit.ly/SalidasMZA

        - === === Otras redes === ===
        *# Telegram* > https://t.me/underc0deoficial
        *# Telegram Links* > https://t.me/underc0denews
        *# Instagram* > https://instagram.com/underc0de
        *# Twitter* > https://twitter.com/underc0de
        *# Facebook* > https://facebook.com/underc0de
        *# YouTube* > https://www.youtube.com/user/under0detv
        *# Linkedin* > https://www.linkedin.com/company/underc0de
        *# Twitch* > https://www.twitch.tv/underc0detv
        *# Tiktok* > https://www.tiktok.com/@underc0de
        *# Discord* > https://discord.gg/underc0de
        *# Slack* > https://bit.ly/SlackUnderc0de
        *# YouTube QARMY* > https://www.youtube.com/@QARMY-UC/
        *# Web QARMY* > https://qarmy.ar

        - === === más links útiles === ===
        # Foro
        > https://underc0de.org/foro
        # Blog
        > https://blog.underc0de.org
        # Fundación
        > https://fundacion.underc0de.org
            `;
            message.reply(links);
        } else if (message.body.match(/^[1-3]$/)) {
            const option = message.body;
            const responses = {
                '1': 'Has elegido la Opción 1.',
                '2': 'Has elegido la Opción 2.',
                '3': 'Has elegido la Opción 3.'
            };
            message.reply(responses[option]);
        }
    }
});

client.initialize();

Son libres de editarlo a gusto y placer

Ahora lo ejecutamos
Código: text
node bot.js

La primera vez que lo ejecuten, les saldra un qr en la terminal que deberan escanear como lo hacen en whatsapp web con la cuenta que quieran para el bot y eso es todo!

Saludos!

PD: la version de node que estoy utilizando es la v18.20.4 y la version de npm es la 10.7.0