Como adicionar push notification no BLiP Chat Android 4 de julho de 2024 13:56 Atualizado Índice: Configurar FCM no aplicativo Registrar o token FCM dos usuários no BLiP Chat Enviar arquivo de chave privada de sua conta de serviço Testando a integração Em alguns cenários específicos, pode ser necessário adicionar push notification em aplicativos Android que embarcam o BLiP Chat. Através do Push Notification é possível notificar o usuário sobre mensagens não lidas. Para isso são necessárias algumas configurações específicas entre o aplicativo (que está embarcando o BLiP Chat), o FCM (Firebase Cloud Messaging) e o BLiP. Abaixo estão descritas as etapas necessárias para realizar essas configurações. 1 - Configurar FCM no aplicativo Adicione o Firebase ao seu projeto Android, caso ainda não tenha feito isso.Configure um app cliente do Firebase Cloud Messaging no seu projeto Android. 2 - Registrar o token FCM dos usuários no BLiP Chat Para que o BLiP Chat envie notificações é necessário registrar o token do usuário no servidor do BLiP. É através desta informação que o BLiP consegue determinar qual a credencial FCM (Google) de um usuário do BLiP Chat. Importante: A integração com o FCM foi homologada a princípio somente utilizando a nossa biblioteca nativa do Android em projetos também nativos. Usos com Flutter ou integrações em WebView ainda não foram completamente testadas e documentadas. O token do usuário deve ser capturado utilizando o método onTokenRefresh da sua classe que herda de FirebaseInstanceIdService. @Override public void onTokenRefresh() { // Get updated InstanceID token. String refreshedToken = FirebaseInstanceId.getInstance().getToken(); // Store token to send later when connecting to blip chat. storeTokenUsingAnyMethod(refreshedToken); } O token armazenado deve ser passado para o BLiP Chat quando o client (BlipClient) é carregado. Para isso, é necessário passar o token (FCM) do usuário concatenado com @firebase.gw.msging.net na propriedade extras da conta do usuário. O valor deve ser definido como um item da propriedade ‘extras’ do ‘Account’. A propriedade ‘extras’ é um Map<String,String>, o item deve ter a chave "#inbox.forwardTo" e o valor “{storedToken}@firebase.gw.msging.net”. Veja o exemplo abaixo: AuthConfig authConfig = new AuthConfig(AuthType.Dev, "userIdentifier","userPassword"); Map<String, String> extras = new HashMap<>(); String fcmUserToken = "stored_user_token"; extras.put("#inbox.forwardTo", String.format("%s@firebase.gw.msging.net", fcmUserToken)); Account account = new Account(); account.setFullName("User Name"); account.setEmail("user@gmail.com"); account.setEncryptMessageContent(true); account.setExtras(extras); BlipOptions blipOptions = new BlipOptions(); blipOptions.setAuthConfig(authConfig); blipOptions.setAccount(account); BlipClient.openBlipThread(MainActivity.this, BuildConfig.APPKEY, blipOptions); 3 - Enviar arquivo de chave privada de sua conta de serviço Além das configurações 1 e 2, é necessário enviar para o BLiP um arquivo com as chaves privadas do seu projeto FCM. Para gerar o arquivo com essas configurações, siga os passos abaixo: No Firebase console, abra Configurações > Contas de serviço. Clique em Gerar nova chave privada e confirme clicando em Gerar chave. Armazene com segurança o arquivo JSON que contém a chave. Envie um email (sem anexar o arquivo) para blip@blip.ai com o assunto Integração FCM. A equipe do BLiP responderá o email informando onde o arquivo de chave privada deverá ser armazenado. Obs.: Não anexe o arquivo de chave privada no email. Após todos os passos acima o seu aplicativo já pode receber as mensagens. Nota: Atualmente, para realizar este processo abra um chamado no suporte (https://support.blip.ai/), enviando o arquivo JSON gerado e solicitando as informações. Testando a integração Crie uma classe que herda de FirebaseMessagingService para consumir os pushes enviados pelo BLiP através do método abaixo: @Override public void onMessageReceived(RemoteMessage remoteMessage) { // TODO(developer): Handle FCM messages here. // Check if message contains a data payload. if (remoteMessage.getData().size() > 0) { Log.d(TAG, "Message data payload: " + remoteMessage.getData()); // Handle message within 10 seconds handleNow(); } } O retorno do método remoteMessage.getData() é um Map<String, String> com 3 itens, os quais representam uma mensagem no protocolo utilizado pelo BLiP Chat. ‘id’ = identificador da mensagem‘content’ = json do conteúdo da mensagem.‘type’ = tipo da mensagem. Os conteúdos e tipos das mensagens são exemplificados aqui Para mais informações, acesse a discussão sobre o assunto em nossa comunidade ou os vídeos no nosso canal. 😃 Artigos relacionados Como adicionar um bot em um aplicativo Android utilizando o BLiP Chat? Funcionalidades do Blip Chat Widget Como adicionar um bot em um aplicativo iOS utilizando o BLiP Chat? Como adicionar um bot em um site utilizando o Blip Chat? Como enviar SMS via API
Índice: Configurar FCM no aplicativo Registrar o token FCM dos usuários no BLiP Chat Enviar arquivo de chave privada de sua conta de serviço Testando a integração Em alguns cenários específicos, pode ser necessário adicionar push notification em aplicativos Android que embarcam o BLiP Chat. Através do Push Notification é possível notificar o usuário sobre mensagens não lidas. Para isso são necessárias algumas configurações específicas entre o aplicativo (que está embarcando o BLiP Chat), o FCM (Firebase Cloud Messaging) e o BLiP. Abaixo estão descritas as etapas necessárias para realizar essas configurações. 1 - Configurar FCM no aplicativo Adicione o Firebase ao seu projeto Android, caso ainda não tenha feito isso.Configure um app cliente do Firebase Cloud Messaging no seu projeto Android. 2 - Registrar o token FCM dos usuários no BLiP Chat Para que o BLiP Chat envie notificações é necessário registrar o token do usuário no servidor do BLiP. É através desta informação que o BLiP consegue determinar qual a credencial FCM (Google) de um usuário do BLiP Chat. Importante: A integração com o FCM foi homologada a princípio somente utilizando a nossa biblioteca nativa do Android em projetos também nativos. Usos com Flutter ou integrações em WebView ainda não foram completamente testadas e documentadas. O token do usuário deve ser capturado utilizando o método onTokenRefresh da sua classe que herda de FirebaseInstanceIdService. @Override public void onTokenRefresh() { // Get updated InstanceID token. String refreshedToken = FirebaseInstanceId.getInstance().getToken(); // Store token to send later when connecting to blip chat. storeTokenUsingAnyMethod(refreshedToken); } O token armazenado deve ser passado para o BLiP Chat quando o client (BlipClient) é carregado. Para isso, é necessário passar o token (FCM) do usuário concatenado com @firebase.gw.msging.net na propriedade extras da conta do usuário. O valor deve ser definido como um item da propriedade ‘extras’ do ‘Account’. A propriedade ‘extras’ é um Map<String,String>, o item deve ter a chave "#inbox.forwardTo" e o valor “{storedToken}@firebase.gw.msging.net”. Veja o exemplo abaixo: AuthConfig authConfig = new AuthConfig(AuthType.Dev, "userIdentifier","userPassword"); Map<String, String> extras = new HashMap<>(); String fcmUserToken = "stored_user_token"; extras.put("#inbox.forwardTo", String.format("%s@firebase.gw.msging.net", fcmUserToken)); Account account = new Account(); account.setFullName("User Name"); account.setEmail("user@gmail.com"); account.setEncryptMessageContent(true); account.setExtras(extras); BlipOptions blipOptions = new BlipOptions(); blipOptions.setAuthConfig(authConfig); blipOptions.setAccount(account); BlipClient.openBlipThread(MainActivity.this, BuildConfig.APPKEY, blipOptions); 3 - Enviar arquivo de chave privada de sua conta de serviço Além das configurações 1 e 2, é necessário enviar para o BLiP um arquivo com as chaves privadas do seu projeto FCM. Para gerar o arquivo com essas configurações, siga os passos abaixo: No Firebase console, abra Configurações > Contas de serviço. Clique em Gerar nova chave privada e confirme clicando em Gerar chave. Armazene com segurança o arquivo JSON que contém a chave. Envie um email (sem anexar o arquivo) para blip@blip.ai com o assunto Integração FCM. A equipe do BLiP responderá o email informando onde o arquivo de chave privada deverá ser armazenado. Obs.: Não anexe o arquivo de chave privada no email. Após todos os passos acima o seu aplicativo já pode receber as mensagens. Nota: Atualmente, para realizar este processo abra um chamado no suporte (https://support.blip.ai/), enviando o arquivo JSON gerado e solicitando as informações. Testando a integração Crie uma classe que herda de FirebaseMessagingService para consumir os pushes enviados pelo BLiP através do método abaixo: @Override public void onMessageReceived(RemoteMessage remoteMessage) { // TODO(developer): Handle FCM messages here. // Check if message contains a data payload. if (remoteMessage.getData().size() > 0) { Log.d(TAG, "Message data payload: " + remoteMessage.getData()); // Handle message within 10 seconds handleNow(); } } O retorno do método remoteMessage.getData() é um Map<String, String> com 3 itens, os quais representam uma mensagem no protocolo utilizado pelo BLiP Chat. ‘id’ = identificador da mensagem‘content’ = json do conteúdo da mensagem.‘type’ = tipo da mensagem. Os conteúdos e tipos das mensagens são exemplificados aqui Para mais informações, acesse a discussão sobre o assunto em nossa comunidade ou os vídeos no nosso canal. 😃