Une notification push est un message envoyé à l’utilisateur d’un mobile, ce message est lié à une application installée sur le mobile. L’avantage de la notification push c’est que le message est reçu par l’utilisateur même si l’application Android est fermée. Mais qu’en est-il de l’architecture à mettre en place pour intégrer ce système dans une application mobile ? Et quel est le fonctionnement de l’envoi d’une notification push, de la création à l’affichage sur le mobile ?
Intégration d'un système de Notifications Push dans une app Android via Google Firebase Cloud Messaging (FCM) et un serveur LAMP
1. Intégration d'un système de
Notifications Push dans une app
Android via Google Firebase Cloud
Messaging (FCM) et un serveur
LAMP
FOUOMENE PEWO Daniel Rene
3. Plan
➢ Définition
➢ Architecture technique
➢ Fonctionnement de l’envoi d’une notification
push mobile avec FCM
➢ Réception sous conditions
➢ Pratiques
➢ Conseils - Astuces
www.freelancertech.net
4. Définition
Une notification push est un message envoyé à
l’utilisateur d’un mobile, ce message est lié à une
application installée sur le mobile.
L’avantage de la notification push c’est que le message est
reçu par l’utilisateur même si l’application est fermée.
www.freelancertech.net
5. Définition
➢ Firebase Cloud Messaging (FCM) est
un service de Google permettant l’envoi de
notifications Push à des terminaux.
➢On appelait précédemment Google
Cloud Messaging (GCM).
➢ FCM est supporté par les applications
client iOS, Android ou Web (JavaScript).
➢ FCM a été conçu pour envoyer 170
milliards de notifications par jour.
www.freelancertech.net
6. Définition
Un serveur LAMP est un serveur web sur lequel Linux,
Apache, MySQL et PHP sont installés.
www.freelancertech.net
9. Fonctionnement de l’envoi d’une
notification push mobile avec FCM
www.freelancertech.net
1. À chaque ouverture de l’application mobile, demande d’un
identifiant unique TOKEN à FCM pour identifier l’application sur le
mobile,
2. Envoi du TOKEN de FCM à l’application mobile,
3. Transmission du TOKEN au serveur LAMP d’envoi qui va être stocké
(ou rafraîchi) dans une base de données,
4. Pour l’envoi d’une notification push, le serveur LAMP
d’envoi transmet la notification push à FCM. Pour cela il indique
l’identifiant concerné et le message associé,
5. FCM vérifie les paramètres push (autorisations et identité de
l’application) et transmet la notification au mobile ciblé,
6. FCM envoie immédiatement un rapport de réception des notifications
pour mettre la base d’identifiants à jour (selon les désinstallations et
la désactivation des notifications),
10. Réception sous conditions
➢ N’est pas garantir à 100%.
➢ Refus de réception des notifications par une
application (Dans ce cas, le processus d’envoi a tout
de même lieu, le mobile reçoit bien la notification,
mais il ne l’affiche pas)
➢ Perdre suite à une erreur informatique, EX : mobile
reste éteint trop longtemps (les notifications peuvent
expirer).
www.freelancertech.net
11. Pratique / Test
Configurer FCM pour utiliser le service
Android Push Notifications :
➢ 1- Créer un projet Firebase via la Console Firebase
(https://console.firebase.google.com/ ), Accédez aux
paramètres du projet à partir du menu sur la gauche et
récupérer, Dans l'onglet Cloud Messaging SERVER_KEY :
**************************
➢ 2- Créer votre application Firebase FCM Android et télécharger
le fichier google-services.json
www.freelancertech.net
12. Pratique / Test
Création du Serveur Backend PHP pour LAMP :
Qui permettra :
1- D'enregistrer les ID des mobiles dans une BD (
register.php, db_token.sql )
2- D'envoyer des Push Notifications via des requêtes
HTTP POST ou GET au Serveur Push FCM
(push_notification.php )
www.freelancertech.net
13. Pratique / Test
Création de l'application Android Démo
1- Création app avec le même Package Name renseigné
lors de la création de l’app Firebase FCM Android
2- Intégration du SDK Firebase dans l'app Demo
- Copie du fichier google-services.json à la racine
du répertoire app
- Ajouter les dépendances Firebase
- Créer les classes services
FirebaseInstanceIDService.java;
FirebaseMessagingService.java
- Enregistrer ses services dans le fichier manifeste
www.freelancertech.net