TsgcWSAPIServer_WebPushメソッド › SendNotification

SendNotification メソッド

設定されたVAPID資格情報を使用して、Web Push通知を暗号化し、単一のサブスクリプションエンドポイントにPOSTします。

オーバーロード

オーバーロード 1

構文

procedure SendNotification(const aSubscription : TsgcHTTP_API_WebPush_PushSubscription; const aMessage: TsgcWebPushMessage);

パラメータ

名前タイプ説明
aSubscriptionconst TsgcHTTP_API_WebPush_PushSubscriptionブラウザのp256dh公開鍵と認証シークレットを含むプッシュサービスエンドポイントを持つターゲットサブスクリプション。ペイロードの暗号化に使用されます。
aMessageconst TsgcWebPushMessageTitle、Body、Icon、Urlを持つ構造化されたメッセージ。暗号化の前にAsJSON経由でJSONにシリアライズされます。

解説

ブラウザのサービスワーカー向けに適切な通知ペイロードを構築したい場合に推奨されるオーバーロードです。メッセージの AsJSON 表現はサブスクリプションのキーを使用して aes128gcm で暗号化され、RFC 8030 に従いプッシュサービスに POST されます。

使用例

var
  oMessage: TsgcWebPushMessage;
begin
  oMessage := TsgcWebPushMessage.Create;
  try
    oMessage.Title := 'eSeGeCe Notification';
    oMessage.Body  := 'Subscription Successfully Registered!!!';
    oMessage.Icon  := 'https://www.esegece.com/images/esegece_logo_small.png';
    oMessage.Url   := 'https://www.esegece.com';
    sgcWSAPIServer_WebPush1.SendNotification(aSubscription, oMessage);
  finally
    oMessage.Free;
  end;
end;

オーバーロード 2

構文

procedure SendNotification(const aSubscription : TsgcHTTP_API_WebPush_PushSubscription; const aMessage: string);

パラメータ

名前タイプ説明
aSubscriptionconst TsgcHTTP_API_WebPush_PushSubscription暗号化された POST を駆動するサブスクリプションのエンドポイント、PublicKey(p256dh)、AuthSecret のターゲット。
aMessageconst string暗号化後にそのまま送信される生ペイロード。通常、サービスワーカーが解析できる JSON 文字列です。

解説

すでにビルド済みの JSON またはプレーンテキストペイロード(たとえば TsgcJSON によって生成されたか、ストレージから読み込んだもの)を保持している場合は、このオーバーロードを使用してください。プッシュサービスは通常最大 4 KB の暗号化コンテンツを受け入れます。それを超えると OnWebPushSendNotificationException を通じて 413 レスポンスが再スローされます。

使用例

sgcWSAPIServer_WebPush1.SendNotification(aSubscription,
  '{"title":"Hello","body":"Raw JSON payload","data":{"url":"https://www.esegece.com"}}');

メソッドに戻る