Arquitetura
| Parte | Responsabilidade |
|---|---|
| WaGo | Sessão do WhatsApp, leitura de QR code, envio, recebimento, mídia, chamadas, webhooks. |
| Seu backend | Login do usuário, permissões, propriedade do token, regras de negócio, banco de dados, faturamento, processamento de webhooks. |
| Seu frontend | UI de status da sessão, exibição do QR code, UI de caixa de entrada, formulários de envio, UI de chamadas. |
Passo 1: Armazene o token do WaGo em sua aplicação
Cada conta do WhatsApp conectada utiliza um token de sessão do WaGo. Sua aplicação deve mapear esse token para seu próprio usuário, equipe, workspace ou cliente. Se o token ainda não existir, crie-o comPOST /session/init a partir de um backend confiável. Veja Criar um token para o fluxo admin completo.
Exemplo de estrutura de banco de dados:
| Campo | Exemplo |
|---|---|
workspace_id | workspace_123 |
wago_token | customer-token-1 |
wago_jid | [email protected] |
webhook_url | https://app.example.com/wago/webhook |
connected | true |
logged_in | true |
admintoken ao frontend. Se o seu produto cria tokens do WaGo para usuários, faça isso a partir do seu backend.
Passo 2: Configure os webhooks
Defina a URL do webhook para o token:["All"] ao criar a primeira versão. Reduza a lista quando sua aplicação estiver estável.
Passo 3: Exiba o status da leitura (scan)
Seu frontend pode realizar polling:| Campo | Significado |
|---|---|
Connected | O WaGo possui uma conexão ativa com o WhatsApp. |
LoggedIn | O dispositivo foi lido e autenticado. |
Jid | A conta do WhatsApp conectada. Armazene-a após a leitura. |
Events | Tipos de eventos inscritos. |
QRCode como uma imagem em sua UI.
Passo 4: Envie uma mensagem
Passo 5: Receba mensagens
Seu webhook recebe dados de formulário:| Campo do formulário | Uso |
|---|---|
token | Localize o cliente/sessão em seu banco de dados. |
jsonData | Analise como JSON e processe o evento. |
file | Arquivo de mídia enviado opcionalmente quando o WaGo encaminha mídia baixada. |
- Analise os dados do formulário.
- Analise o
jsonData. - Armazene o evento bruto.
- Armazene índices-chave como
token,type, ID da mensagem, JID do chat, JID do remetente e timestamp. - Salve os arquivos enviados antes de responder.
- Responda com 2xx rapidamente.
- Coloque ações lentas em fila após a resposta.
Passo 6: Manipule mídias
Para mídias de saída, escolha um dos dois padrões:| Padrão | Use quando |
|---|---|
| Base64 data URL | Os arquivos são pequenos e já estão disponíveis em sua aplicação. |
| Direct URL | Os arquivos são grandes ou já estão armazenados em um armazenamento de objetos/CDN. |
Passo 7: Fluxo de solução de problemas em produção
Quando algo falhar, verifique nesta ordem:GET /server/okpara confirmar se o binário está acessível.GET /session/statuspara confirmar o token, a conexão e o login.GET /webhookpara confirmar a URL do webhook e as assinaturas.- Logs do servidor para o status da requisição e erro do WhatsApp.
- Logs do seu receptor de webhook para erros de entrega e análise.
- O explorador de API local em
http://localhost:1337/apipara um teste direto de endpoint.
Erros comuns em produção
| Problema | Solução |
|---|---|
Frontend usa admintoken | Mova as chamadas administrativas para seu backend. |
| Página de QR code nunca atualiza | Faça polling em /session/status e atualize /session/qr apenas quando necessário. |
| Mensagens são enviadas, mas a aplicação não atualiza | Inscreva-se em ReadReceipt e armazene os eventos de webhook. |
| Mídia falha através de proxy | Aumente os limites de tamanho do corpo da requisição e de timeout. |
| Webhooks chegam várias vezes | Desduplique pelo ID da mensagem ou chave do evento. |
| Chamadas do navegador falham em produção | Use HTTPS tanto para sua aplicação quanto para a API do WaGo. |
| Chamadas funcionam localmente, mas não para alguns usuários | A rede pode exigir TURN, que está marcado como “em breve”. |

