Google FCM HTTP v1 Delphi

· Componenti

Da sgcWebSockets 2024.9.0 è disponibile un nuovo componente client per inviare notifiche usando Google Firebase Cloud Messaging e la più recente API HTTP v1.

Le app che usano le API FCM legacy deprecate per HTTP e XMPP dovrebbero migrare all'API HTTP v1 il prima possibile. L'invio di messaggi (compresi i messaggi upstream) con quelle API è stato deprecato il 20 giugno 2023, e lo shutdown inizia il 22 luglio 2024.

Oltre al supporto continuo e alle nuove funzionalità, l'API HTTP v1 presenta questi vantaggi rispetto alle API legacy:

- Sicurezza migliorata tramite token di accesso. L'API HTTP v1 usa token di accesso a breve durata secondo il modello di sicurezza OAuth2. Se un token di accesso diventasse pubblico, potrebbe essere usato in modo malevolo solo per un'ora o giù di lì prima di scadere. I refresh token non vengono trasmessi tanto spesso quanto le chiavi di sicurezza usate nell'API legacy, quindi è molto meno probabile che vengano intercettati.

- Personalizzazione più efficiente dei messaggi tra piattaforme. Per il corpo del messaggio, l'API HTTP v1 dispone di chiavi comuni che vanno a tutte le istanze destinatarie, oltre a chiavi specifiche per piattaforma che ti permettono di personalizzare il messaggio tra piattaforme. Questo ti consente di creare "override" che inviano payload leggermente diversi a diverse piattaforme client in un unico messaggio.

- Maggiore estensibilità e a prova di futuro per le nuove versioni delle piattaforme client. L'API HTTP v1 supporta pienamente le opzioni di messaggistica disponibili sulle piattaforme Apple, Android e Web. Poiché ogni piattaforma ha il proprio blocco definito nel payload JSON, FCM può estendere l'API a nuove versioni e nuove piattaforme secondo necessità.

Client Google FCM Delphi

Firebase Cloud Messaging (FCM) è una soluzione di messaggistica multipiattaforma che ti permette di inviare messaggi in modo affidabile e gratuito.

Usando FCM, puoi notificare a un'app client che è disponibile una nuova e-mail o altri dati da sincronizzare. Puoi inviare messaggi di notifica per favorire il riavvicinamento e la fidelizzazione degli utenti. Per casi d'uso come la messaggistica istantanea, un messaggio può trasferire un payload fino a 4096 byte a un'app client.

Il componente supporta l'API HTTP v1.

Autorizzazione

Il componente client Google FCM può effettuare il login ai server Google usando i seguenti metodi:

OAuth2

Il login viene effettuato usando un webbrowser in cui l'utente accede con il proprio utente e autorizza le richieste FCM.


Service Account

Il login viene effettuato firmando le richieste con una chiave privata fornita da Google, questo metodo è consigliato per servizi automatizzati o applicazioni senza interazione utente.

Quando viene creato un nuovo service account, puoi scaricare un file JSON con tutte le configurazioni. Questo file può essere elaborato dal componente FCM, basta chiamare il metodo LoadSettingsFromFile e passare il nome del file JSON come argomento. 

Esempio

Di seguito trovi un semplice esempio per inviare notifiche usando FCM e JWT come metodo di autenticazione.

oFCM := TsgcHTTPGoogleCloud_FCM_Client.Create(nil);
oFCM.GoogleCloudOptions.Authorization := gcaJWT;
oFCM.LoadSettingsFromFile('sgcfirebase-7x92e-5c80b8506a6c.json');
oFCM.GoogleCloudOptions.JWT.Subject := GoogleFCM.GoogleCloudOptions.JWT.ClientEmail;
ShowMessage(
  oFCM.SendMessage('Project-id', 
  '{"message": {"topic": "news","notification": ' +
  '{"title": "Breaking News",' + 
  '"body": "New news story available."},"data": {"story_id": "story_12345"}}}')
);