Google FCM HTTP v1 Delphi

· Composants

Depuis sgcWebSockets 2024.9.0, un nouveau composant client permet d'envoyer des notifications via Google Firebase Cloud Messaging et la dernière API HTTP v1.

Les applications qui utilisent les anciennes API FCM pour HTTP et XMPP doivent migrer vers l'API HTTP v1 dès que possible. L'envoi de messages (y compris les messages en amont) via ces API a été déprécié le 20 juin 2023, et l'arrêt commence le 22 juillet 2024.

En plus du support continu et des nouvelles fonctionnalités, l'API HTTP v1 présente les avantages suivants par rapport aux API existantes :

- Meilleure sécurité grâce aux jetons d'accès. L'API HTTP v1 utilise des jetons d'accès à courte durée de vie selon le modèle de sécurité OAuth2. Si un jeton d'accès devient public, il ne peut être utilisé de façon malveillante que pendant environ une heure avant d'expirer. Les jetons de rafraîchissement sont transmis moins souvent que les clés de sécurité utilisées dans l'ancienne API, ils sont donc bien moins susceptibles d'être interceptés.

- Personnalisation plus efficace des messages entre plateformes. Pour le corps du message, l'API HTTP v1 dispose de clés communes qui s'appliquent à toutes les instances ciblées, ainsi que de clés spécifiques à chaque plateforme qui te permettent de personnaliser le message selon la plateforme. Cela te permet de créer des « overrides » qui envoient des payloads légèrement différents aux différentes plateformes clientes dans un seul message.

- Plus extensible et pérenne pour les nouvelles versions de plateformes clientes. L'API HTTP v1 prend en charge l'ensemble des options de messagerie disponibles sur les plateformes Apple, Android et Web. Comme chaque plateforme possède son propre bloc défini dans le payload JSON, FCM peut étendre l'API à de nouvelles versions et de nouvelles plateformes au besoin.

Client Delphi Google FCM

Firebase Cloud Messaging (FCM) est une solution de messagerie multiplateforme qui te permet d'envoyer des messages de façon fiable et gratuite.

Avec FCM, tu peux notifier une application cliente qu'un nouvel e-mail ou d'autres données sont disponibles pour la synchronisation. Tu peux envoyer des messages de notification pour favoriser le réengagement et la rétention des utilisateurs. Pour des cas d'usage comme la messagerie instantanée, un message peut transférer un payload pouvant atteindre 4096 octets vers une application cliente.

Le composant prend en charge l'API HTTP v1.

Autorisation

Le client du composant Google FCM peut se connecter aux serveurs Google en utilisant les méthodes suivantes :

OAuth2

La connexion s'effectue via un webbrowser où l'utilisateur se connecte avec son propre compte et autorise les requêtes FCM.


Comptes de service

La connexion s'effectue en signant les requêtes avec une clé privée fournie par Google. Cette méthode est recommandée pour les services automatisés ou les applications sans interaction utilisateur.

Lorsqu'un nouveau compte de service est créé, tu peux télécharger un fichier JSON avec toutes les configurations. Ce fichier peut être traité par le composant FCM : appelle simplement la méthode LoadSettingsFromFile en passant le nom du fichier JSON en argument. 

Exemple

Tu trouveras ci-dessous un exemple simple pour envoyer des notifications via FCM avec JWT comme méthode d'authentification.

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"}}}')
);