É possível enviar e receber mensagens para usuários finais com chrome.gcm. Como ele é baseado no Firebase Cloud Messaging (FCM), depende de um serviço externo que você precisa configurar. Este guia orienta você em todas as etapas necessárias para fazer com que ele funcione na sua extensão.
Embora o chrome.gcm
ainda tenha suporte, ele foi criado há mais de uma década, antes
do padrão Push. Em geral, é sempre uma prática recomendada usar o padrão da Web, em vez de uma API específica para a extensão. A menos que você tenha uma necessidade específica
de usar chrome.gcm
, recomendamos o uso de Push.
Pré-requisitos
Para usar chrome.gcm
, você precisa configurar uma conta do Firebase.
Depois de criar uma conta, abra o console do Firebase e selecione um projeto existente para usar ou crie um novo para sua extensão.
Acesse a página de configurações da Mensagem do Cloud.
Se você já tiver uma conta do Cloud Messaging nesse projeto, copie o ID do remetente numérico listado.
Se a mensagem na nuvem não estiver ativada, será necessário ativar a API Cloud Messaging do Firebase para o projeto no Google Cloud. Na imagem a seguir, você pode conferir onde há um link direto para esta página nas configurações do Firebase.
Depois de ativar, volte à página de configurações do Cloud Messaging e copie o ID do remetente.
Configurar o chrome.gcm
Agora que você tem o ID do remetente do Firebase, pode configurar a extensão
para detectar mensagens. Para começar, verifique se você adicionou a permissão gcm
ao manifest.json
da sua extensão.
{
"manifest_version": 3,
...
"permissions": ["gcm"]
Agora você tem acesso à API chrome.gcm
. Você pode se registrar para receber mensagens
de push chamando chrome.gcm.register
.
Ouvir mensagens
Depois que a extensão registrar seu ID do remetente, será necessário adicionar um código para processar as mensagens recebidas.
Firebase sem Firebase
Embora o chrome.gcm
sempre passe pelo Firebase, ele pode ser configurado para
atuar como um proxy para fornecedores externos de mensagens push. Normalmente, os fornecedores listam explicitamente o suporte a extensões do Chrome. No entanto, qualquer fornecedor que ofereça suporte a notificações push legadas do Firebase deve funcionar. Se o provedor indicar
suporte para as notificações push legadas do Firebase, teste essa opção. Se você tiver
problemas, o suporte do provedor poderá esclarecer as restrições
existentes.
Sobre canais e temas
chrome.gcm
está usando as APIs legadas do Firebase Messaging. Isso é importante porque a API legada não é compatível com canais de mensagens. Cada mensagem
enviada vai ser enviada para todos os clientes. Se a extensão de um usuário tiver interesse apenas em um
subconjunto de mensagens, você vai precisar fazer a filtragem.
Embora o Firebase comece como uma conta sem custo financeiro, você vai receber cobranças quando ultrapassar um determinado limite de uso. Se você planeja enviar mensagens para grupos específicos, a filtragem do lado do cliente pode custar mais do que o garantido. Para contornar esse problema, crie vários projetos para replicar canais individuais (um projeto e um ID do remetente para cada canal). Qualquer extensão pode se registrar para vários IDs do remetente, até 100.
Como alternativa, se você precisar de suporte a canais ou quiser usar notificações push sem passar pelo Firebase, utilize a API Push.