Vous pouvez envoyer et recevoir des messages aux utilisateurs finaux avec chrome.gcm. Étant donné qu'il est basé sur Firebase Cloud Messaging (FCM), il repose sur un service externe que vous devez configurer. Ce guide vous explique toutes les étapes nécessaires pour qu'il fonctionne dans votre extension.
Bien que chrome.gcm
soit toujours pris en charge, il a été créé il y a plus de 10 ans, avant la norme Push. En général, il est toujours recommandé d'utiliser la norme Web plutôt qu'une API spécifique à une extension. Sauf si vous avez un besoin spécifique d'utiliser chrome.gcm
, nous vous recommandons d'utiliser Push.
Prérequis
Pour utiliser chrome.gcm
, vous devez configurer un compte Firebase.
Une fois votre compte créé, ouvrez la console Firebase, puis sélectionnez un projet existant à utiliser ou créez-en un pour votre extension.
Passez à la page des paramètres de Cloud Messaging.
Si vous disposez d'un compte de messagerie cloud existant pour ce projet, vous devez copier l'ID d'expéditeur numérique indiqué.
Si vous n'avez pas activé Cloud Messaging, vous devez activer l'API Firebase Cloud Messaging pour le projet dans Google Cloud. Dans l'image suivante, vous pouvez voir où se trouve le lien direct vers cette page dans les paramètres Firebase.
Une fois l'option activée, revenez à la page des paramètres de Cloud Messaging et copiez l'ID d'expéditeur.
Configurer chrome.gcm
Maintenant que vous avez obtenu l'ID d'expéditeur de Firebase, vous pouvez configurer votre extension pour écouter 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 chrome.gcm
. Vous pouvez vous enregistrer pour écouter les messages push en appelant chrome.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 chrome.gcm
passe toujours par Firebase, Firebase peut être configuré pour servir de proxy pour les fournisseurs de messages push externes. En règle générale, les fournisseurs indiquent explicitement la prise en charge des extensions Chrome. Toutefois, tout fournisseur compatible avec les anciennes notifications push de Firebase devrait fonctionner. Si votre fournisseur indique qu'il est compatible avec les anciennes notifications push de Firebase, essayez-les. En cas de problème, l'assistance du fournisseur devrait pouvoir vous indiquer les restrictions en vigueur.
À propos des chaînes et des thèmes
chrome.gcm
utilise les anciennes API Firebase Messaging. Cela est important, car l'ancienne API n'est pas compatible avec les canaux de messages. Chaque message envoyé sera envoyé à chaque client. Si l'extension d'un utilisateur ne s'intéresse qu'à un sous-ensemble de messages, vous devrez effectuer vous-même le filtrage.
Firebase est un compte sans frais au départ, mais vous serez facturé si vous dépassez un certain seuil d'utilisation. Si vous prévoyez d'envoyer des messages à des groupes spécifiques, le filtrage côté client risque de coûter plus que ce qui est justifié. Pour contourner ce problème, vous pouvez créer plusieurs projets pour répliquer des chaînes individuelles (un projet et un ID d'expéditeur pour chaque chaîne). Une extension donnée peut s'enregistrer pour plusieurs ID d'expéditeur, jusqu'à 100.
Si vous avez besoin de la prise en charge de canaux ou si vous souhaitez utiliser des notifications push sans passer par Firebase, vous pouvez utiliser l'API Push.