WhatsApp Delphi 组件

· 组件
WhatsApp Delphi 组件 | eSeGeCe 博客

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. 绑定 OnMessageStatus 和 OnIncomingMessage 事件,用于处理投递回执和入站聊天。

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; 

发送消息

对于高级场景,使用 SendText 和 SendTemplate 辅助方法;如需发送高级载荷,可访问 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 组件的优势