Freshchat React Native SDK 통합 단계

목차

  • 사전 요구 사항
  • APP ID, APP Key, 및 도메인 가져오기
  • 1. 프로젝트에 Freshchat SDK 추가하기
    • 1.1. iOS 설정
    • 1.2. Android 설정
  • 2. SDK 초기화
    • 2.1 초기화 구성 옵션
  • 3. 사용자 정보
    • 3.1 사용자 정보 업데이트
    • 3.2 사용자 속성(메타 데이터) 업데이트
    • 3.3 사용자 데이터 재설정
    • 3.4 사용자 복원
    • 3.5 Freshchat 사용자 ID 가져오기
  • 4. 지원 솔루션 시작
    • 4.1 대화
      • 4.1.1 대화 주제 필터링
      • 4.1.2 읽지 않은 메시지 수
    • 4.2 FAQ
      • 4.2.1 FAQ 옵션
      • 4.2.2 태그로 FAQ 카테고리 필터링
      • 4.2.3 태그로 FAQ 기사 필터링
      • 4.2.4 FAQ의 "문의하기" 클릭 시 표시되는 메시지 주제 필터링
  • 5. 메시지 전송 API
  • 6. 푸시 알림
    • 6.1.1 서버 측 통합
    • 6.1.2 클라이언트 측 통합
    • 6.2 알림 사용자 정의 (Android 전용)
    • 6.3 푸시 알림 체크리스트
  • 7. 기타 참고 사항

사전 요구 사항

RN v0.60 이상은 Freshchat SDK v2.0.0부터 지원됩니다.

APP ID, APP Key, 및 도메인 가져오기

귀하의 Freshchat 계정은 고유한 APP ID 및 APP Key와 연결되어 있으며, 이를 사용하여 모바일 SDK를 Freshchat과 통합할 수 있습니다. 계정 소유자/관리자로 Freshchat 계정에 로그인한 후, 관리자 > 모바일 SDK로 이동합니다. 여기서 APP ID, APP Key 및 도메인을 찾을 수 있습니다.

1. 프로젝트에 Freshchat SDK 추가하기

Freshchat 노드 패키지 이름은 'react-native-freshchat-sdk'입니다. 리액트 네이티브 프로젝트의 Package.json 파일의 dependencies 아래에 ”react-native-freshchat-sdk”: “{{latest-version}}”을 추가합니다.

최신 SDK 버전은 다음 링크를 참조하십시오: https://www.npmjs.com/package/react-native-freshchat-sdk

1.1. iOS 설정

RN 버전 Freshchat 버전 단계
0.60+ 2.0.0+ 아래 명령어를 실행하여 SDK를 자동 연결합니다.
cd ios
pod install
< 0.60 2.0.0+
  1. Podfile이 ios 프로젝트 디렉토리에 있는지 확인합니다. 없다면 ios 프로젝트 디렉토리에서 pod를 초기화하고 podfile에 React 종속성을 추가합니다. React 종속성은 이 표 아래에 있습니다.
  2. 다음 명령어를 사용하여 React 네이티브 Freshchat SDK를 연결합니다.
    react-native link react-native-freshchat-sdk
< 0.60 < 2.0.0
  1. 다음 명령어를 사용하여 React 네이티브 Freshchat SDK를 연결합니다.
    react-native link react-native-freshchat-sdk
  2. 리액트 네이티브 프로젝트의 ios 폴더로 이동합니다.
  3. Podfile에 아래와 같이 FreshchatSDK 항목을 추가합니다.
    target 'ProjectName' do
    pod 'FreshchatSDK', :path=> '../node_modules/react-native-freshchat-sdk/ios/FreshchatSDK.podspec'
    end
  4. iOS 디렉토리에서 pod install을 실행합니다.
0.60+ < 2.0.0 Freshchat SDK 2.0.0+만 RN v0.60+와 호환됩니다.

React 종속성 (RN < 0.60 & Freshchat SDK 2.0.0+)

# React Native 요구 사항
pod 'React', :path => '../node_modules/react-native', :subspecs => 
[
'Core',
'CxxBridge', # RN >= 0.47에 포함
'DevSupport', # RN >= 0.43에 In-App Devmenu 활성화
'RCTText',
'RCTNetwork',
'RCTWebSocket', 
# 디버깅 필요
'RCTAnimation', 
# FlatList 및 네이티브 UI 스레드에서 실행되는 애니메이션 필요
# 프로젝트에서 사용하려는 다른 subspecs 추가
]
# RN >= 0.42.0을 사용하는 경우 Yoga 명시적으로 포함
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'

기존 Freshchat 통합을 Freshchat SDK 2.0.0+로 마이그레이션

다음 명령어를 사용하여 리액트 프로젝트에서 React 네이티브 Freshchat SDK 연결을 해제합니다.
react-native unlink react-native-freshchat-sdk

iOS 프로젝트 내 Podfile에서 다음 줄을 제거합니다.
pod 'FreshchatSDK', :path=> '../node_modules/react-native-freshchat-sdk/ios/FreshchatSDK.podspec'

위의 표를 참조하여 요구 사항에 따라 단계를 선택합니다.

1.2. Android 설정

프로젝트 레벨 build.gradle 파일에 maven { url "https://jitpack.io" }를 추가합니다.

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

RN 버전 < 0.60을 사용하는 경우, 아래 명령어를 실행하십시오.
react-native link react-native-freshchat-sdk

2. SDK 초기화

다른 Freshchat SDK 기능을 호출하거나 사용하기 전에 Freshchat.init()을 앱 ID와 앱 키로 호출합니다.

앱의 런처/지원 화면에서 init()을 호출하는 것을 강력히 권장합니다. Freshchat SDK는 init() 중에 구성 요소의 존재 여부를 확인하며, 구성 요소가 누락되었거나 매니페스트 항목이 누락된 경우 경고를 표시합니다.

다음 코드 스니펫에서 YOUR-APP-ID와 YOUR-APP-KEY를 실제 앱 ID와 앱 키로 바꿉니다.

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

2.1 초기화 구성 옵션

초기화 전에 구성에서 카메라 캡처와 같은 기능을 활성화하거나 비활성화합니다.

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 전용
freshchatConfig.notificationSoundEnabled = true; //iOS 전용
freshchatConfig.themeName = "CustomTheme.plist"; //iOS 전용
freshchatConfig.stringsBundle = "FCCustomLocalizable"; //iOS 전용
Freshchat.init(freshchatConfig);

3. 사용자 정보

3.1 사용자 정보 업데이트

지원 에이전트가 사용자와 메시지를 주고받을 때 사용자에 대한 더 많은 컨텍스트를 제공하기 위해 언제든지 기본 사용자 정보를 보낼 수 있습니다.

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) ⁦}) 3.2 사용자 속성 업데이트 (메타 데이터) 앱 내 사용자 및 이벤트에 대한 추가 메타데이터를 캡처하고 전송할 수 있으며, 이는 나중에 사용자에게 메시지를 푸시하기 위한 세그먼트 방식이 됩니다. /var userPropertiesJson = { "user_type": "유료", "plan": "골드" } Freshchat.setUserProperties(userPropertiesJson, (error) => { console.log(error); }); 3.3 사용자 데이터 초기화 로그아웃 시 또는 앱 내 사용자 행동에 따라 적절하다고 판단될 때 resetUser API를 호출하여 사용자 데이터를 초기화합니다.  Freshchat.resetUser(); 3.4 사용자 복원 장치/세션/플랫폼 간에 채팅 메시지를 유지하려면, 모바일 앱은 동일한 외부 ID 및 복원 ID 조합을 사용자에게 전달해야 합니다. 이를 통해 사용자는 Android, iOS 및 웹을 포함한 지원 플랫폼 중 어느 곳에서든지 대화를 원활하게 이어갈 수 있습니다. 외부 ID: 이는 사용자 ID나 이메일 ID 등과 같이 시스템에서 사용자를 위한 고유 식별자가 되어야 하며, Freshchat.identifyUser() API를 사용하여 설정됩니다. 설정된 후에는 변경할 수 없습니다. 복원 ID: 이는 외부 ID가 설정된 현재 사용자에 대해 Freshchat에 의해 생성되며, Freshchat.getUser().getRestoreId() API를 사용하여 언제든지 검색할 수 있습니다. 앱은 동일한 장치 또는 장치 및 플랫폼 간에 세션을 통해 채팅 대화를 계속하기 위해 외부 ID와 복원 ID 조합을 저장하고 나중에 Freshchat SDK에 제공할 책임이 있습니다. 참고: 사용자의 복원 ID는 일반적으로 사용자가 메시지를 보냈을 때만 생성됩니다. 알림은 한 번에 하나의 모바일 장치에서만 지원되며 현재 마지막으로 복원된 장치 또는 마지막으로 업데이트된 푸시 토큰을 가진 장치입니다. 외부 ID 설정하기 Freshchat.identifyUser("EXTERNAL_ID", null, (error) => { console.log(error); }); 복원 ID 검색하기 Freshchat.getUser((user) => { var restoreId = user.restoreId; console.log("restoreId: " + restoreId); }) 외부 ID 및 복원 ID로 사용자 조회 및 복원하기 Freshchat.identifyUser("EXTERNAL_ID", "RESTORE_ID", (error) => { console.log(error); }); 복원 ID 생성 이벤트 수신 대기 복원 ID 생성은 비동기 프로세스입니다. 이 이벤트는 애플리케이션 수명 주기 동안 수신 대기해야 합니다. 일반적으로 사용자가 대화를 시작한 후에 생성됩니다. 복원 ID 생성 이벤트 등록 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); }) } ); 3.5 Freshchat 사용자 ID 가져오기 getFreshchatUserId() API를 사용하여 사용자의 고유 식별자를 가져올 수 있습니다. Freshchat.getFreshchatUserId((data) => { console.log(data); }); 4. 지원 솔루션 시작하기 아래 스니펫을 사용하여 앱 내에서 FAQ 또는 대화 기반 지원 경험으로 진입할 수 있습니다. 진입점은 화면의 버튼이나 메뉴 항목이 될 수 있습니다. 4.1 대화 메뉴 선택이나 버튼 클릭 이벤트와 같은 특정 UI 이벤트에 응답하여 showConversations() API를 호출하여 대화 흐름을 시작합니다. 앱에 여러 주제가 구성된 경우 사용자는 주제 목록을 보게 됩니다. 주제 목록은 메시지가 없는 경우 대시보드에 지정된 순서대로 표시됩니다 (대시보드의 주제 목록 링크). 메시지가 있는 경우 가장 최근에 사용된 순서대로 표시됩니다. 참고: showConversations() API를 사용할 때 "모든 사용자에게 표시"로 설정된 주제만 표시됩니다. 앱 화면의 버튼 클릭으로 대화 목록 시작하기 Freshchat.showConversations(); 4.1.1 주제 필터링 특정 용어로 태그된 주제만 필터링하고 표시하려면, 아래와 같이 showConversations() API에 전달된 ConversationOptions 인스턴스에서 filterByTags API를 사용합니다. 예: 앱의 주문 페이지에서 특정 주제만 연결하고 표시하려면, 해당 주제를 "order_queries"라는 용어로 태그할 수 있습니다. import { ConversationOptions } from 'react-native-freshchat-sdk'; var conversationOptions = new ConversationOptions(); conversationOptions.tags = ["premium"]; conversationOptions.filteredViewTitle = "프리미엄 지원"; Freshchat.showConversations(conversationOptions); 참고: 일치하는 주제를 찾을 수 없는 경우 사용자는 기본 주제로 리디렉션됩니다. showConversations() API를 사용할 때 일반적으로 보이지 않는 주제도 태그가 지정되고 특정 태그가 showConversations() API에 전달된 ConversationOptions 인스턴스의 filterByTags API에 전달될 때 표시됩니다. 4.1.2 읽지 않은 메시지 수 앱 시작 시 또는 기타 특정 이벤트에서 사용자의 읽지 않은 메시지 수를 얻으려면 getUnreadCountAsync API를 사용하여 수를 표시합니다. Freshchat.getUnreadCountAsync((data) =>{ console.log(data); }); 앱은 또한 앱이 열려 있을 때 읽지 않은 메시지 수의 변경 사항을 수신하도록 선택할 수 있습니다.  읽지 않은 메시지 수 이벤트 수신 Freshchat.addEventListener( Freshchat.EVENT_UNREAD_MESSAGE_COUNT_CHANGED, () => { console.log("onUnreadMessageCountChanged 트리거됨"); Freshchat.getUnreadCountAsync((data) => { var count = data.count; var status = data.status; if (status) { console.log("메시지 수: " + count); } else { console.log("getUnreadCountAsync 실패"); } }); } ); 4.1.3 태그로 필터링된 대화 전반의 읽지 않은 메시지 수 특정 태그로 필터링된 대화 전반에 걸쳐 사용자의 읽지 않은 메시지 수를 얻으려면 getUnreadCountAsync API를 사용하십시오. const getUnreadCountAsyncForTags = () => { Freshchat.getUnreadCountAsync( { tags: ["new", "test"] }, (data) => { console.log(data); }); }; 4.2. FAQ 메뉴 선택 또는 버튼 클릭 이벤트와 같은 특정 UI 이벤트에 응답하여 showFAQs() API를 호출하여 FAQ 화면을 시작합니다. 기본적으로 FAQ 카테고리는 하단에 "문의하기" 버튼이 있는 그리드로 표시됩니다. 이를 사용자 정의하려면 FAQ 옵션을 확인하십시오. Freshchat.showFAQs(); 4.2.1 FAQ 옵션 FAQ 흐름의 사용자 정의는 showFAQs() API에 전달된 FaqOptions 인스턴스에서 관련 옵션을 지정하여 달성할 수 있습니다. import { FaqOptions } from 'react-native-freshchat-sdk'; var faqOptions = new FaqOptions(); faqOptions.tags = ["premium"]; faqOptions.filteredViewTitle = "태그"; faqOptions.filterType = FaqOptions.FilterType.ARTICLE; Freshchat.showFAQs(faqOptions); filteredViewTitle: 필터가 적용된 결과 목록 페이지에 제공된 제목입니다.  tags: 필터가 적용되는 태그의 이름입니다.  filterType: 카테고리/기사. 카테고리 - 기사와 하위 카테고리의 조합. 기사 - 기사만 포함. 참고: 필터가 적용된 항목이 없으면 기본적으로 모든 FAQ 카테고리가 표시됩니다. 4.2.2 태그로 FAQ 카테고리 필터링 특정 용어로 태그가 지정된 FAQ 카테고리만 필터링하고 표시하려면 showFAQs() API에 전달된 FAQOptions 인스턴스에서 필터 유형을 카테고리로 설정하고 filterByTags API를 사용하십시오. 예: 특정 사용자 유형과 관련된 FAQ 카테고리를 표시하려면 해당 특정 FAQ 카테고리에 "premium"이라는 용어로 태그를 지정할 수 있습니다. import { FaqOptions } from 'react-native-freshchat-sdk'; var faqOptions = new FaqOptions(); faqOptions.tags = ["premium"]; faqOptions.filteredViewTitle = "태그"; faqOptions.filterType = FaqOptions.FilterType.CATEGORY; Freshchat.showFAQs(faqOptions); 4.2.3 태그로 FAQ 기사 필터링 특정 용어로 태그가 지정된 FAQ만 필터링하고 표시하려면 showFAQs() API에 전달된 FAQOptions 인스턴스에서 필터 유형을 기사로 설정하고 filterByTags API를 사용하십시오.  참고: FAQ는 상위 FAQ 카테고리에서 태그를 상속받습니다. 예: 결제 실패와 관련된 FAQ에 연결하려면 해당 특정 FAQ에 "payment_failure"라는 용어로 태그를 지정하고 앱의 결제 페이지에서 연결할 수 있습니다. import { FaqOptions } from 'react-native-freshchat-sdk'; var faqOptions = new FaqOptions(); faqOptions.tags = ["premium"]; faqOptions.filteredViewTitle = "태그"; faqOptions.filterType = FaqOptions.FilterType.ARTICLE; Freshchat.showFAQs(faqOptions); 4.2.4 FAQ에서 "문의하기" 클릭 시 표시되는 주제를 태그로 필터링 사용자가 FAQ 화면에서 "문의하기"를 클릭할 때 특정 용어로 태그가 지정된 주제만 필터링하고 표시하려면 showFAQs() API에 전달된 FAQOptions 인스턴스에서 filterContactUsByTags API를 사용하십시오. FAQ 흐름 내에서 "문의하기"의 기본 동작은 showConversations()를 호출하는 것과 동일합니다. 즉, 필터링이 활성화되지 않은 경우 "모든 사용자에게 표시"로 표시된 모든 주제를 표시합니다. 예: FAQ 쇼의 특정 섹션과 관련된 주제를 표시하려면 해당 특정 주제에 "payment_failure"라는 용어로 태그를 지정할 수 있습니다. import { FaqOptions } from 'react-native-freshchat-sdk'; var faqOptions = new FaqOptions(); faqOptions.tags = ["payment_failure"]; faqOptions.filteredViewTitle = "결제"; faqOptions.filterType = FaqOptions.FilterType.ARTICLE; faqOptions.showFaqCategoriesAsGrid = true; faqOptions.showContactUsOnFaqScreens = true; faqOptions.showContactUsOnFaqNotHelpful = true; faqOptions.contactusFilterTags = ["payments"]; Freshchat.showFAQs(faqOptions); 5. 메시지 전송 API 앱은 sendMessage() API를 사용하여 사용자를 대신하여 메시지를 보낼 수 있습니다.  참고: 이 API는 메시지를 조용히 보내며 Freshchat SDK UI를 실행하지 않습니다. 예: "premium"이라는 태그가 지정된 주제에 메시지를 보내려면 아래와 같이 API를 호출할 수 있습니다. import { FreshchatMessage } from 'react-native-freshchat-sdk'; var freshchatMessage = new FreshchatMessage(); freshchatMessage.tag = "premium"; freshchatMessage.message = "텍스트 메시지"; Freshchat.sendMessage(freshchatMessage); 6. 푸시 알림 앱에 Freshchat 푸시 알림을 통합하면 사용자가 지원 메시지를 더 빠르게 받을 수 있습니다. 6.1.1 서버 측 통합 안드로이드 Firebase 콘솔에서 프로젝트 아래의 클라우드 메시징 탭으로 이동하면 서버 키를 볼 수 있으며, 이를 복사하십시오. 애플리케이션에 대한 Firebase 계정이 없는 경우, 여기에서 Firebase 설정 문서를 참조할 수 있습니다: https://firebase.google.com/docs/android/setup 이 FCM 서버 키를 Freshchat 웹 포털의 관리자 ->모바일 SDK iOS .p12 파일 생성 및 Freshchat에 업로드하는 방법은 여기를 참조하세요. 6.1.2 클라이언트 측 통합 아래 단계에 따라 모바일 앱에 푸시 알림을 통합하세요. 아래 단계는 앱이 다른 푸시 알림을 처리하고 있다는 가정 하에 작성되었습니다. 단계 푸시 토큰 저장: 각 애플리케이션에는 푸시 토큰이 있습니다. Freshchat은 사용자에게 푸시 알림을 보내기 위해 이 토큰이 필요합니다. 아래 코드 스니펫을 사용하여 Freshchat SDK에 토큰을 전송할 수 있습니다. Freshchat.setPushRegistrationToken(token); 수신한 푸시 알림 페이로드를 Freshchat SDK에 전달합니다. Freshchat.isFreshchatNotification(notification, (freshchatNotification) => { if (freshchatNotification) { Freshchat.handlePushNotification(notification); } else { // 앱 알림 처리 } }) 6.2 알림 사용자 정의 (Android 전용) index.js에 아래 코드를 추가하세요. var freshchatNotificationConfig = new FreshchatNotificationConfig(); freshchatNotificationConfig.priority = FreshchatNotificationConfig.NotificationPriority.PRIORITY_HIGH; freshchatNotificationConfig.notificationSoundEnabled = true; freshchatNotificationConfig.largeIcon = "notif"; // Drawable 이름 freshchatNotificationConfig.smallIcon = "notif"; // Drawable 이름 Freshchat.setNotificationConfig(freshchatNotificationConfig); 6.3 푸시 알림 체크리스트 문제 발생 가능성이 있는 몇 가지 영역을 확인했습니다. 이를 체크리스트로 통합했으니 모든 항목을 완료했는지 확인하세요. iOS Freschat 포털에 올바른 푸시 인증서를 업로드했는지 확인하세요. 개발 또는 프로덕션 환경에서 확인하고 해당 인증서를 Freschat 포털에 업로드하세요. iOS 시뮬레이터에서는 푸시 알림 기능이 없으므로 실제 기기에서 확인하세요. Xcode 프로젝트에서 푸시 알림 기능이 활성화되어 있어야 합니다. 애플리케이션에 푸시 알림 권한을 부여했는지 확인하세요. 그렇지 않으면 관리자 -> 애플리케이션에서 푸시 알림을 활성화하세요. 다음 메서드를 사용하여 Freshchat에 디바이스 토큰을 전달하고 있는지 확인하세요. Freshchat.setPushRegistrationToken(device.pushToken); Appdelegate 클래스에서 UNUserNotificationCenter 대리자 메서드 또는 [UIApplicationDelegate application:didReceiveRemoteNotification:fetchCompletionHandler:]가 구현되어 있는지 확인하세요. UNUserNotificationCenter 프레임워크를 사용하는 경우, 해당 대리자가 설정되어 있는지 확인하세요. 푸시 알림 대리자 메서드에 해당하는 React 브리징 코드를 추가하세요. 플러그인 구현을 위한 코드를 참조하여 모든 권장 사항을 구현했는지 확인하세요. 앱에 알림 확장이 있는 경우, 알림을 차단하지 않는지 확인하세요. Android 애플리케이션의 올바른 FCM 키를 Freshchat 포털에 추가했는지 확인하세요. Google Play 서비스가 활성화되지 않은 에뮬레이터에서는 확인하지 마세요. 실제 기기에서 확인하세요. 다음 메서드를 사용하여 Freshchat에 디바이스 토큰을 전달하고 있는지 확인하세요. Freshchat.setPushRegistrationToken(device.pushToken); FCM에서 알림을 수신하고 있는지 확인하세요. 플러그인 구현을 위한 코드를 참조하여 모든 권장 사항을 구현했는지 확인하세요. 문제가 지속되면 다음 URL을 시도하세요. https://<>/app/api/notif_debug?convId=CONV_ID 여기서 CONV_ID는 알림을 받지 못한 대화의 대화 ID입니다. CONV_ID는 브라우저에서 대화를 열 때 URL의 마지막 숫자 부분입니다. 이 URL을 열 때 관리자 권한으로 로그인되어 있는지 확인하세요. 푸시 알림 실패의 이유를 제공합니다. 7. 기타 참고 사항 로컬라이제이션, UI 사용자 정의, RTL 지원 등에 대해서는 Android 및 iOS에 대한 플랫폼별 문서를 참조하세요.

이 문서가 도움이 되었나요?

Freshdesk Omni AI 도우미

Freshchat React Native SDK 통합 단계

AI 어시스턴트 초기화 중...