Componente WhatsApp para Delphi

· Componentes

El componente WhatsApp de sgcWebSockets permite a los equipos Delphi entregar conversaciones instantáneas y personalizadas a escala. Tanto si creas integraciones de CRM, portales de help-desk o servicios de notificaciones transaccionales, el componente proporciona un puente seguro, resiliente y con soporte completo con la mensajería de WhatsApp Business. Este artículo combina el valor comercial con el detalle técnico necesario para entregar flujos de chat listos para producción de forma rápida. 

Impacto en el negocio de un vistazo

Visión general de la arquitectura

El componente encapsula los endpoints REST de la WhatsApp Business API y los callbacks de WebSocket en una interfaz amigable para Delphi. Gestiona la renovación de tokens, el formato de mensajes (texto, plantillas, multimedia) y los informes de entrega asíncronos. Internamente se apoya en los transportes principales de sgcWebSockets, por lo que te beneficias del mismo modelo de TLS, reconexión y multihilo usado en todo el framework. 

Requisitos previos

Configuración del componente en Delphi

Coloca el componente TsgcWhatsAppClient en tu módulo de datos o formulario de servicio. Configura las propiedades esenciales en el Object Inspector o en código durante la inicialización.

Ajustes en tiempo de diseño

  1. Rellena PhoneNumberID con el ID del teléfono emisor proporcionado por Meta.
  2. Asigna AccessToken y, opcionalmente, AppSecretProof si exiges peticiones firmadas.
  3. Activa AutoReconnect a true para mantener vivo el canal WebSocket.
  4. Asocia los eventos OnMessageStatus y OnIncomingMessage para gestionar los acuses de entrega y los chats entrantes.

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; 

Enviar mensajes

Usa los métodos auxiliares SendText y SendTemplate para escenarios de alto nivel, o accede a la colección Messages para payloads avanzados.

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; 

Recibir y automatizar respuestas

El componente incluye un listener de webhook integrado que aprovecha las funcionalidades del servidor HTTP de sgcWebSockets. Asocia la ruta del webhook a tu endpoint publicado y procesa las respuestas en los manejadores de eventos. 

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; 

Configuración avanzada

Ventajas de usar el componente WhatsApp