Vous pouvez envoyer et recevoir des messages aux utilisateurs finaux avec browser.gcm. Comme il repose sur Firebase Cloud Messaging (FCM), il s'appuie sur un service externe que vous devez configurer. Ce tutoriel vous guide à travers toutes les étapes nécessaires pour le faire fonctionner dans votre extension.
Bien que browser.gcm soit toujours compatible, il a été créé il y a plus de 10 ans, avant la norme Push. En règle générale, il est toujours préférable d'utiliser la norme Web plutôt qu'une API spécifique à une extension. À moins que vous n'ayez un besoin spécifique d'utiliser browser.gcm, nous vous recommandons d'utiliser Push.
Prérequis
Pour utiliser browser.gcm, vous devez configurer un compte Firebase.
Une fois votre compte créé, ouvrez la console Firebase et sélectionnez un projet existant à utiliser ou créez-en un pour votre extension.
Accédez à la page des paramètres pour Cloud Messaging.
Si vous disposez déjà d'un compte de messagerie cloud dans ce projet, copiez l'ID d'expéditeur numérique indiqué.
Si la messagerie cloud n'est pas activée, vous devrez activer l'API Firebase Cloud Messaging pour le projet dans Google Cloud. L'image ci-dessous montre où se trouve un lien direct vers cette page dans les paramètres Firebase.
Une fois activé, revenez à la page des paramètres pour Cloud Messaging, puis copiez l'ID de l'expéditeur.
Configurer browser.gcm
Maintenant que vous avez obtenu votre ID d'expéditeur depuis Firebase, vous pouvez configurer votre extension pour qu'elle écoute les messages. Pour commencer, assurez-vous d'avoir ajouté l'autorisation gcm au fichier manifest.json de votre extension.
{
"manifest_version": 3,
...
"permissions": ["gcm"]
Vous avez désormais accès à l'API browser.gcm. Vous pouvez vous inscrire pour écouter les messages push en appelant browser.gcm.register.
Écouter les messages
Une fois que l'extension a enregistré votre ID d'expéditeur, vous devez ajouter du code pour gérer les messages entrants.
Firebase sans Firebase
Bien que browser.gcm passe toujours par Firebase, Firebase peut être configuré pour servir de proxy pour les fournisseurs externes de messagerie push. En général, les fournisseurs indiquent explicitement la compatibilité avec les extensions Chrome. Toutefois, tout fournisseur compatible avec les notifications push Firebase (ancienne version) devrait fonctionner. Si votre fournisseur indique qu'il est compatible avec les anciennes notifications push de Firebase, essayez-le. Si vous rencontrez des problèmes, l'assistance du fournisseur devrait pouvoir vous expliquer les restrictions en vigueur.
À propos des chaînes et des thèmes
browser.gcm utilise les anciennes API Firebase Messaging. C'est important, car l'ancienne API n'est pas compatible avec les canaux de messages. Chaque message envoyé est transmis à tous les clients. Si l'extension d'un utilisateur ne s'intéresse qu'à un sous-ensemble de messages, vous devrez effectuer le filtrage vous-même.
Firebase commence par être un compte sans frais, mais vous serez facturé une fois que vous aurez dépassé un certain seuil d'utilisation. Si vous prévoyez d'envoyer des messages à des groupes spécifiques, le filtrage côté client peut finir par coûter plus cher que prévu. Pour contourner ce problème, vous pouvez créer plusieurs projets afin de répliquer des canaux individuels (un projet et un ID d'expéditeur pour chaque canal). Une extension donnée peut s'enregistrer pour plusieurs ID d'expéditeur, jusqu'à 100.
Si vous avez besoin d'une assistance pour les chaînes ou si vous souhaitez utiliser les notifications push sans passer par Firebase, vous pouvez utiliser l'API Push.