WhatsApp Delphi 组件

· 组件

sgcWebSockets WhatsApp 组件使 Delphi 团队能够大规模快速交付个性化对话。无论您是构建 CRM 集成、帮助台门户还是交易通知服务,该组件都提供了一座安全、稳健且完全受支持的桥梁,直接对接 WhatsApp Business 消息服务。本文将商业价值与所需技术细节相结合,助您快速构建生产级聊天流程。 

商业价值一览

架构概览

该组件将 WhatsApp Business API REST 端点和 WebSocket 回调封装为 Delphi 友好的接口。它管理令牌刷新、消息格式化(文本、模板、媒体)和异步投递报告。内部依赖 sgcWebSockets 核心传输层,因此您可以受益于框架中使用的相同 TLS、重连和线程模型。 

前置条件

Delphi 中的组件配置

TsgcWhatsAppClient 组件拖放到您的数据模块或服务表单上。在对象检查器中或在初始化代码中配置必要属性。

设计时设置

  1. PhoneNumberID 中填入 Meta 提供的发送方电话 ID。
  2. 分配 AccessToken,如果您强制签名请求,可选配置 AppSecretProof
  3. AutoReconnect 设置为 true 以保持 WebSocket 通道活跃。
  4. 绑定 OnMessageStatusOnIncomingMessage 事件,用于处理投递回执和入站聊天。

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; 

发送消息

对于高级场景,使用 SendTextSendTemplate 辅助方法;如需发送高级载荷,可访问 Messages 集合。

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; 

接收与自动回复

该组件包含内置的 Webhook 监听器,利用 sgcWebSockets HTTP 服务器功能。将 Webhook 路径映射到您已发布的端点,并在事件处理程序中处理回复。 

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; 

高级配置

使用 WhatsApp 组件的优势