Como implementar notificações push no Android com Sendbird Chat e Firebase

Taha
Taha Saghir
Solutions Engineer
  • Tutorial Type: Basics
  • Reading Time: 10 min
  • Building Time: 1 hr
Chat SDK v4 2x

Swift, Kotlin, and TypeScript SDKs

Build in-app chat, calls, and live streaming

Introdução: O que são notificações push e por que são importantes?

Uma notificação push é uma mensagem entregue imediatamente ao dispositivo de um usuário quando o dispositivo está ocioso ou executando o aplicativo cliente em segundo plano. As notificações push são importantes porque fornecem informações e atualizações importantes e aumentam o envolvimento do usuário com seu aplicativo. Além disso, as notificações push são um canal de marketing poderoso pelo qual você pode atingir os usuários certos, fornecer conteúdo significativo, aumentar as taxas de conversão e aprimorar sua estratégia de atendimento ao cliente. Na verdade, de acordo com RubyGarage, as organizações que implementam notificações push têm uma retenção de clientes 3 vezes maior e um envolvimento 88% maior do que as empresas que não o fazem! Nosso guia para notificações push para dispositivos móveis tem tudo o que você precisa saber sobre notificações push, seus benefícios e como elas podem ser usadas.

Este tutorial fornece instruções passo a passo para implementar notificações push do Android.

Pré-requisitos

  1. Crie uma conta Sendbird
  2. Certifique-se de que Sendbird Chat funcione bem em seu aplicativo Android. Você pode conferir o guia de implementação do Kotlin ou este tutorial sobre construindo um aplicativo de bate-papo Android com UIKit. Os documentos contêm orientações adicionais para implementar bate-papo em tempo real no seu aplicativo Android.

É importante entender que as notificações push em aplicativos clientes Android são enviadas usando Firebase Cloud Messaging (FCM) ou Huawei Mobile Service (HMS) e contêm dados personalizados que seu aplicativo precisa para responder às notificações. Quando uma mensagem é enviada ao servidor Sendbird a partir de um aplicativo (por meio do Chat SDK para Android), o servidor se comunica com o FCM ou o HMS e, em seguida, o FCM ou o HMS entrega uma notificação push ao dispositivo Android. Este artigo se concentra na configuração de notificações push com o FCM.

Sendbird oferece duas opções para notificações push: notificações push gerais e notificações push com suporte para vários dispositivos.

As notificações push gerais suportam usuários de dispositivos únicos e múltiplos e são entregues somente quando um usuário está totalmente offline (desconectado do servidor) de todos os dispositivos. Em outras palavras, se um usuário estiver online em um ou mais dispositivos, as notificações não serão entregues e, portanto, não serão exibidas em nenhum dispositivo. Por outro lado, as notificações push com suporte para vários dispositivos são entregues a todos os dispositivos offline, mesmo quando um usuário está online em um ou mais dispositivos.

Notificações push para Android: FCM

Existem dois tipos de mensagens FCM: mensagens de notificação e mensagens de dados. De acordo com a documentação do Firebase, “As mensagens de notificação têm um conjunto predefinido de chaves visíveis ao usuário e uma carga útil de dados opcional de pares de chave-valor personalizados”. Por outro lado, as mensagens de dados contêm apenas pares de valores-chave definidos pelo usuário. Sendbird usa mensagens de dados, permitindo que aplicativos clientes criem a carga útil da mensagem personalizada que consiste nesses pares de valores-chave personalizados.

Siga as etapas abaixo para configurar as notificações push para o FCM. Antes de começar, verifique se você tem acesso ao Console do Firebase.

Vamos mergulhar! 💻

Passo 1: Obter a chave do servidor para FCM

O servidor Sendbird requer uma chave de servidor FCM para enviar solicitações de notificação ao FCM em seu nome. Você pode visualizar a chave do servidor FCM da seguinte maneira:

1. Faça login no Console do Firebase. Crie um novo projeto do Firebase ou use o existente, caso já o tenha.

Fazendo login no Firebase

2. Abra seu projeto e navegue até ‘Configurações do projeto’ conforme mostrado na imagem.

Configurações do projeto Firebase

3. Vá para ‘Mensagens na nuvem > Credenciais do projeto e copie a chave do servidor para ser usada posteriormente.

Copiar chave do servidor

Passo 2: Registrar a chave do servidor FCM no painel Sendbird

Registre sua chave de servidor no servidor Sendbird por meio do painel da seguinte maneira. Observe que a chave do servidor também pode ser registrada usando a ação adicionar uma configuração push do FCM da API da Chat Platform.

1. Faça login no painel do Sendbird e navegue até ‘Configurações > Bate-papo> Notificações'.

Faça login no painel Sendbird

2. Ative ‘Notificações’ e selecione a opção ‘Enviar para dispositivos quando todos estiverem off-line’.

Ative as notificações

3. Clique no botão ‘Adicionar credenciais’ ao lado das credenciais do FCM. Insira a chave do servidor FCM copiada na Etapa 1.

Insira a chave do servidor FCM

Passo 3: Configurar um aplicativo cliente FCM no seu projeto Android

Agora adicionaremos as configurações e dependências do FCM ao seu projeto Android. 

1. Volte para o seu projeto no console do FCM. Clique em ‘Adicionar aplicativo’ e selecione a plataforma Android

Adicione seu aplicativo Android

2. No assistente Adicionar aplicativo, insira o nome do seu pacote. Dica: o nome do seu pacote geralmente é ‘applicationId’ no arquivo ‘build.gradle’ no nível do aplicativo.

3. Baixe o arquivo ‘google-services.json’ e coloque-o no diretório raiz do módulo do aplicativo Android.

Baixe o arquivo ‘google-services.json’ e coloque-o no diretório raiz do módulo do aplicativo Android.

4. Adicione a dependência da biblioteca Cloud Messaging Android ao seu arquivo build.gradle conforme abaixo:
Observação: a versão do firebase-messaging deve ser 19.0.1 ou superior.

dependencies {    ...

    implementation 'com.google.firebase:firebase-messaging:20.1.0'

}

Passo 4: Registrar um token de push no servidor Sendbird

Para enviar mensagens de notificação para um aplicativo cliente específico em um dispositivo Android, o FCM requer um token de registro da instância do aplicativo, emitido pelo aplicativo cliente. Portanto, o servidor Sendbird também precisa do token de registro de cada instância do aplicativo cliente para enviar solicitações de notificação ao FCM em seu nome.

Após a inicialização do seu aplicativo, o SDK do FCM gera um token de registro exclusivo e específico do aplicativo para a instância do aplicativo cliente no dispositivo do usuário. O FCM usa esse token de registro para determinar o dispositivo para o qual as mensagens de notificação precisam ser enviadas. Você pode acessar esse token estendendo ‘com.sendbird.android.SendBirdPushHandler’ e substituindo ‘onNewToken’. O ‘SendBirdPushHandler’ registra internamente este token no servidor Sendbird.

Aqui está o exemplo de implementação:

O push token registrado aparece no painel em ‘Usuários > ID_do_usuário > Bater papo':

Token de envio registrado

Passo 5: Adicionar os manipuladores de evento de push

Para receber informações do servidor Sendbird sobre eventos de notificação push para o usuário atual, registre uma instância ‘MyFireBaseMessagingService’ no ‘SendBirdPushHelper’ como um manipulador de eventos. Faça isso no método ‘onCreate()’ da instância ‘Application’ da seguinte forma:

Além disso, registre uma instância ‘MyFireBaseMessagingService’ quando um usuário se conectar ao servidor Sendbird da seguinte forma:

Além disso, antes de desconectar o usuário do servidor Sendbird, cancele o registro de todos os push tokens para que ele não receba nenhuma notificação.

Passo 6: Manipular um payload de mensagem FCM

Conforme descrito anteriormente, o servidor Sendbird envia cargas de notificação push como mensagens de dados FCM. A carga útil consiste em duas propriedades: mensagem e sendbird. A propriedade message é uma string gerada de acordo com um modelo de notificação que você definiu no painel Sendbird. A propriedade sendbird é um objeto JSON que contém todas as informações sobre a mensagem que um usuário enviou.

Conforme mostrado no exemplo de implementação, na etapa 4, você pode mostrar as mensagens analisadas aos usuários como uma notificação usando seu método personalizado ‘sendNotification()’.

Dicas para solucionar problemas com notificações push

A solução de problemas de notificações push pode ser complexa; aqui estão algumas dicas sobre como fazer isso.

  1. Para facilitar aos desenvolvedores a depuração e a solução de problemas de notificações push, criamos uma ferramenta de teste que pode ser útil. Consulte este tutorial para entender como usar a ferramenta, que você pode acessar através do painel do Sendbird.
  2. Confira este guia abrangente para solucionar problemas de notificações push de bate-papo no Android.
  3. Se você quiser depurar condições de falha, consulte os códigos de erro do FCM.

Conclusão

E pronto! Agora você sabe enviar notificações push para aplicativos Android com Sendbird Chat. Com as orientações deste tutorial e os documentos, você estará no caminho certo para enviar notificações push oportunas, relevantes e envolventes rapidamente!

Estamos sempre aqui para ajudar; entre em contato conosco se tiver alguma dúvida, comentário ou preocupação.

Feliz construção de notificações push! 💻 Mal podemos esperar para ver o que você construirá!