Etapas de integração do Freshchat React Native SDK

Criada por Isabelle Lemes, Modificado em Wed, 01 Mar 2023 na (o) 09:44 AM por Isabelle Lemes

ÍNDICE

Pré-requisitos 

Obtenha seu APP ID, APP Key e Domain

1. Adicionando o Freshchat SDK ao seu projeto

1.1. Configuração do iOS

1.2. Configuração do Android

2. Inicialização do SDK

2.1 Opções de configuração de inicialização

3. Informações do usuário

3.1 Atualização das informações do usuário

3.2 Atualizando Propriedades do Usuário (Metadados)

3.3 Redefinir dados do usuário

3.4 Restaurar usuário

3.5 Obter ID de usuário do Freshchat

4. Iniciando a solução de suporte

4.1 Conversas

4.1.1 Filtrando tópicos de conversa

4.1.2 Contagem não lida

4.2. Perguntas frequentes

4.2.1 Opções de perguntas frequentes

4.2.2 Filtrando categorias de FAQ por tags

4.2.3 Filtrando artigos de FAQ por tags

4.2.4 Filtrar tópicos de mensagens exibidos ao clicar em "Fale conosco" nas perguntas frequentes por tags

5. API de envio de mensagem

6. Notificações push

6.1.1 Integração do lado do servidor

6.1.2 Integração do lado do cliente

6.2 Personalizando Notificações (somente Android)

6.3 Lista de Verificação de Notificação Push

7. Outras Notas


Pré-requisitos 

  • RN v0.60 e superior terão suporte do Freshchat SDK v2.0.0.


Obtenha seu APP ID, APP Key e Domain

  • Sua conta do Freshchat está associada a um APP ID e uma chave de APP exclusivos que você pode usar para integrar seu SDK móvel ao Freshchat.
  • Faça login na sua conta do Freshchat como proprietário/administrador da conta > navegue até  Admin > Mobile SDK . Você pode encontrar seu APP ID, APP Key e Domain aqui. 




1. Adicionando o Freshchat SDK ao seu projeto

  • O nome do pacote do nó Freshchat é 'react-native-freshchat-sdk'.
  • No arquivo Package.json do seu projeto nativo react, em dependências, adicione ”react-native-freshchat-sdk”: “{{latest-version}}”
  • Para a versão mais recente do SDK, consulte o seguinte link: https://www.npmjs.com/package/react-native-freshchat-sdk


1.1. Configuração do iOS

Versão RN
Versão do Freshchat

Passos

0,60+

2.0.0+

Execute o comando abaixo para vincular automaticamente o SDK 

cd ios 

pod instalar


< 0,60

2.0.0+

1. Certifique-se de que o Podfile exista dentro do diretório do seu projeto ios. Caso contrário, inicialize o pod dentro do diretório do projeto ios e adicione a dependência do React ao seu podfile. As dependências do React estão disponíveis abaixo desta tabela.

2. Em seguida, vincule o SDK do Freshchat nativo do React usando o seguinte comando,

link react-native react-native-freshchat-sdk

< 0,60

< 2.0.0

1. Vincule o SDK do Freshchat nativo do React usando o seguinte comando,

link react-native react-native-freshchat-sdk


2. Vá para a pasta ios do seu projeto nativo de reação.

3. Adicione uma entrada para FreshchatSDK conforme mostrado abaixo no Podfile,

alvo 'NomedoProjeto' faça

pod 'FreshchatSDK', :path=> '../node_modules/react-native-freshchat-sdk/ios/FreshchatSDK.podspec'

fim


4. Execute a instalação do pod a partir do diretório do iOS

0,60+

< 2.0.0

Apenas Freshchat SDK 2.0.0+ será compatível com RN v0.60+.


Dependências de reação quando RN < 0,60 e Freshchat SDK 2.0.0+


# React Native requirements
pod 'React', :path => '../node_modules/react-native', :subspecs => [
'Core',
'CxxBridge', # Include this for RN >= 0.47
'DevSupport', # Include this to enable In-App Devmenu if RN >= 0.43
'RCTText',
'RCTNetwork',
'RCTWebSocket', # Needed for debugging
'RCTAnimation', # Needed for FlatList and animations running on native UI thread
# Add any other subspecs you want to use in your project
]
# Explicitly include Yoga if you are using RN >= 0.42.0
pod 'yoga', :path => '../node_modules/react-
native/ReactCommon/yoga'
pod 'DoubleConversion', :podspec => '../node_modules/react-
native/third-party-podspecs/DoubleConversion.podspec'
pod 'glog', :podspec => '../node_modules/react-native/third-party-
podspecs/glog.podspec'
pod 'Folly', :podspec => '../node_modules/react-native/third-party-
podspecs/Folly.podspec'
JavaScript


Migrando uma integração existente do Freshchat para o Freshchat SDK 2.0.0+

  • Desvincule o SDK do Freshchat nativo do React do seu projeto de reação usando o seguinte comando. 
react-native unlink react-native-freshchat-sdk
Genérico


  • Remova a seguinte linha do Podfile dentro do seu projeto iOS. pod 'FreshchatSDK', :path=> '../node_modules/react-native-freshchat-sdk/ios/FreshchatSDK.podspec'
  • Consulte a coluna tabular acima e escolha as etapas conforme sua necessidade.


1.2. Configuração do Android

Adicione maven { url " https://jitpack.io " } ao seu arquivo build.gradle de nível de projeto.


allprojects
{    repositories
{        .....        maven { url "https://jitpack.io"
}    }
}
Genérico

Se você estiver usando a versão RN < 0.60, execute o comando abaixo:

react-native link react-native-freshchat-sdk
Genérico

2. Inicialização do SDK

Invoque Freshchat.init() com o id e a chave do aplicativo antes de invocar/tentar usar qualquer outro recurso do Freshchat SDK.


É altamente recomendável invocar init() na inicialização da tela de inicialização/suporte do aplicativo. O Freshchat SDK verifica a presença de seus componentes durante init() e avisará sobre componentes ausentes quando detectar que os componentes estão ausentes ou suas entradas de manifesto estão ausentes. 


Substitua YOUR-APP-ID e YOUR-APP-KEY no snippet de código a seguir pelo ID e chave do aplicativo reais.

import { Freshchat, FreshchatConfig } from 'react-native-freshchat-sdk';
var freshchatConfig = new FreshchatConfig(APP_ID, APP_KEY);
freshchatConfig.domain = "YOUR-DOMAIN";
Freshchat.init(freshchatConfig);
Genérico



2.1 Opções de configuração de inicialização

Ative ou desative recursos como captura de câmera, especificando-o na configuração antes da inicialização.  

var freshchatConfig = new FreshchatConfig(APP_ID, APP_KEY);
freshchatConfig.domain = "YOUR-DOMAIN";
freshchatConfig.teamMemberInfoVisible = true;
freshchatConfig.cameraCaptureEnabled = true;
freshchatConfig.gallerySelectionEnabled = true;
freshchatConfig.responseExpectationEnabled = true;
freshchatConfig.showNotificationBanner = true; //iOS only
freshchatConfig.notificationSoundEnabled = true; //iOS only
freshchatConfig.themeName = "CustomTheme.plist"; //iOS only
freshchatConfig.stringsBundle = "FCCustomLocalizable"; //iOS only
Freshchat.init(freshchatConfig);
Genérico



3. Informações do usuário


3.1 Atualização das informações do usuário

Você pode enviar informações básicas do usuário a qualquer momento para fornecer mais contexto sobre o usuário quando seus agentes de suporte estiverem trocando mensagens com eles. 


import { FreshchatUser } from 'react-native-freshchat-sdk';
var freshchatUser = new FreshchatUser();
freshchatUser.firstName = "John";
freshchatUser.lastName = "Doe";
freshchatUser.email = "johndoe@dead.man";
freshchatUser.phoneCountryCode = "+91";
freshchatUser.phone = "1234234123";
Freshchat.setUser(freshchatUser, (error) =>
{    console.log(error)})
JavaScript


3.2 Atualizando Propriedades do Usuário (Metadados)

Você pode capturar e enviar metadados adicionais sobre o usuário e os eventos no aplicativo, o que também se torna uma forma de segmentar seus usuários para posteriormente enviar mensagens para eles.

/var userPropertiesJson = {    "user_type": "Paid",    "plan": "Gold"
}
Freshchat.setUserProperties(userPropertiesJson, (error) => {    console.log(error);
});
JavaScript

3.3 Redefinir dados do usuário

Redefina os dados do usuário ao sair ou quando for considerado apropriado com base na ação do usuário no aplicativo invocando a API resetUser. 

Freshchat.resetUser();
JavaScript

3.4 Restaurar usuário

Para reter as mensagens de bate-papo em dispositivos/sessões/plataformas, o aplicativo móvel precisa passar o mesmo id externo e restaurar a combinação de id para o usuário. Isso permitirá que os usuários captem a conversa de qualquer uma das plataformas suportadas - Android, iOS e Web.


  • Id externo: deve (idealmente) ser um identificador exclusivo para o usuário do seu sistema, como um id de usuário ou id de e-mail, etc. e é definido usando a API Freshchat.identifyUser(). Isso não pode ser alterado depois de definido para o usuário
  • Id de restauração: gerado pelo Freshchat para o usuário atual, dado que um id externo foi definido e pode ser recuperado a qualquer momento usando a API Freshchat.getUser().getRestoreId(). O aplicativo é responsável por armazenar e, posteriormente, apresentar a combinação de id externo e ID de restauração ao SDK do Freshchat para continuar as conversas de bate-papo em sessões no mesmo dispositivo ou em dispositivos e plataformas.



Observação: a ID de restauração para um usuário geralmente é gerada apenas quando o usuário envia uma mensagem. 
As notificações são suportadas em apenas um dispositivo móvel a qualquer momento e é atualmente o último dispositivo restaurado ou dispositivo com o último token push atualizado



Para definir o ID externo

Freshchat.identifyUser("EXTERNAL_ID", null, (error) => {    console.log(error);
});
JavaScript

Para recuperar o id de restauração

Freshchat.getUser((user) => {            var restoreId = user.restoreId;            console.log("restoreId: " + restoreId);        })
JavaScript

Para pesquisar e restaurar o usuário por id externo e restaurar o id

Freshchat.identifyUser("EXTERNAL_ID", "RESTORE_ID", (error) =>
{    console.log(error);
});
JavaScript


Para ouvir o evento gerado pelo ID de restauração

A geração de ID de restauração é um processo assíncrono. Você precisa ouvir esse evento durante todo o ciclo de vida do aplicativo. Normalmente, a geração acontece depois que o usuário inicia uma conversa.


Registre -se para o evento gerado pelo id de restauração

Freshchat.addEventListener(
Freshchat.EVENT_USER_RESTORE_ID_GENERATED,    () => {        console.log("onRestoreIdUpdated triggered");        Freshchat.getUser((user) =>
{            var restoreId = user.restoreId;            var externalId = user.externalId;            console.log("externalId: " + externalId);            console.log("restoreId: " + restoreId);        })    }
);
JavaScript


3.5 Obter ID de usuário do Freshchat

Você pode obter o identificador exclusivo de seu usuário usando a API getFreshchatUserId().


Freshchat.getFreshchatUserId((data) => 
{        console.log(data);        });
Genérico


4. Iniciando a solução de suporte

Use os snippets abaixo para iniciar a experiência de suporte baseada em perguntas frequentes ou conversas a partir de uma frase de chamariz em seu aplicativo. Sua chamada para ação ou ponto de entrada pode ser um botão na tela ou um item de menu.


4.1 Conversas

Em resposta a eventos de interface do usuário específicos, como uma seleção de menu ou botão no evento de clique, invoque a API showConversations() para iniciar o fluxo de conversa. Se o aplicativo tiver vários tópicos configurados, o usuário verá a lista de tópicos . A lista de Tópicos é ordenada conforme especificado no Painel (link para a lista de Tópicos no painel) quando não há mensagens. Quando as mensagens estão presentes, a ordem é baseada no usado mais recentemente primeiro 



Observação: somente tópicos com visibilidade definida como "Visível para todos os usuários" serão exibidos ao usar a API showConversations()


Iniciando a lista de conversas com o clique de um botão na tela do seu aplicativo

Freshchat.showConversations();
JavaScript


4.1.1 Filtrando Tópicos

Para filtrar e exibir apenas tópicos marcados com um termo específico, use a API filterByTags na instância ConversationOptions passada para a API showConversations() conforme abaixo.


Por exemplo: Para vincular e exibir apenas tópicos específicos da página de pedidos em seu aplicativo, esses tópicos específicos podem ser marcados com o termo "order_queries".

import { ConversationOptions } from 'react-native-freshchat-sdk';
var conversationOptions = new ConversationOptions();
conversationOptions.tags = ["premium"];
conversationOptions.filteredViewTitle = "Premium Support";
Freshchat.showConversations(conversationOptions);
Genérico


Nota: Se nenhum tópico correspondente for encontrado, o usuário será redirecionado para o tópico padrão. 
Os tópicos que normalmente não são visíveis ao usar a API showConversations() também serão exibidos quando marcados e a tag específica for passada para a API filterByTags da instância ConversationOptions passada para a API showConversations().


4.1.2 Contagem não lida

Se você deseja obter o número de mensagens não lidas para o usuário na inicialização do aplicativo ou em qualquer outro evento específico, use a API getUnreadCountAsync e exiba a contagem.

Freshchat.getUnreadCountAsync((data) => {    console.log(data);
});
JavaScript

O aplicativo também pode optar por ouvir as alterações na contagem não lida quando o aplicativo estiver aberto. 


Ouvir o evento de contagem de mensagens não lidas

Freshchat.addEventListener(
Freshchat.EVENT_UNREAD_MESSAGE_COUNT_CHANGED,    () => {        console.log("onUnreadMessageCountChanged triggered");        Freshchat.getUnreadCountAsync((data) => {            var count = data.count;            var status = data.status;
if (status) {                console.log("Message count: " + count);            } else {                console.log("getUnreadCountAsync unsuccessful");            }        });    }
);
JavaScript


4.1.3 Contagem de mensagens não lidas em conversas filtradas por tags


Se você deseja obter o número de mensagens não lidas para o usuário em conversas específicas filtradas por tags, use a API getUnreadCountAsync.


const getUnreadCountAsyncForTags = () => {    Freshchat.getUnreadCountAsync(
{            tags: ["new", "test"]        },        (data) => {            console.log(data);        });
};
JavaScript


4.2. Perguntas frequentes

Em resposta a eventos específicos da interface do usuário, como uma seleção de menu ou botão no evento de clique, invoque a API showFAQs() para iniciar a tela de perguntas frequentes. Por padrão, as categorias de perguntas frequentes são exibidas como uma grade com um botão "Fale conosco" na parte inferior. Para personalizar isso, verifique as opções de perguntas frequentes.

Freshchat.showFAQs();
JavaScript

4.2.1 Opções de perguntas frequentes

Personalizações para o fluxo de FAQ podem ser obtidas especificando as opções relevantes na instância FaqOptions passada para a API showFAQs().

import { FaqOptions } from 'react-native-freshchat-sdk';
var faqOptions = new FaqOptions();
faqOptions.tags = ["premium"];
faqOptions.filteredViewTitle = "Tags";
faqOptions.filterType = FaqOptions.FilterType.ARTICLE;
Freshchat.showFAQs(faqOptions);
JavaScript
  • filtradoViewTitle: título dado à página da lista de resultados do filtro aplicado. 
  • tags: nome das tags com base em qual filtro é aplicado. 
  • filterType: Categoria/Artigo. Categoria - combinação de artigos e subcategorias. Artigo - contém apenas artigos.


Nota: Quando não houver correspondência no filtro aplicado, ele exibirá todas as categorias do FAQ por padrão.



4.2.2 Filtrando categorias de FAQ por tags

Para filtrar e exibir apenas categorias de perguntas frequentes marcadas com um termo específico, use a API filterByTags com tipo de filtro como categoria na instância FAQOptions passada para a API showFAQs() conforme abaixo.


Por exemplo: Para exibir categorias de FAQ relacionadas a um tipo de usuário específico, essas categorias de FAQ específicas podem ser marcadas com o termo "premium".

import { FaqOptions } from 'react-native-freshchat-sdk';
var faqOptions = new FaqOptions();
faqOptions.tags = ["premium"];
faqOptions.filteredViewTitle = "Tags";
faqOptions.filterType = FaqOptions.FilterType.CATEGORY;
Freshchat.showFAQs(faqOptions);
Genérico


4.2.3 Filtrando artigos de FAQ por tags

Para filtrar e exibir apenas as perguntas frequentes marcadas com um termo específico, use a API filterByTags com o tipo de filtro como artigo na instância FAQOptions passada para a API showFAQs() conforme abaixo. 


Observação: as perguntas frequentes também herdam as marcas da categoria principal de perguntas frequentes.


Por exemplo: Para vincular as perguntas frequentes relacionadas à falha de pagamento, essas perguntas específicas podem ser marcadas com o termo "payment_failure" e podem ser vinculadas a partir da página de pagamentos no aplicativo.

import { FaqOptions } from 'react-native-freshchat-sdk';
var faqOptions = new FaqOptions();
faqOptions.tags = ["premium"];
faqOptions.filteredViewTitle = "Tags";
faqOptions.filterType = FaqOptions.FilterType.ARTICLE;
Freshchat.showFAQs(faqOptions);
JavaScript

4.2.4 Filtrar Tópicos exibidos ao clicar em "Fale Conosco" nas FAQs por tags

Para filtrar e exibir apenas tópicos marcados com um termo específico quando o usuário clicar em "Fale conosco" nas telas de FAQ, use a API filterContactUsByTags na instância FAQOptions passada para a API showFAQs() conforme abaixo.


O comportamento padrão para "Fale conosco" no fluxo de perguntas frequentes é o mesmo que invocar showConversations(), ou seja, exibirá todos os tópicos marcados como "Visível para todos os usuários", exceto quando a filtragem de tópicos estiver habilitada passando tags para a API filterContactUsByTags.



Por exemplo: Para exibir tópicos relacionados a uma seção específica do programa de perguntas frequentes, esses tópicos específicos podem ser marcados com o termo "payment_failure".

import { FaqOptions } from 'react-native-freshchat-sdk';
var faqOptions = new FaqOptions();
faqOptions.tags = ["payment_failure"];
faqOptions.filteredViewTitle = "Payments";
faqOptions.filterType = FaqOptions.FilterType.ARTICLE;
faqOptions.showFaqCategoriesAsGrid = true;
faqOptions.showContactUsOnFaqScreens = true;
faqOptions.showContactUsOnFaqNotHelpful = true;
faqOptions.contactusFilterTags = ["payments"];
Freshchat.showFAQs(faqOptions);
JavaScript

5. API de envio de mensagem

O aplicativo pode enviar uma mensagem em nome do usuário usando a API sendMessage(). 


Observação: esta API enviaria silenciosamente uma mensagem e não iniciaria a interface do usuário do Freshchat SDK


Por exemplo: Para enviar uma mensagem em um tópico marcado como "premium", a API pode ser invocada conforme abaixo.

import { FreshchatMessage } from 'react-native-freshchat-sdk';var freshchatMessage = new FreshchatMessage();freshchatMessage.tag = "premium";freshchatMessage.message = "text message";Freshchat.sendMessage(freshchatMessage);
JavaScript


6. Notificações push

A integração da notificação por push do Freshchat em seu aplicativo ajudará os usuários a receber suas mensagens de suporte mais rapidamente.


6.1.1 Integração do lado do servidor


Android

  • No console do Firebase, em seu projeto, vá para a guia de mensagens na nuvem e você verá sua chave do servidor, copie-a. Se você não tiver uma conta do Firebase para seu aplicativo. Você também pode consultar a documentação de configuração do Firebase aqui: https://firebase.google.com/docs/android/setup

  • Salve esta chave do servidor FCM no portal da web Freshchat em Admin -> Mobile SDK


iOS

Consulte aqui para gerar o arquivo .p12 e carregá-lo no Freshchat

6.1.2 Integração do lado do cliente

Por favor, siga as etapas abaixo para notificações push de integração em seu aplicativo móvel. As etapas abaixo assumem que seu aplicativo está entregando outras notificações por push.


Passos


  • Salvando token push: Cada aplicativo terá um token push. O Freshchat precisa desse token para enviar notificação por push ao usuário. Você pode usar o trecho abaixo para enviar o token para o Freshchat SDK. 
Freshchat.setPushRegistrationToken(token);
Genérico


  • Passando a carga de notificação por push recebida para o SDK do Freshchat.
Freshchat.isFreshchatNotification(notification, (freshchatNotification) => 
{    if (freshchatNotification) 
{        Freshchat.handlePushNotification(notification);    } else 
{        // handle your app notification    }
})
Genérico



6.2 Personalizando Notificações (somente Android)

Adicione o código abaixo em index.js

var freshchatNotificationConfig = new FreshchatNotificationConfig();
freshchatNotificationConfig.priority =
FreshchatNotificationConfig.NotificationPriority.PRIORITY_HIGH;
freshchatNotificationConfig.notificationSoundEnabled = true;
freshchatNotificationConfig.largeIcon = "notif"; // Drawable name
freshchatNotificationConfig.smallIcon = "notif"; // Drawable name
Freshchat.setNotificationConfig(freshchatNotificationConfig);
Genérico

6.3 Lista de Verificação de Notificação Push

Identificamos algumas áreas potenciais onde o problema acontece. Então, consolidamos isso em listas de verificação, verifique se você fez tudo.


iOS

  1. Certifique-se de ter carregado o certificado push correto no portal Freschat.
  2. Certifique-se de que está verificando em ambiente de desenvolvimento ou produção e carregue o respectivo certificado no portal Freschat.
  3. Não verifique no simulador do iOS, pois ele não possui capacidade de notificação por push. Verifique no dispositivo real.
  4. O recurso de notificação por push deve ser ativado em seu projeto Xcode.
  5. Certifique-se de que você deu permissão para enviar notificações para seu aplicativo. Caso contrário, vá para Admin -> em seu aplicativo, ative a notificação por push.
  6. Confirme que você está passando o token do dispositivo para o Freshchat usando o seguinte método,
    Freshchat.setPushRegistrationToken(device.pushToken);
    Genérico


  7. Na classe Appdelegate, certifique-se de ter métodos delegados UNUserNotificationCenter ou [UIApplicationDelegate application:didReceiveRemoteNotification:fetchCompletionHandler:] implementado. E se a estrutura UNUserNotificationCenter estiver sendo usada, verifique se o delegado foi definido para isso.
  8. Adicione os respectivos códigos de ponte de reação nos métodos delegados de notificação por push.
  9. Consulte os códigos aqui para a implementação do plug-in, confirme se você implementou todas as recomendações.
  10. Se você tiver uma extensão de notificação em seu aplicativo, verifique se ela não está bloqueando a notificação.


Android

  1. Certifique-se de ter adicionado a chave FCM correta do seu aplicativo no portal Freshchat
  2. Não verifique o emulador, que não possui o serviço Google Play ativado. Verifique no dispositivo real.
  3. Confirme que você está passando o token do dispositivo para o Freshchat usando o seguinte método,
    Freshchat.setPushRegistrationToken(device.pushToken);
    JavaScript
  4. Verifique se você está recebendo uma notificação do FCM.
  5. Consulte os códigos aqui para a implementação do plug-in, confirme se você implementou todas as recomendações


Se o problema persistir, tente o seguinte URL,

https://<<your-freshchat-account-domain-here>>/app/api/notif_debug?convId=CONV_ID onde,

CONV_ID é o ID da conversa para a qual você não recebeu notificação. CONV_ID é a última parte numérica da url quando você abre a conversa no navegador. 

Certifique-se de estar logado como Admin ao abrir este URL. Ele lhe dará o motivo por trás da falha na notificação por push.


7. Outras Notas

Para localização, personalização da interface do usuário, suporte a RTL e muito mais, consulte nossa documentação específica da plataforma para Android e iOS .

Recentemente, atualizamos nossa marca em nossas ofertas e alteramos os nomes de nossos planos de preços. Se você se inscreveu antes de 9 de agosto de 2021, clique em Planos anteriores para visualizar seus planos aplicáveis. 
Garantimos que essa alteração não afetará sua experiência com o produto e nenhuma ação é necessária de sua parte.

Este artigo foi útil?

Que bom!

Obrigado pelo seu feedback

Desculpe! Não conseguimos ajudar você

Obrigado pelo seu feedback

Deixe-nos saber como podemos melhorar este artigo!

Selecione pelo menos um dos motivos
A verificação do CAPTCHA é obrigatória.

Feedback enviado

Agradecemos seu esforço e tentaremos corrigir o artigo