{"metadata":{"image":[],"title":"","description":""},"api":{"url":"","auth":"required","settings":"","results":{"codes":[]},"params":[]},"next":{"description":"","pages":[]},"title":"Integração Android (Java)","type":"basic","slug":"integração-android-java","excerpt":"","body":"Após realizar a configuração do serviço Firebase podemos começar a implementar a SDK da Inngage em aplicativos Android.\nA nossa SDK Android é responsável por integrar as aplicações mobile ao backend de notificações inteligentes da Inngage, para a gestão do cadastro de dispositivos, configuração de campos customizáveis, geofences, processamento de push notifications e muito mais.\n[block:api-header]\n{\n  \"title\": \"1 - Configurando o Google Messaging Services & Firebase Services no seu projeto\"\n}\n[/block]\nUma série de exemplos passo-a-passo que informam o que você deve executar para ter um ambiente de desenvolvimento em execução.\n\nAntes de implementar a biblioteca, dentro do seu projeto no Android Studio, abra o arquivo build.gradle (Module: app) e adicione as seguintes dependências ao seu projeto.\n\nImplemente essas dependências no arquivo build.gradle (Module: app):\n[block:code]\n{\n  \"codes\": [\n    {\n      \"code\": \"apply plugin: 'com.android.application'\\n// Adicione esta linha\\napply plugin: 'com.google.gms.google-services'\\n\\ndependencies {\\n  // Importe o Firebase BoM\\n  implementation platform('com.google.firebase:firebase-bom:27.1.0')\\n\\n  // Adicione a dependência para o Firebase SDK para Google Analytics\\n  // Ao usar o BoM, não especifique versões nas dependências do Firebase\\n  implementation 'com.google.firebase:firebase-analytics'\\n\\n  // Adicione as dependências para qualquer outro produto Firebase desejado\\n  \\n}\",\n      \"language\": \"java\"\n    }\n  ]\n}\n[/block]\n1.2 - Ainda no arquivo build.gradle (Module: app), adicione no final do arquivo o seguinte plugin:\n[block:code]\n{\n  \"codes\": [\n    {\n      \"code\": \"apply plugin: 'com.google.gms.google-services'\",\n      \"language\": \"java\"\n    }\n  ]\n}\n[/block]\nEm build.gradle (Project: AppName) , Adicione isso :\n[block:code]\n{\n  \"codes\": [\n    {\n      \"code\": \"  dependencies {\\n    // Add this line\\n    classpath 'com.google.gms:google-services:4.3.2'\\n  }\\n\",\n      \"language\": \"java\"\n    }\n  ]\n}\n[/block]\n\n[block:api-header]\n{\n  \"title\": \"2 - Importanção da SDK Inngage (inngage-lib)\"\n}\n[/block]\nEm build.gradle (Module: app) implemente nossa dependências\n[block:code]\n{\n  \"codes\": [\n    {\n      \"code\": \"dependencies {      \\n       implementation 'com.github.inngage:inngage-lib:3.2.0-Dev'\\n}\",\n      \"language\": \"java\"\n    }\n  ]\n}\n[/block]\nEm build.gradle (Project: AppName) adicione o link do repositório\n[block:code]\n{\n  \"codes\": [\n    {\n      \"code\": \"buildscript{\\n  repositories{\\n              // adicione somente esta linha dentro de \\\"repositories\\\"\\n              maven { url 'https://jitpack.io' }\\n        \\n  }\\n}\\n\\nallprojects {\\n      repositories {\\n              // adicione somente esta linha dentro deste outro \\\"repositories\\\"\\n              maven { url 'https://jitpack.io' }\\n      }\\n}\",\n      \"language\": \"java\"\n    }\n  ]\n}\n[/block]\n\n[block:callout]\n{\n  \"type\": \"warning\",\n  \"body\": \"./gradlew --refresh-dependencies para Mac\\ngradle --refresh-dependencies para Windows\",\n  \"title\": \"Em alguns casos, é necessário fazer refresh nas dependências do projeto. Clique em \\\"Sync\\\"/\\\"Sincronizar\\\" na IDE ou execute o comando:\"\n}\n[/block]\n\n[block:api-header]\n{\n  \"title\": \"3 - Adicionando InngageConstants Interface\"\n}\n[/block]\nVisando desacoplar as constantes utilizadas em nossa integração, adicione uma nova interface ao seu projeto denominada \"InngageConstants\"\n\nCrie o arquivo como uma interface \"InngageConstants\" e adicione o seguinte código\n[block:code]\n{\n  \"codes\": [\n    {\n      \"code\": \"interface InngageConstants {\\n\\n    String inngageAppToken = \\\"APP_TOKEN\\\"; //application token retirado da plataforma Inngage\\n    String inngageEnvironment = \\\"prod\\\";\\n    String googleMessageProvider = \\\"FCM\\\";\\n\\n}\",\n      \"language\": \"java\"\n    }\n  ]\n}\n[/block]\n\n[block:api-header]\n{\n  \"title\": \"4 - Configuração na Activity de abertura do aplicativo\"\n}\n[/block]\nNa activity configurada para ser a porta de entrada do seu aplicativo, adicione o código abaixo:\n[block:code]\n{\n  \"codes\": [\n    {\n      \"code\": \":::at:::Override\\n    protected void onCreate(Bundle savedInstanceState) {\\n        super.onCreate(savedInstanceState);\\n        setContentView(R.layout.activity_splash);\\n\\n        // Chame o método startHandleNotifications() para capturar as notificações recebidas\\n        InngageIntentService.startHandleNotifications(this, getIntent());\\n\\n        new Handler().postDelayed(() -> startActivity(new Intent(getApplicationContext(), MainActivity.class)), 2000);\\n    }\\n    \\n\",\n      \"language\": \"java\"\n    }\n  ]\n}\n[/block]\nCaso não saiba como identificar a activity inicial do seu projeto, basta procurar no seu arquivo AndroidManifest pela activity que tenha a seguinte configuração:\n[block:code]\n{\n  \"codes\": [\n    {\n      \"code\": \"        <activity\\n            android:name=\\\".SplashActivity\\\"\\n            android:exported=\\\"true\\\">\\n            <intent-filter>\\n                <action android:name=\\\"android.intent.action.MAIN\\\" />\\n\\n                <category android:name=\\\"android.intent.category.LAUNCHER\\\" />\\n            </intent-filter>\\n        </activity>\",\n      \"language\": \"java\"\n    }\n  ]\n}\n[/block]\n\n[block:api-header]\n{\n  \"title\": \"5 - Registrando o usuário na plataforma Inngage\"\n}\n[/block]\nEste código deve ser colocado na sua Activity que é exibida logo após a tela de abertura, normalmente é chamada de MainActivity\n\n[block:code]\n{\n  \"codes\": [\n    {\n      \"code\": \"\\[email protected]\\n    protected void onCreate(Bundle savedInstanceState) {\\n        super.onCreate(savedInstanceState);\\n        setContentView(R.layout.activity_main);\\n\\n\\n        // Para fazer a integração padrão utilize o método handleSubscription()\\n        handleSubscription();\\n\\n    }\\n\\n    /**\\n     * Método responsável por fazer a integração padrão (sem campos customizados)\\n     */\\n\\n\\n\\t\\tprivate void handleSubscription() {\\n        \\n        String myInngageAppToken = InngageConstants.inngageAppToken;\\n        String myInngageEnvironment = InngageConstants.inngageEnvironment;\\n        String myGoogleMessageProvider = InngageConstants.googleMessageProvider;\\n\\n        // caso o app possua campos customizáveis, descomente estas linhas, cheque-os na plataforma, substitua-os abaixo e adicione os valores de acordo com a sua aplicação\\n//        JSONObject jsonCustomField = new JSONObject();\\n//\\n//        try {\\n//\\n//            jsonCustomField.put(\\\"nome\\\", user.name);\\n//            jsonCustomField.put(\\\"email\\\", user.email);\\n//            jsonCustomField.put(\\\"telefone\\\", \\\"\\\");\\n//            jsonCustomField.put(\\\"dataRegistro\\\", \\\"\\\");\\n//            jsonCustomField.put(\\\"dataNascimento\\\", \\\"\\\");\\n//\\n//\\n//      } catch (JSONException e) {\\n//\\n//            e.printStackTrace();\\n//      }\\n//        // caso possua campos customizáveis, adicione o \\\"jsonCustomField\\\" como na chamada abaixo\\n//        InngageIntentService.startInit(\\n//                this,\\n//                myInngageAppToken,\\n//                \\\"Identifier\\\", //Seu identificador\\n//                myInngageEnvironment,\\n//                myGoogleMessageProvider,\\n//    jsonCustomField);\\n\\n        // caso não possua campos customizáveis até então:\\n        InngageIntentService.startInit(\\n                this,\\n                myInngageAppToken,\\n                \\\"userIdentifier\\\", //Seu identificador\\n                myInngageEnvironment,\\n                myGoogleMessageProvider);\\n\\n\\n        InngageUtils.handleNotification(this, getIntent(), myInngageAppToken, myInngageEnvironment);\\n}\\n\\n\",\n      \"language\": \"java\"\n    }\n  ]\n}\n[/block]\n\n[block:api-header]\n{\n  \"title\": \"6 - Configurando o Arquivo AndroidManifest.xml\"\n}\n[/block]\nDepois de implementar a biblioteca, o arquivo de manifesto precisa de algumas permissões e serviços a serem adicionados.\n\nAdicionando Permissões (antes da tag '<application' do AndroidManifest.xml) :\n[block:code]\n{\n  \"codes\": [\n    {\n      \"code\": \"<uses-permission android:name=\\\"android.permission.INTERNET\\\" />\\n<uses-permission android:name=\\\"android.permission.READ_PHONE_STATE\\\" />\",\n      \"language\": \"java\"\n    }\n  ]\n}\n[/block]\nAntes de fechar a tag </ application>, adicione essas linhas de código:\n[block:callout]\n{\n  \"type\": \"warning\",\n  \"body\": \"É obrigatório colocar o ícone de notificação no repositório drawable sob o nome ic_notification como no exemplo abaixo:\\n\\nandroid:resource=\\\"@drawable/ic_notification\\\"\",\n  \"title\": \"Ícone de notificação !\"\n}\n[/block]\n\n[block:code]\n{\n  \"codes\": [\n    {\n      \"code\": \"<service android:name=\\\"br.com.inngage.sdk.PushMessagingService\\\">\\n         <intent-filter>\\n         <action android:name=\\\"com.google.firebase.MESSAGING_EVENT\\\"/>\\n         </intent-filter>\\n</service>\\n\\n<meta-data\\n         android:name=\\\"com.google.firebase.messaging.default_notification_icon\\\"\\n         android:resource=\\\"@drawable/ic_notification\\\" />\\n\\n<service android:name=\\\"br.com.inngage.sdk.InngageIntentService\\\"\\n         android:exported=\\\"false\\\">\\n         <intent-filter>\\n         <action android:name=\\\"com.google.firebase.INSTANCE_ID_EVENT\\\"/>\\n         </intent-filter>\\n</service>\\n\\n\",\n      \"language\": \"java\"\n    }\n  ]\n}\n[/block]\n\n[block:api-header]\n{\n  \"title\": \"7  - Configuração abertura do Dialog\"\n}\n[/block]\nApós finalizar toda implementação da SDK Inngage e demais dependências do Android, finalizaremos configurando na plataforma Inngage os parâmetros do seu aplicativo. Nesta sessão deveremos informar o nome do pacote (br.com.suaempresa.seuapp) e a classe que fará o recebimento do Push, no caso dessa implementação MainActivity.\n\n\n[block:image]\n{\n  \"images\": [\n    {\n      \"image\": [\n        \"https://files.readme.io/dd6d59c-Screen_Shot_2021-10-26_at_14.56.02.png\",\n        \"Screen Shot 2021-10-26 at 14.56.02.png\",\n        1280,\n        800,\n        \"#333\"\n      ]\n    }\n  ]\n}\n[/block]\n\n[block:api-header]\n{\n  \"title\": \"Pronto para começar\"\n}\n[/block]\nExecute seu projeto e registre seu dispositivo:\nO registro de um dispositivo de teste permitirá que você teste suas mensagens, alterações de variáveis em um dispositivo real.\n\nPara registrar seu dispositivo, primeiro verifique se você está em ambiente de Desenvolvimento. Acesse o App gerado e abra a aba Todo Público em sua conta da Inngage, o Dispositivo deve estar registrado. Você pode olhar todas suas informações em variáveis clicando no ícone (Usuário) e enviar uma notificação clicando no ícone (Avião).\n\nMontamos um cenário de testes com os principais pontos que devem ser testados para validar a integração da SDK. [Você pode acessa-lo nesse link](https://inngage.com.br/wp-content/uploads/2021/10/Inngage-Cenario-de-testes-Nativo-Java.xlsx) \n[block:callout]\n{\n  \"type\": \"info\",\n  \"body\": \"Para ajudar você na integração com a SDK da Inngage, disponibilizamos para você um projeto sample, utilizado na homologação da SDK.\\n\\n[Você pode acessa-lo através desse link](https://github.com/inngage/inngage-android-java-sample#-implementação-da-sdk-inngage-inngage-lib)\",\n  \"title\": \"Confira nosso projeto Sample\"\n}\n[/block]","updates":[],"order":1,"isReference":false,"hidden":false,"sync_unique":"","link_url":"","link_external":false,"_id":"61782ba0a722d4001dd98e83","createdAt":"2021-10-26T16:24:00.725Z","user":"5724b9982ad0bc17001227fa","category":{"sync":{"isSync":false,"url":""},"pages":[],"title":"Android","slug":"android","order":3,"from_sync":false,"reference":false,"_id":"57688cc71f818b0e00695efb","project":"57240e292887bb0e00bb9d93","createdAt":"2016-06-21T00:39:35.558Z","version":"57240e292887bb0e00bb9d96","__v":0},"version":{"version":"1.0","version_clean":"1.0.0","codename":"","is_stable":true,"is_beta":false,"is_hidden":false,"is_deprecated":false,"categories":["57240e292887bb0e00bb9d97","57241b7deae5090e00ee6249","57241c06eae5090e00ee624a","57242abb2ad0bc170012279b","5734d18c7b9859320047f4b1","57688cc71f818b0e00695efb","577ead2ca74eb40e00d97bca","57b66af649a12a0e007b461b","597e5f8f13505b0014251a79","59964eb2f824b4000f961fbe","5a15ab12f2643f001ee8737c","5ab1151799750500797334e0","5c597e8b0abe110014bf1a11","5e395a05470bc3002d78d886","5e42a9647515f300509a594d","5f5e716dcc85f9004a4fa193","5f6dd615c624d800180bd237","5f984feb8aed05003a0032dc","60ac0e9c4c04970016613c6c","625010e649ff260020328542"],"_id":"57240e292887bb0e00bb9d96","createdAt":"2016-04-30T01:45:13.341Z","project":"57240e292887bb0e00bb9d93","releaseDate":"2016-04-30T01:45:13.341Z","__v":20},"project":"57240e292887bb0e00bb9d93","__v":0,"parentDoc":null}

Integração Android (Java)


Após realizar a configuração do serviço Firebase podemos começar a implementar a SDK da Inngage em aplicativos Android. A nossa SDK Android é responsável por integrar as aplicações mobile ao backend de notificações inteligentes da Inngage, para a gestão do cadastro de dispositivos, configuração de campos customizáveis, geofences, processamento de push notifications e muito mais. [block:api-header] { "title": "1 - Configurando o Google Messaging Services & Firebase Services no seu projeto" } [/block] Uma série de exemplos passo-a-passo que informam o que você deve executar para ter um ambiente de desenvolvimento em execução. Antes de implementar a biblioteca, dentro do seu projeto no Android Studio, abra o arquivo build.gradle (Module: app) e adicione as seguintes dependências ao seu projeto. Implemente essas dependências no arquivo build.gradle (Module: app): [block:code] { "codes": [ { "code": "apply plugin: 'com.android.application'\n// Adicione esta linha\napply plugin: 'com.google.gms.google-services'\n\ndependencies {\n // Importe o Firebase BoM\n implementation platform('com.google.firebase:firebase-bom:27.1.0')\n\n // Adicione a dependência para o Firebase SDK para Google Analytics\n // Ao usar o BoM, não especifique versões nas dependências do Firebase\n implementation 'com.google.firebase:firebase-analytics'\n\n // Adicione as dependências para qualquer outro produto Firebase desejado\n \n}", "language": "java" } ] } [/block] 1.2 - Ainda no arquivo build.gradle (Module: app), adicione no final do arquivo o seguinte plugin: [block:code] { "codes": [ { "code": "apply plugin: 'com.google.gms.google-services'", "language": "java" } ] } [/block] Em build.gradle (Project: AppName) , Adicione isso : [block:code] { "codes": [ { "code": " dependencies {\n // Add this line\n classpath 'com.google.gms:google-services:4.3.2'\n }\n", "language": "java" } ] } [/block] [block:api-header] { "title": "2 - Importanção da SDK Inngage (inngage-lib)" } [/block] Em build.gradle (Module: app) implemente nossa dependências [block:code] { "codes": [ { "code": "dependencies { \n implementation 'com.github.inngage:inngage-lib:3.2.0-Dev'\n}", "language": "java" } ] } [/block] Em build.gradle (Project: AppName) adicione o link do repositório [block:code] { "codes": [ { "code": "buildscript{\n repositories{\n // adicione somente esta linha dentro de \"repositories\"\n maven { url 'https://jitpack.io' }\n \n }\n}\n\nallprojects {\n repositories {\n // adicione somente esta linha dentro deste outro \"repositories\"\n maven { url 'https://jitpack.io' }\n }\n}", "language": "java" } ] } [/block] [block:callout] { "type": "warning", "body": "./gradlew --refresh-dependencies para Mac\ngradle --refresh-dependencies para Windows", "title": "Em alguns casos, é necessário fazer refresh nas dependências do projeto. Clique em \"Sync\"/\"Sincronizar\" na IDE ou execute o comando:" } [/block] [block:api-header] { "title": "3 - Adicionando InngageConstants Interface" } [/block] Visando desacoplar as constantes utilizadas em nossa integração, adicione uma nova interface ao seu projeto denominada "InngageConstants" Crie o arquivo como uma interface "InngageConstants" e adicione o seguinte código [block:code] { "codes": [ { "code": "interface InngageConstants {\n\n String inngageAppToken = \"APP_TOKEN\"; //application token retirado da plataforma Inngage\n String inngageEnvironment = \"prod\";\n String googleMessageProvider = \"FCM\";\n\n}", "language": "java" } ] } [/block] [block:api-header] { "title": "4 - Configuração na Activity de abertura do aplicativo" } [/block] Na activity configurada para ser a porta de entrada do seu aplicativo, adicione o código abaixo: [block:code] { "codes": [ { "code": "@Override\n protected void onCreate(Bundle savedInstanceState) {\n super.onCreate(savedInstanceState);\n setContentView(R.layout.activity_splash);\n\n // Chame o método startHandleNotifications() para capturar as notificações recebidas\n InngageIntentService.startHandleNotifications(this, getIntent());\n\n new Handler().postDelayed(() -> startActivity(new Intent(getApplicationContext(), MainActivity.class)), 2000);\n }\n \n", "language": "java" } ] } [/block] Caso não saiba como identificar a activity inicial do seu projeto, basta procurar no seu arquivo AndroidManifest pela activity que tenha a seguinte configuração: [block:code] { "codes": [ { "code": " <activity\n android:name=\".SplashActivity\"\n android:exported=\"true\">\n <intent-filter>\n <action android:name=\"android.intent.action.MAIN\" />\n\n <category android:name=\"android.intent.category.LAUNCHER\" />\n </intent-filter>\n </activity>", "language": "java" } ] } [/block] [block:api-header] { "title": "5 - Registrando o usuário na plataforma Inngage" } [/block] Este código deve ser colocado na sua Activity que é exibida logo após a tela de abertura, normalmente é chamada de MainActivity [block:code] { "codes": [ { "code": "\[email protected]\n protected void onCreate(Bundle savedInstanceState) {\n super.onCreate(savedInstanceState);\n setContentView(R.layout.activity_main);\n\n\n // Para fazer a integração padrão utilize o método handleSubscription()\n handleSubscription();\n\n }\n\n /**\n * Método responsável por fazer a integração padrão (sem campos customizados)\n */\n\n\n\t\tprivate void handleSubscription() {\n \n String myInngageAppToken = InngageConstants.inngageAppToken;\n String myInngageEnvironment = InngageConstants.inngageEnvironment;\n String myGoogleMessageProvider = InngageConstants.googleMessageProvider;\n\n // caso o app possua campos customizáveis, descomente estas linhas, cheque-os na plataforma, substitua-os abaixo e adicione os valores de acordo com a sua aplicação\n// JSONObject jsonCustomField = new JSONObject();\n//\n// try {\n//\n// jsonCustomField.put(\"nome\", user.name);\n// jsonCustomField.put(\"email\", user.email);\n// jsonCustomField.put(\"telefone\", \"\");\n// jsonCustomField.put(\"dataRegistro\", \"\");\n// jsonCustomField.put(\"dataNascimento\", \"\");\n//\n//\n// } catch (JSONException e) {\n//\n// e.printStackTrace();\n// }\n// // caso possua campos customizáveis, adicione o \"jsonCustomField\" como na chamada abaixo\n// InngageIntentService.startInit(\n// this,\n// myInngageAppToken,\n// \"Identifier\", //Seu identificador\n// myInngageEnvironment,\n// myGoogleMessageProvider,\n// jsonCustomField);\n\n // caso não possua campos customizáveis até então:\n InngageIntentService.startInit(\n this,\n myInngageAppToken,\n \"userIdentifier\", //Seu identificador\n myInngageEnvironment,\n myGoogleMessageProvider);\n\n\n InngageUtils.handleNotification(this, getIntent(), myInngageAppToken, myInngageEnvironment);\n}\n\n", "language": "java" } ] } [/block] [block:api-header] { "title": "6 - Configurando o Arquivo AndroidManifest.xml" } [/block] Depois de implementar a biblioteca, o arquivo de manifesto precisa de algumas permissões e serviços a serem adicionados. Adicionando Permissões (antes da tag '<application' do AndroidManifest.xml) : [block:code] { "codes": [ { "code": "<uses-permission android:name=\"android.permission.INTERNET\" />\n<uses-permission android:name=\"android.permission.READ_PHONE_STATE\" />", "language": "java" } ] } [/block] Antes de fechar a tag </ application>, adicione essas linhas de código: [block:callout] { "type": "warning", "body": "É obrigatório colocar o ícone de notificação no repositório drawable sob o nome ic_notification como no exemplo abaixo:\n\nandroid:resource=\"@drawable/ic_notification\"", "title": "Ícone de notificação !" } [/block] [block:code] { "codes": [ { "code": "<service android:name=\"br.com.inngage.sdk.PushMessagingService\">\n <intent-filter>\n <action android:name=\"com.google.firebase.MESSAGING_EVENT\"/>\n </intent-filter>\n</service>\n\n<meta-data\n android:name=\"com.google.firebase.messaging.default_notification_icon\"\n android:resource=\"@drawable/ic_notification\" />\n\n<service android:name=\"br.com.inngage.sdk.InngageIntentService\"\n android:exported=\"false\">\n <intent-filter>\n <action android:name=\"com.google.firebase.INSTANCE_ID_EVENT\"/>\n </intent-filter>\n</service>\n\n", "language": "java" } ] } [/block] [block:api-header] { "title": "7 - Configuração abertura do Dialog" } [/block] Após finalizar toda implementação da SDK Inngage e demais dependências do Android, finalizaremos configurando na plataforma Inngage os parâmetros do seu aplicativo. Nesta sessão deveremos informar o nome do pacote (br.com.suaempresa.seuapp) e a classe que fará o recebimento do Push, no caso dessa implementação MainActivity. [block:image] { "images": [ { "image": [ "https://files.readme.io/dd6d59c-Screen_Shot_2021-10-26_at_14.56.02.png", "Screen Shot 2021-10-26 at 14.56.02.png", 1280, 800, "#333" ] } ] } [/block] [block:api-header] { "title": "Pronto para começar" } [/block] Execute seu projeto e registre seu dispositivo: O registro de um dispositivo de teste permitirá que você teste suas mensagens, alterações de variáveis em um dispositivo real. Para registrar seu dispositivo, primeiro verifique se você está em ambiente de Desenvolvimento. Acesse o App gerado e abra a aba Todo Público em sua conta da Inngage, o Dispositivo deve estar registrado. Você pode olhar todas suas informações em variáveis clicando no ícone (Usuário) e enviar uma notificação clicando no ícone (Avião). Montamos um cenário de testes com os principais pontos que devem ser testados para validar a integração da SDK. [Você pode acessa-lo nesse link](https://inngage.com.br/wp-content/uploads/2021/10/Inngage-Cenario-de-testes-Nativo-Java.xlsx) [block:callout] { "type": "info", "body": "Para ajudar você na integração com a SDK da Inngage, disponibilizamos para você um projeto sample, utilizado na homologação da SDK.\n\n[Você pode acessa-lo através desse link](https://github.com/inngage/inngage-android-java-sample#-implementação-da-sdk-inngage-inngage-lib)", "title": "Confira nosso projeto Sample" } [/block]