📱 WhatsApp Cloud API
O WhatsApp é conectado via API Cloud da Meta — a API oficial, disponível no nível gratuito, que permite enviar e receber mensagens do WhatsApp a partir do seu próprio servidor. Nenhum BSP (Provedor de Soluções Empresariais) terceirizado é necessário.
Pré-requisitos
- Uma conta de desenvolvedor Meta em developers.facebook.com
- Uma Conta Meta Business (também conhecida como Business Manager)
- Um número de telefone para WhatsApp que não esteja registrado no WhatsApp pessoal (você pode usar um SIM, um número virtual ou um telefone fixo)
Passos de Configuração
1. Criar um App Meta
- Acesse developers.facebook.com/apps
- Clique em Create App
- Escolha o tipo Business
- Preencha um nome e conecte sua Conta Business
2. Adicionar o Produto WhatsApp
- No painel do seu app, role até Add Products to Your App
- Clique em Set Up no WhatsApp
- Selecione sua Conta Business
3. Obter Suas Credenciais
Navegue até WhatsApp → API Setup no painel do seu app:
| Credencial | Onde Encontrar |
|---|---|
| Phone Number ID | Listado na seção "From" — um ID numérico como 123456789012345 |
| Access Token | O token temporário mostrado nesta página. Para produção, gere um token permanente via System Users. |
| App Secret | Painel do App → Settings → Basic → App Secret |
| Verify Token | Uma string que você inventa — qualquer string aleatória, ex. my_secret_verify_token_2024 |
4. Adicionar o Canal no PulseHub
- Vá para Canais → Adicionar Canal
- Selecione WhatsApp
- Preencha os quatro campos
- Clique em Salvar Canal
- Copie a URL do Webhook mostrada no cartão do canal
5. Configurar o Webhook na Meta
- No seu app Meta, vá para WhatsApp → Configuration
- Clique em Edit ao lado da seção Webhook
- Callback URL: cole sua URL de webhook do PulseHub
- Verify Token: insira a mesma string que colocou no PulseHub
- Clique em Verify and Save
A Meta fará uma requisição GET para sua URL de webhook com ?hub.mode=subscribe&hub.verify_token=...&hub.challenge=.... O PulseHub verifica o token e retorna o challenge.
- Em Webhook Fields, inscreva-se em: messages
6. Testar
Envie uma mensagem WhatsApp para seu número comercial. Ela deve aparecer como uma nova conversa na caixa de entrada do PulseHub em segundos.
Verificação de Assinatura
A Meta inclui um header X-Hub-Signature-256 em cada webhook:
X-Hub-Signature-256: sha256=abc123...
O PulseHub verifica usando HMAC-SHA256 com seu App Secret. Se a verificação falhar, o webhook retorna 401 Signature mismatch.
Envio de Mensagens
Quando um agente envia uma resposta pela caixa de entrada, o PulseHub chama a API do WhatsApp Cloud:
POST https://graph.facebook.com/v18.0/{phone_number_id}/messages
Authorization: Bearer {access_token}
{
"messaging_product": "whatsapp",
"to": "{recipient_phone}",
"type": "text",
"text": {"body": "Sua resposta aqui"}
}
Acesso à Produção
O app Meta padrão está em modo Development — só pode enviar mensagens para números adicionados como números de teste. Para ir ao ar:
- Complete a Verificação de Negócio no Meta Business Manager
- Envie seu caso de uso do WhatsApp para revisão da Meta
- Uma vez aprovado, seu app obtém acesso para enviar mensagens a todos os usuários do WhatsApp
Problemas Comuns
| Sintoma | Causa Provável |
|---|---|
| Verificação falha durante a configuração do webhook | O verify_token no PulseHub não corresponde ao que você inseriu na Meta |
| Erro de incompatibilidade de assinatura nos logs | app_secret incorreto — copie de App Settings → Basic, não de API Setup |
| Mensagens não chegam | O campo de webhook messages não está inscrito no painel da Meta |
Invalid phone number ao enviar | O formato do número deve ser E.164 sem + (ex. 15551234567) |
| Erro de app em modo Development | Apenas números de teste verificados podem receber mensagens no modo dev |