Componente WhatsApp para Delphi

· Componentes

O componente WhatsApp do sgcWebSockets capacita equipes Delphi a entregar conversas instantâneas e personalizadas em escala. Seja para integrações com CRM, portais de helpdesk ou serviços de notificação transacional, o componente oferece uma ponte segura, resiliente e totalmente suportada para o WhatsApp Business. Este artigo combina o valor comercial com os detalhes técnicos necessários para criar fluxos de chat prontos para produção rapidamente.

Impacto nos negócios em um relance

Visão geral da arquitetura

O componente encapsula os endpoints REST da WhatsApp Business API e os callbacks WebSocket em uma interface amigável ao Delphi. Ele gerencia atualizações de token, formatação de mensagens (texto, templates, mídia) e relatórios assíncronos de entrega. Internamente, depende dos transportes principais do sgcWebSockets, portanto você se beneficia do mesmo modelo de TLS, reconexão e threading usado em todo o framework.

Pré-requisitos

Configuração do componente no Delphi

Solte o componente TsgcWhatsAppClient no seu data module ou formulário de serviço. Configure as propriedades essenciais no Object Inspector ou por código durante a inicialização.

Configurações em tempo de design

  1. Preencha PhoneNumberID com o ID do telefone remetente fornecido pela Meta.
  2. Atribua AccessToken e, opcionalmente, o AppSecretProof se você exigir requisições assinadas.
  3. Habilite AutoReconnect como true para manter o canal WebSocket ativo.
  4. Vincule os eventos OnMessageStatus e OnIncomingMessage para recibos de entrega e tratamento de mensagens recebidas.

procedure TdmMessaging.DataModuleCreate(Sender: TObject);
begin
  sgcWhatsAppClient.BaseURL := 'https://graph.facebook.com/v18.0/';
  sgcWhatsAppClient.PhoneNumberID := '123456789012345';
  sgcWhatsAppClient.AccessToken := TSecretStore.FetchToken('WA_ACCESS');
  sgcWhatsAppClient.WebhookVerifyToken := 'MyDelphiWebhook';
  sgcWhatsAppClient.AutoReconnect := True;
  sgcWhatsAppClient.Connect;
end; 

Enviando mensagens

Use os métodos auxiliares SendText e SendTemplate para cenários de alto nível, ou acesse a coleção Messages para payloads avançados.

procedure TdmMessaging.SendWelcomeMessage(const ADestination: string);
var
  LMessage: TsgcWAOutboundMessage;
begin
  LMessage := sgcWhatsAppClient.Messages.Add;
  LMessage.ToPhone := ADestination;
  LMessage.TypeMessage := watText;
  LMessage.Text.Body := 'Welcome to our premium support channel!';
  sgcWhatsAppClient.SendMessage(LMessage);
end; 

Recebendo e automatizando respostas

O componente inclui um listener de webhook integrado que aproveita os recursos do servidor HTTP do sgcWebSockets. Mapeie o caminho do webhook para o seu endpoint publicado e processe as respostas dentro dos handlers de evento.

procedure TdmMessaging.sgcWhatsAppClientIncomingMessage(Sender: TObject;
  const AMessage: TsgcWAInboundMessage);
begin
  if AMessage.Text.Body.ToLower.Contains('pricing') then
    sgcWhatsAppClient.SendText(AMessage.FromPhone,
      'Ask about our enterprise bundles for priority SLA and analytics dashboards.')
  else
    QueueForAgent(AMessage);
end; 

Configuração avançada

Vantagens de usar o componente WhatsApp