sgcWebSockets の WhatsApp コンポーネントは、Delphi チームがスケールを問わず即時かつパーソナライズされた会話を実現できるようにします。CRM 統合、ヘルプデスクポータル、トランザクション通知サービスなど、いずれのユースケースでも、WhatsApp Business メッセージングへの安全で強靭かつ完全サポートの橋渡しを提供します。本記事では、本番対応のチャットフローを迅速に実現するために必要なビジネス価値と技術的詳細を組み合わせて解説します。
ビジネスインパクトの概要
- 迅速なオンボーディング: 事前構築済みの認証、メッセージルーティング、セッション管理により、プロジェクト立ち上げを数日から数時間に短縮します。
- 高いエンゲージメント: 顧客がすでに信頼しているチャネルでプロモーションオファー、リマインダー、アラートをプッシュします。
- 運用コストの削減: 独自のメッセージングスタックを維持することなく、会話とサポートフローを自動化します。
アーキテクチャ概要
本コンポーネントは WhatsApp Business API の REST エンドポイントと WebSocket コールバックを Delphi フレンドリーなインターフェイスにカプセル化します。トークンの更新、メッセージフォーマット(テキスト、テンプレート、メディア)、非同期配信レポートを管理します。内部的には sgcWebSockets のコアトランスポートに依存しているため、フレームワーク全体で使用されているのと同じ TLS、再接続、スレッドモデルの恩恵を受けられます。
前提条件
- sgcWebSockets Professional または Enterprise。
- 有効な App ID、App Secret、Access Token を持つアクティブな WhatsApp Business Platform アカウント。
- WhatsApp コンポーネントパッケージが登録された状態で sgcWebSockets がインストールされていること。
Delphi でのコンポーネント設定
TsgcWhatsAppClient コンポーネントをデータモジュールまたはサービスフォームにドロップします。必須プロパティはオブジェクトインスペクターで設定するか、初期化時のコードで設定します。
デザイン時設定
- PhoneNumberID に Meta が提供する送信者の電話番号 ID を入力します。
- AccessToken を割り当て、署名済みリクエストを強制する場合はオプションで AppSecretProof も設定します。
- AutoReconnect を true に設定して WebSocket チャネルを維持します。
- 配信確認と受信チャットを処理するために 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;
受信と自動応答
本コンポーネントには sgcWebSockets の HTTP サーバー機能を活用した組み込みの Webhook リスナーが含まれています。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;
高度な設定
- テンプレート管理: ListTemplates を呼び出して承認済みメッセージテンプレートを取得し、メモリにキャッシュします。
- メディアアップロード: UploadMedia と TBytesStream を使用して PDF、画像、音声メモを配信します。
- スケジューリング: TsgcScheduler と組み合わせて CRM トリガーに基づくキャンペーンをオーケストレーションします。
- 分析: OnMessageStatus イベントをフックして BI ダッシュボード用に配信・既読確認を記録します。
WhatsApp コンポーネントを使用する利点
- 統合サポートスタック: 既存の sgcWebSockets トランスポートとシームレスに統合されるため、HTTP、MQTT、AMQP、WhatsApp メッセージングを単一のフレームワークで管理できます。
- 強固なセキュリティ: TLS 1.3 サポート、設定可能なトークン更新間隔、署名検証によってすべてのメッセージを保護します。
- 高スループット: 組み込みのスロットリングと並列送信キューにより、Meta のレート制限内に収まりながらキャンペーンを迅速に配信できます。
- 開発者の生産性: Delphi コンポーネント、イベント、プロパティエディターにより、コードを強く型付けされた IDE フレンドリーな状態に保ち、メンテナンスコストを削減します。
- スケーラブルなデプロイ: ノンブロッキングソケットと非同期コールバックにより、Windows サービス、デスクトップアプリ、ロードバランス済みサーバーなどで動作します。
