TsgcWSAPIServer_WebPushMetodi › SendNotification

SendNotification Method

Cifra e invia tramite POST una notifica Web Push a un singolo endpoint di sottoscrizione utilizzando le credenziali VAPID configurate.

Overload

Overload 1

Sintassi

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

Parametri

NomeTipoDescrizione
aSubscriptionconst TsgcHTTP_API_WebPush_PushSubscriptionSottoscrizione di destinazione contenente l'Endpoint del servizio push insieme alla PublicKey p256dh del browser e all'AuthSecret utilizzati per cifrare il payload.
aMessageconst TsgcWebPushMessageMessaggio strutturato con Titolo, Corpo, Icona e Url; serializzato in JSON tramite AsJSON prima della crittografia.

Note

Overload preferito quando si desidera che la libreria costruisca un payload di notifica ben formato per il service worker del browser. La rappresentazione AsJSON del messaggio viene cifrata con aes128gcm utilizzando le chiavi della sottoscrizione e inviata tramite POST al servizio push seguendo RFC 8030.

Esempio

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;

Sovraccarico 2

Sintassi

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

Parametri

NomeTipoDescrizione
aSubscriptionconst TsgcHTTP_API_WebPush_PushSubscriptionSottoscrizione di destinazione i cui Endpoint, PublicKey (p256dh) e AuthSecret guidano il POST cifrato.
aMessageconst stringPayload grezzo inviato così com'è dopo la cifratura; in genere una stringa JSON che il service worker sa come analizzare.

Note

Utilizzare questo overload quando si dispone già di un payload JSON o in testo normale pre-costruito (ad esempio prodotto da TsgcJSON o caricato da un archivio). I servizi push normalmente accettano fino a circa 4 KB di contenuto crittografato; il superamento di tale limite genera una risposta 413 che viene rilanciata tramite OnWebPushSendNotificationException.

Esempio

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

Torna ai Metodi