0
respostas

Automação com NodeJS

Estou enfretando um problema com a minha automação que é a seguinte, basicamente o código que eu escrevi ele tem que detectar o que um determinado número enviou e se tiver alguma palavra chave dentro do que ele enviou o meu whatsapp vai enviar um "." de forma instantânea, basicamente o problema se encontra quando a mensagem é enviada dentro de um grupo no WhatsApp, pois não detecta o número do cliente e sim um código e não estou conseguindo resolver, alguém poderia me ajudar, vou disponibilizar o código para que algum de vocês consiga me dar o caminho da luz e assim eu consiga rodar o código de forma correta e sem problemas.

const { Client, LocalAuth } = require('whatsapp-web.js');
const qrcode = require('qrcode-terminal');

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

// Mostra QR Code no terminal para conectar o WhatsApp
client.on('qr', (qr) => {
  qrcode.generate(qr, { small: true });
  console.log(' Escaneie o QR Code acima com seu WhatsApp!');
});

client.on('ready', () => {
  console.log(' Bot conectado e pronto!');
});

// Palavras-chave que ativam o bot
const palavrasChave = [
  'formulário',
  'plataforma ak',
  'usuário',
  'identificação',
  'insta',
  'meta',
  'salário',
  'média 40+',
  'equipe',
  'início',
  'fim'
];

// Número do usuário alvo (completo)
const numeroAlvo = '+553291992608';
const ultimosDigitosAlvo = numeroAlvo.slice(-8); // últimos 8 dígitos para comparação

client.on('message', async (msg) => {
  const texto = msg.body.toLowerCase();

  // Detecta número do remetente
  let numeroRemetente = null;

  if (msg.from.endsWith('@g.us')) {
    // Mensagem veio de grupo
    if (msg.author) {
      numeroRemetente = msg.author.replace(/\D/g, '');
    }
  } else {
    // Mensagem privada
    numeroRemetente = msg.from.replace(/\D/g, '');
  }

  console.log(' Mensagem recebida:', texto);
  console.log(' Número detectado:', numeroRemetente);

  // Verifica se o número do remetente corresponde ao usuário alvo (últimos 8 dígitos)
  if (numeroRemetente && numeroRemetente.slice(-8) === ultimosDigitosAlvo) {
    // Verifica se contém alguma palavra-chave
    if (palavrasChave.some(p => texto.includes(p))) {
      console.log(' Palavra-chave detectada do usuário alvo!');
      try {
        await client.sendMessage(msg.from, '.'); // envia o ponto
        console.log(' Ponto enviado com sucesso!');
      } catch (erro) {
        console.error(' Erro ao enviar mensagem:', erro);
      }
    }
  }
});

client.initialize();

Matricule-se agora e aproveite até 50% OFF

O maior desconto do ano para você evoluir com a maior escola de tecnologia

QUERO APROVEITAR