Skip to main content
O adaptador do WhatsApp Cloud API só traduz: confere a assinatura do webhook da Meta, extrai cada mensagem com o handle do cliente e o item pronto para registrar, e registra a resposta do agente pela resposta da API de envio. Ele não manda mensagem: quem fala com a Graph API é o seu código.

Instalar

A integração em TypeScript chega com o @niadra/sdk 0.3.0, pronto no ramo main e no npm quando for publicado; até lá, o pacote do npm é o 0.1.1.

As cinco primitivas

subscribe() (Python) e whatsAppChallenge() (TypeScript) respondem ao desafio de assinatura da Meta no GET.

Exemplo mínimo

O mesmo código está em examples/whatsapp_webhook.py e examples/whatsapp-cloud.ts. O flush() depois de record() faz o turno, e o V1 que ele prova, chegarem antes da primeira leitura.

Limites

  • O adaptador nunca envia mensagem nem chama a Graph API; ele traduz o webhook e registra o que o seu código enviou.
  • Mídia chega como referência (id, tipo MIME, SHA-256): baixe os bytes da Graph API, passe a upload_media() e entregue o resultado em upload= (com a sua transcript= de uma nota de voz). O texto de um PDF ou de uma imagem só é lido dentro da célula, e só quando o espaço lista o tipo em media.extract_text_from: a camada de texto do PDF no worker, a imagem por OCR (RapidOCR em ONNX) num processo filho do servidor de modelos, uma por vez, redimensionada; uma imagem que falha (413 ou 422) é tratada como imagem sem texto, e nenhuma imagem sai da região. O texto passa pelo redator antes da extração e vira um turno derivado.
  • Cada WhatsAppMessage traz o wa_id e, para um nome de usuário do WhatsApp, o id com escopo da conta Business (BSUID); statuses e outros campos do webhook ficam de fora.
  • Testado com cargas públicas do formato da Meta e assinaturas calculadas no teste; nenhuma conta da Meta é necessária.

Próximos passos

Agentes de WhatsApp

identidade pelo número, V1 pelo canal e o turno legível pelos outros agentes.

Twilio

WhatsApp e SMS pela Twilio, com o mesmo desenho.