Article
· Sept 23 9m de lecture

Firebase Cloud Messaging avec le FCM d'IrisFirebase

IrisFirebase - FCM
 

 

Bonjour la communauté!

Après avoir lancé mon application dans l'OpenExchange (IrisFirebase avec la fonctionnalité permettant d'utiliser la base de données en temps réel de Firebase), j'ai remarqué d'autres fonctionnalités intéressantes de Firebase que nous pourrions utiliser. C'est pourquoi, en vérifiant les possibilités que Firebase nous apporte, j'ai décidé d'ajouter une nouvelle fonctionnalité au FCM d'IrisFirebase !!! (Firebase Cloud Messaging).

Comment?? Ne savez-vous pas quelle est la clé de Firebase Cloud Messaging? Ne vous inquiétez pas! Je vais vous l'expliquer tout de suite.

 

Firebase Cloud Messaging. “Explication”:

Firebase Cloud Messaging (FCM) est un service fourni par Google. Il permet aux développeurs d'envoyer des notifications et des messages aux appareils des utilisateurs, tels que les smartphones, les tablettes ou les ordinateurs. 

Nous avons un dicton en Espagne : "Una imagen vale más que mil palabras" (une image vaut mille mots). Voici donc un exemple pour vous:



 

 

Comme vous pouvez le voir dans les captures d'écran, vous pouvez envoyer des messages avec un titre, un corps et une image personnalisés. Mais il y a une autre chose fascinante que je souhaite vous montrer.

Oui, je sais ce que vous pensez en ce moment... "Hé, ça a l'air génial, mais ça doit être assez cher, surtout pour une personne aussi fragile que moi".Alors, c'est la meilleure partie! C'est totalement gratuit!! Jetez un œil à la preuve ci-dessous:

https://firebase.google.com/products/cloud-messaging


 


 

Souhaitez-vous savoir de quelle manière vous pouvez envoyer des messages à vos applications, pages web, etc…? Quelle chance!!! Pourquoi? Car je vais vous expliquer comment le faire de manière très simple. Préparez vos timbres et enveloppes numériques car nous allons "envoyer” un tas de "lettres". Allons-y! 

 

Préparation de notre environnement:

Si vous avez examiné mon précédent article expliquant comment utiliser IrisFirebase, vous devriez avoir une App déjà configurée dans Firebase avec une instance d'IrisFirebase en cours d'exécution. Au cas où vous ne l'auriez pas lu, veuillez suivre les étapes, 1, 2, 4, 5 et 6 de l'article ci-dessous:

https://community.intersystems.com/post/firebase-module-unleashing-power-firebase-realtime-database-intersystems-iris

Ok, si vous avez suivi toutes les étapes correctement, vous devriez avoir une instance d'IrisFirebase en cours d'exécution, alors continuons.

 

 

Première étape: configurez votre application pour utiliser FCM:

Pour être capable d'envoyer des messages, vous devez d'abord configurer FCM dans votre application Firebase.

Saisissez votre console Firebase et sélectionnez votre projet (dans mon cas, il s'agit de IrisFirebaseExample):


 

Appuyez ensuite sur le bouton Tous les produits:


 

Recherchez le produit "Cloud Messaging”:


 

Vous devez maintenant ajouter une ou plusieurs applications suivant que vous développez une application pour Android uniquement ou pour plusieurs plateformes différentes. (Dans mon cas, j'ai opté pour Android):

(Si vous prévoyez d'envoyer des messages à iOS, vous devez avoir un compte développeur Apple payant car il faut générer un certificat).


 

Remplissez les champs obligatoires avec les renseignements sur votre App/web (le champ SHA-1 est facultatif):

 

Après quelques secondes, un écran vous demandant de télécharger le fichier de configuration apparaîtra. Cliquez sur " Download google-service.json " et gardez-le en sécurité car il est crucial pour votre travail. (Vous devrez le copier à la racine du projet de votre application plus tard). Après avoir sauvegardé le fichier, cliquez sur le bouton Next.


 

L'étape suivante explique comment ajouter le SDK Firebase à votre application.


 

Cette étape est différente si vous créez une application avec Kotlin, Groovy, Flutter, etc. Dans mon cas, j'ai utilisé Flutter, et la façon la plus simple de le faire est d'installer le CLI de Firebase:

https://firebase.google.com/docs/android/setup

Je n'expliquerai pas ces étapes car elles dépassent le cadre de ce tutoriel. Cependant, n'hésitez pas à me poser des questions dans les commentaires.

Alors, continuons en appuyant sur le bouton "Suivant".

À ce stade, nous avons terminé le côté console Firebase. Félicitations, vous avez passé la partie ennuyeuse!!!


 

 

Deuxième étape: Configurez IrisFirebase.FCM:

Si vous avez configuré l'application précédente dans IrisFirebase avec Firebase RealTime Database, vous pouvez l'utiliser avec FCM. Si vous n'avez pas cette application, vous pouvez la configurer en lançant la méthode ConfigApp de la classe Firebase.Helper.cls. Vous trouverez un exemple de la manière de procéder dans la classe Test.TestFCM.cls:

ClassMethod init()
{
  Do ##class(Firebase.Helper).ConfigApp("appNotas",””,"irisfirebaseexample.json")
}

N'oubliez pas d'utiliser vos paramètres privés (le deuxième paramètre URL n'est obligatoire que pour la base de données en temps réel ; il ne s'applique pas au FCM, vous pouvez donc l'omettre ou l'envoyer vide.

C'est très bien ! Nous avons maintenant tous les systèmes configurés : notre instance IrisFirebase avec FCM et notre App ou Web avec le SDK Firebase.

Il est temps de commencer l'envoi de messages!

 

Troisième étape: envoi d'un message à un seul appareil:

Pour envoyer un message à un appareil particulier, vous devez connaître l'identifiant du jeton de l'application que vous souhaitez notifier.

Vous pouvez obtenir cet identifiant de jeton à partir de l'application/du site web que vous utilisez. Ci-dessous, vous trouverez un exemple de la façon d'obtenir l'identifiant du jeton d'une instance de votre application installée sur un appareil Android avec Flutter de manière programmatique:


 

Avec ce code, vous obtiendrez la variable "jeton". L'identifiant du jeton ressemblera à ce qui suit:

fErQlmmjTsq2E2-p7RN6zD:APA91bFhdeCGit17QSIXrlbfovr59BgviGIDHI0nnp7t9i_YFKAPSACkTvP_iKOV-b3Xaj73uhl7Z0S41vfmH_YVV8Ep9Evad69-s1Hkt9pu3VrkeZQGTc8vAJgKSY1qkhuP7HU6t7UJ

 

Selon la façon dont vous utilisez votre application, vous pouvez préférer stocker cet identifiant dans Iris avec un identifiant qui identifie votre client. Pour ce faire, vous pouvez utiliser la méthode SaveToken. Vous trouverez un exemple de son fonctionnement dans la classe Test.TestFCM.cls

ClassMethod TestSaveToken()
{
  Set token = "fErQlmmjTsq2E2-p7RN6zD:APA91bFhdeCGit17QSIXrlbfovr59BgviGIDHI0nnp7t9i_YFKAPSACkTvP_iKOV-b3Xaj73uhl7Z0S41vfmH_YVV8Ep9Evad69-s1Hkt9pu3VrkeZQGTc8vAJgKSY1qkhuP7HU6t7HJ"
  Set appName = "appNotas"
  Set id = 123456
  Do ##class(Firebase.FCM).SaveToken(appName, token, id)
}

 

Dans ce cas, il peut s'agir de votre identifiant client ou de tout autre identifiant susceptible de vous aider à identifier cet appareil à l'avenir.

Donc, maintenant nous sommes complètement prêts à envoyer un message. Pour ce faire, vous pouvez utiliser l'une des méthodes suivantes:

La première méthode: consiste à envoyer des messages directement à un jeton (méthode Send), voyez l'exemple ci-dessous:

ClassMethod TestSendMessage()
{
 Set appName = "appNotas"
 Set title = "IrisFirebase FCM"
 Set body = "Now you can send messages from Iris using IrisFirebase!!!"
 Set image = "https://openexchange.intersystems.com/mp/img/packages/3553/vaeo3isvwgubxb2ya7vb0c9edgs.jpeg"
 Set token = "fErQlmmjTsq2E2-p7RN6zD:APA91bFhdeCGit17QSIXrlbfovr59BgviGIDHI0nnp7t9i_YFKAPSACkTvP_iKOV-b3Xaj73uhl7Z0S41vfmH_YVV8Ep9Evad69-s1Hkt9pu3VrkeZQGTc8vAJgKSY1qkhuP7HU6t7HJ"
 Set data = {}
 Set data.param1 = "param1 value"
 Set data.param2 = "param2 value"
 Set result = ##class(Firebase.FCM).Send(appName, token, title, body, image, data)
 If (result = 1)
 {
  U 0 W "Message sended OK"
 }Else{
  U 0 W "Error sending message"
 }

}

 

Comme vous pouvez le constater, pour envoyer un message, vous aurez besoin des éléments suivants:

AppName: C'est le nom de l'application que vous avez écrit dans la méthode ConfigApp.

Le Titre, le Corps et l'Image sont expliqués dans la capture d'écran:



 

Jeton: il s'agit de l'identifiant du token que vous avez obtenu auprès de l'application.

Data : Il s'agit d'un outil très intéressant (data est un dictionnaire JSON avec une paire de valeurs clés où vous pouvez envoyer des données cachées personnalisées à l'appareil). Peut-être envoyez-vous à votre client les détails de son prochain rendez-vous, vous pouvez donc utiliser cette structure pour envoyer des informations à afficher dans votre application ou ce que vous voulez.

 

La deuxième méthode: consiste à envoyer un message à un identifiant client (ou autre):

Dans ce cas, vous pouvez utiliser la méthode SendMessageToId. Voyez l'exemple ci-dessous:

ClassMethod TestSendMessageToId()
{
 Set appName = "appNotas"
 Set id = 123456
 Set title = "título"
 Set body = "Cuerpo Mensaje"
 Set image = "https://openexchange.intersystems.com/mp/img/packages/3553/vaeo3isvwgubxb2ya7vb0c9edgs.jpeg"
 Set token = "fErQlmmjTsq2E2-p7RN6zD:APA91bFhdeCGit17QSIXrlbfovr59BgviGIDHI0nnp7t9i_YFKAPSACkTvP_iKOV-b3Xaj73uhl7Z0S41vfmH_YVV8Ep9Evad69-s1Hkt9pu3VrkeZQGTc8vAJgKSY1qkhuP7HU6t7FD"
 Set data = {}
 Set data.param1 = "param1 value"
 Set data.param2 = "param2 value"
 Set result = ##class(Firebase.FCM).SendMessageToId(appName, id, title, body, image, data)


 If (result = 1)
 {
  U 0 W "Message sended OK"
 }Else{
  U 0 W "Error sending message"
 }
}

Comme vous pouvez le constater, la différence entre la méthode précédente et la présente est que dans ce dernier cas, vous devez connaître l'identifiant de votre jeton enregistré au lieu d'utiliser le jeton à l'aide de la méthode SaveToken.

Les autres paramètres sont les mêmes.

 

 

La dernière étape: consiste à envoyer le même message à toutes les instances de votre application/Web:

Pour ce faire, vous pouvez utiliser l'outil natif de Firebase pour envoyer des campagnes.

Accédez à la console Firebase, saisissez votre projet et appuyez sur le bouton "Messaging":


 

Dans cet écran, vous pourrez créer une nouvelle campagne en cliquant sur “New Campaign” ("Nouvelle campagne") puis sur "Notifications":


 

Vous verrez l'explication détaillée des étapes à suivre pour envoyer le même message à toutes les instances de votre application. 


 

Si vous le souhaitez, vous pouvez appliquer certains filtres au cours du processus:


 

Vous pourrez programmer votre campagne ou l'envoyer immédiatement:


 

Vous pouvez également ajouter des analyses:


 

v:

Lorsque vous êtes prêt, appuyez sur Réviser (Review) et Publier (Publish).

Votre nouvelle campagne apparaîtra dans la section de messagerie "Messaging".

Si vous avez préalablement sélectionné l'option "envoyer immédiatement" ("send now"), vous recevrez la notification dans quelques secondes:


 

Firebase prétend pouvoir envoyer des millions de messages en quelques secondes. Par conséquent, si vous envisagez d'envoyer le même message à tous vos clients, je vous recommande de créer une campagne plutôt que d'envoyer le même message à tous vos clients un par un à partir d'IRIS. En revanche, si vous envoyez le message à un groupe de clients ou si le message doit être personnalisé pour chaque client, l'envoi à partir d'IrisFirebase est la meilleure option!.
 

Cliquez sur le lien ci-dessous pour trouver la nouvelle version d'IrisFirebase avec FCM sur l'OpenExchange:

https://openexchange.intersystems.com/package/irisfirebas

 

Pour découvrir le code de l'application en Flutter que j'ai utilisée dans ce tutoriel, consultez le lien suivant:

https://github.com/daniel-aguilar-garcia/push_app_flutter_example

 

Voilà, c'est tout pour l'instant. J'espère que vous trouverez cette nouvelle fonctionnalité intrigante et que vous l'utiliserez beaucoup!

Faites-moi savoir dans les commentaires ce que vous pensez de cette nouvelle fonctionnalité. N'hésitez pas à me contacter si vous souhaitez que j'ajoute de nouveaux éléments à IrisFirebase.

 

Merci d'avoir lu!!

Discussion (0)1
Connectez-vous ou inscrivez-vous pour continuer