Conexão via QR Code
O QR Code é o método principal de autenticação do Baileys. Seu telefone escaneia o código gerado pela biblioteca para estabelecer uma conexão multi-dispositivo com o WhatsApp.
Configuração de Browser
O parâmetro browser define como sua instância aparece na seção "Dispositivos Vinculados" do WhatsApp. Use configurações desktop para receber mais histórico de mensagens.
Conexão com Baileys (TypeScript)
"color:#A78BFA">import makeWASocket, { Browsers, DisconnectReason, useMultiFileAuthState } "color:#A78BFA">from '@whiskeysockets/baileys' "color:#A78BFA">import { Boom } "color:#A78BFA">from '@hapi/boom' "color:#A78BFA">async "color:#A78BFA">function conectarWhatsApp() { 555555">// Carregar sessão salva "color:#A78BFA">const { state, saveCreds } = "color:#A78BFA">await useMultiFileAuthState('auth_info_baileys') "color:#A78BFA">const sock = makeWASocket({ auth: state, browser: Browsers.macOS('Chrome'), printQRInTerminal: "color:#A78BFA">true, syncFullHistory: "color:#A78BFA">true, qrTimeout: 60000, 555555">// 60 segundos }) sock.ev.on('connection.update', (update) => { "color:#A78BFA">const { connection, lastDisconnect, qr } = update "color:#A78BFA">if (qr) { 555555">// QR Code disponível — exibir para o usuário console.log('Escaneie o QR Code:', qr) } "color:#A78BFA">if (connection === 'close') { "color:#A78BFA">const shouldReconnect = (lastDisconnect?.error as Boom)?.output?.statusCode !== DisconnectReason.loggedOut "color:#A78BFA">if (shouldReconnect) { conectarWhatsApp() 555555">// Reconectar } "color:#A78BFA">else { console.log('Sessão encerrada.') } } "color:#A78BFA">else "color:#A78BFA">if (connection === 'open') { console.log('✓ Conectado com sucesso!') } }) 555555">// Salvar credenciais sempre que atualizadas sock.ev.on('creds.update', saveCreds) "color:#A78BFA">return sock } conectarWhatsApp()
Via API REST
Evolution API# 1. Criar instância com QR Code habilitado
curl -X POST "http://localhost:8080/instance/create" \
-H "Content-Type: application/json" \
-H "apikey: SEU_GLOBAL_TOKEN" \
-d '{
"instanceName": "minha-instancia",
"qrcode": true,
"integration": "BAILEYS",
"browser": "Chrome"
}'
# 2. Obter o QR Code em base64
curl -X GET "http://localhost:8080/instance/connect/minha-instancia" \
-H "apikey: SEU_TOKEN"Boas Práticas
Use configuração desktop
Browsers macOS, Windows ou Ubuntu recebem mais histórico de mensagens que mobile.
Persista a sessão
Sempre use useMultiFileAuthState e salve com creds.update para evitar re-autenticação.
Implemente reconexão
Reconecte automaticamente em falhas de rede, mas não quando o usuário fizer logout.
QR Code expira
Um novo QR Code é emitido automaticamente via connection.update se o anterior expirar.
Simulador de QR Code
Demonstração interativa
Estados de conexão
connectingEstabelecendo conexãoopenConectado com sucessocloseConexão encerrada