Este guia mostra como criar uma aplicação Baileys mínima que conecta ao WhatsApp, persiste sua sessão, escuta mensagens recebidas e responde a elas. Ao final, você terá um bot funcional que pode estender com sua própria lógica.Documentation Index
Fetch the complete documentation index at: https://whiskeysockets-docs-jids-socket-config-ptbr.mintlify.app/llms.txt
Use this file to discover all available pages before exploring further.
O Baileys é uma biblioteca não oficial e não é afiliada ao WhatsApp. Use-o com responsabilidade e em conformidade com os Termos de Serviço do WhatsApp. Os mantenedores não compactuam com mensagens em massa, spam ou stalkerware.
Exemplo completo
Os passos abaixo levam a este script funcional completo. Use-o como ponto de partida para o seu projeto.Passo a passo
Instale o Baileys
Adicione o Baileys e seu peer Garanta que você está rodando Node.js 20.0.0 ou superior. Caso contrário, a instalação falhará.
@hapi/boom ao projeto. @hapi/boom é uma dependência direta do Baileys, usada para inspecionar códigos de erro de desconexão.Configure o estado de autenticação
O Baileys precisa de um objeto de estado de autenticação para gerenciar credenciais de sessão e chaves do Signal Protocol. O utilitário interno
useMultiFileAuthState salva tudo em uma pasta local.state contém as credenciais e chaves atuais. saveCreds é um callback que você passa ao evento creds.update, para que a sessão seja gravada em disco sempre que mudar.Crie o socket
Crie um socket chamando
makeWASocket com seu estado de autenticação. Escute o campo qr em connection.update e renderize você mesmo — printQRInTerminal está obsoleto.Quando você executar pela primeira vez, um QR code aparece no terminal. Abra o WhatsApp no celular, vá em Configurações → Aparelhos conectados → Conectar um aparelho e escaneie o código. Em execuções subsequentes, as credenciais salvas são reutilizadas e nenhum QR code é mostrado.
Trate atualizações de conexão
Escute
connection.update para reagir quando a conexão abrir, fechar ou encontrar erros. A lógica de reconexão abaixo reinicia o socket automaticamente — exceto quando você foi explicitamente deslogado.DisconnectReason.loggedOut significa que sua sessão foi revogada. Nesse caso, apague a pasta de autenticação e escaneie um novo QR code.Escute mensagens recebidas
O evento
messages.upsert dispara sempre que novas mensagens chegam. Itere sobre event.messages para tratar cada uma.m.key.remoteJid é o ID do WhatsApp (JID) da conversa de origem da mensagem. Passe-o como primeiro argumento de sock.sendMessage para responder.E agora?
Autenticação
Use código de pareamento em vez de QR code, ou aprenda a gerenciar sessões em banco de dados.
Envio de mensagens
Envie texto, imagens, vídeo, áudio, enquetes, reações e mais.
Eventos
Veja a lista completa de eventos que o Baileys emite.
Grupos
Crie e gerencie grupos, processe pedidos de entrada e configure mensagens efêmeras.