TsgcWSAPIServer_WebPushMetody › SendNotification

SendNotification Metoda

Szyfruje i wysyła metodą POST powiadomienie Web Push do pojedynczego punktu końcowego subskrypcji przy użyciu skonfigurowanych danych uwierzytelniających VAPID.

Przeciążenia

Przeciążenie 1

Składnia

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

Parametry

NazwaTypOpis
aSubscriptionconst TsgcHTTP_API_WebPush_PushSubscriptionDocelowa subskrypcja zawierająca punkt końcowy usługi push oraz klucz publiczny p256dh przeglądarki i AuthSecret używane do szyfrowania ładunku.
aMessageconst TsgcWebPushMessageUstrukturyzowana wiadomość zawierająca pola Title, Body, Icon i Url; serializowana do formatu JSON za pomocą właściwości AsJSON przed szyfrowaniem.

Uwagi

Preferowane przeciążenie, gdy biblioteka ma zbudować poprawnie sformułowany ładunek powiadomienia dla service workera przeglądarki. Reprezentacja JSON wiadomości (AsJSON) jest szyfrowana metodą aes128gcm przy użyciu kluczy subskrypcji i przesyłana metodą POST do usługi push zgodnie z RFC 8030.

Przykład

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;

Przeciążenie 2

Składnia

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

Parametry

NazwaTypOpis
aSubscriptionconst TsgcHTTP_API_WebPush_PushSubscriptionDocelowa subskrypcja, której Endpoint, PublicKey (p256dh) i AuthSecret sterują zaszyfrowanym żądaniem POST.
aMessageconst stringSurowy ładunek wysyłany bez zmian po szyfrowaniu. Zazwyczaj jest to ciąg JSON, który service worker potrafi przetworzyć.

Uwagi

Użyj tego przeciążenia, gdy dysponujesz gotowym ładunkiem JSON lub zwykłego tekstu (np. wygenerowanym przez TsgcJSON lub wczytanym z pamięci). Usługi push zazwyczaj akceptują do ok. 4 KB zaszyfrowanej zawartości; przekroczenie tego limitu powoduje odpowiedź 413, która jest ponownie zgłaszana przez OnWebPushSendNotificationException.

Przykład

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

Powrót do metod