Le côté serveur de Firebase Cloud Messaging se compose de deux éléments :
- Le backend FCM fourni par Google.
- Votre serveur d'application ou un autre environnement de serveur de confiance où s'exécute votre logique de serveur, comme Cloud Functions pour Firebase ou d'autres environnements cloud gérés par Google.
Votre serveur d'application ou votre environnement de serveur de confiance envoie des requêtes de messages au backend FCM, qui achemine ensuite les messages vers les applications clientes s'exécutant sur les appareils des utilisateurs.
Exigences concernant l'environnement de serveur de confiance
L'environnement de votre serveur d'application doit répondre aux critères suivants :
- Capable d'envoyer des demandes de messages correctement mises en forme au backend FCM.
- Capable de gérer les requêtes et de les renvoyer à l'aide d'un intervalle exponentiel entre les tentatives.
- Capable de stocker de manière sécurisée les identifiants d'autorisation du serveur et les jetons d'enregistrement du client.
Identifiants requis pour le projet Firebase
Selon les fonctionnalités FCM que vous implémentez, vous aurez peut-être besoin des identifiants suivants de votre projet Firebase :
Identifiant | Description |
---|---|
ID du projet | Identifiant unique de votre projet Firebase, utilisé dans les requêtes envoyées au point de terminaison HTTP v1 de FCM. Cette valeur est disponible dans le volet Firebase console Paramètres. |
Jeton d'enregistrement | Chaîne de jeton unique qui identifie chaque instance d'application cliente. Le jeton d'enregistrement est requis pour la messagerie à un seul appareil et à un groupe d'appareils. Notez que les jetons d'enregistrement doivent être tenus secrets. |
ID de l'expéditeur | Valeur numérique unique créée lorsque vous créez votre projet Firebase. Elle est disponible dans l'onglet Cloud Messaging du volet Paramètres de la console Firebase. L'ID de l'expéditeur est identique au numéro du projet. L'ID de l'expéditeur permet d'identifier chaque expéditeur pouvant envoyer des messages à l'application cliente. |
Jeton d'accès | Jeton OAuth 2.0 de courte durée qui autorise les requêtes envoyées à l'API HTTP v1. Ce jeton est associé à un compte de service appartenant à votre projet Firebase. Pour créer et faire tourner des jetons d'accès, suivez les étapes décrites dans Autoriser les requêtes d'envoi. |
Choisir une option de serveur
Vous devrez choisir un moyen d'interagir avec les serveurs FCM : soit en utilisant Firebase Admin SDK, soit l'API HTTP v1 FCM. En raison de sa compatibilité avec les langages de programmation courants et de ses méthodes pratiques pour gérer l'authentification et l'autorisation, la méthode Firebase Admin SDK est recommandée.
Voici quelques options pour interagir avec les serveurs FCM :
Firebase Admin SDK, qui est compatible avec Node.js, Java, Python, C# et Go.
L'API HTTP v1 FCM, une API REST avec une autorisation sécurisée et des fonctionnalités de messagerie multiplate-forme flexibles (Firebase Admin SDK est basé sur ce protocole et offre tous ses avantages inhérents).
Firebase Admin SDK
Firebase Admin SDK gère l'authentification auprès du backend et facilite l'envoi de messages et la gestion des abonnements aux thèmes. Avec Firebase Admin SDK, vous pouvez :
- Envoyer des messages à des appareils individuels
- Envoyer des messages à des sujets et des instructions conditionnelles correspondant à un ou plusieurs sujets
- Envoyer des messages à des groupes d'appareils
- Abonner et désabonner des appareils à des thèmes
- Construire des charges utiles de messages adaptées à différentes plates-formes cibles
Pour configurer Firebase Admin SDK, consultez Ajouter Firebase Admin SDK à votre serveur. Si vous avez déjà un projet Firebase, commencez par Ajouter le SDK. Assurez-vous également d'activer l'API Firebase Cloud Messaging (V1) sur la page Paramètres Cloud Messaging de votre projet. Une fois Firebase Admin SDK installé, vous pouvez commencer à écrire la logique pour créer des requêtes d'envoi.
API HTTP v1 de FCM
FCM fournit l'API HTTP v1 de FCM pour les développeurs qui préfèrent un protocole serveur brut.
Pour envoyer un message, le serveur d'application émet une requête POST avec un en-tête HTTP et un corps HTTP composé de paires clé/valeur JSON. Pour en savoir plus sur les options d'en-tête et de corps, consultez Envoyer un message à l'aide de l'API HTTP v1 FCM.