이 문서는 채널톡 React Native SDK(이하 SDK)에서 사용하는 모델에 대해 설명합니다.

BootConfig

ChannelIO.boot 의 옵션을 설정합니다. boot 메소드의 매개변수로 전달하는 모델입니다. 사용 예제는 시작하기 문서를 참고합니다.

변수명타입설명
pluginKeystring채널의 플러그인 키입니다.
memberId(optional) string멤버 유저를 구분하는 id입니다.
memberHash(optional) stringmemberId의 해시화 된 값입니다.
profile(optional) Profile유저의 프로필 값입니다.
language(optional) Language유저가 사용할 언어입니다.유저를 새로 생성하는 경우에만 효력이 있습니다. 이미 존재하는 유저의 언어는 변경되지 않습니다.
unsubscribeEmail(optional) boolean이메일을 통한 마케팅 메시지를 수신할 지 여부를 설정합니다.
unsubscribeTexting(optional) boolean문자 (sms, lms)를 통한 마케팅 메시지를 수신할 지 여부를 설정합니다.
trackDefaultEvent(optional) booleanPageView와 같은 기본 이벤트를 전송할 지 여부를 설정합니다.
hidePopup(optional) boolean인앱에서 보이는 기본 마케팅 메시지와 메시지 알림 팝업을 보일지 여부를 설정합니다.
chanelButtonOption(optional) ChannelButtonOption채널 버튼의 위치와 여백을 설정합니다. 여백의 단위는 pt (point) 입니다.
bubbleOption(optional) BubbleOption인앱에서 보이는 기본 메시지 알림, 마케팅 버블의 위치와 여백을 설정합니다.여백의 단위는 pt (point) 입니다.
appearanceAppearanceSDK의 화면 테마를 설정합니다.
const config = {
  "pluginKey": YOUR_PLUGIN_KEY,
  "memberId": MEMBER_ID,
  "memberHash": MEMBER_HASH,
  "profile": {
    "name": NAME,
    "email": EMAIL,
    "mobileNumber": "+~~~",
    "avatarUrl": AVATAR_URL,
    OTHER_KEY: OTHER_VALUE,
  },
  "language": LANGUAGE, // "en", "ko", "jp"
  "unsubscribeEmail": BOOLEAN,
  "unsubscribeTexting": BOOLEAN,
  "trackDefaultEvent": BOOLEAN,
  "hidePopup": BOOLEAN,
  "channelButtonOption": {
    "xMargin": 16,
    "yMargin": 16,
    "position": POSITION,  // "left", "right"
  },
  "bubbleOption": {
    "yMargin": 30,
    "position" POSITION,   // "top", "bottom"
  }
  "appearance": APPEARANCE // "system", "light", "dark"
}

ChannelIO.boot(config).then((result) => {
  // result.status
  // result.user
});

enum Language

채널 SDK가 지원하는 언어입니다.

// Set language to Korean
"language": "ko"

// Set language to Japanese
"language": "jp"

// Set language to English
"language": "en"

ChannelButtonOption

채널 버튼의 위치를 조정하는 옵션입니다.왼쪽 아래, 또는 오른쪽 아래로 위치를 설정할 수 있습니다. 위치의 기본값은 right, 여백의 기본값은 각 20pt입니다.

"channelButtonOption": {
  "xMargin": 16,
  "yMargin": 16,
  "position": POSITION,  // 'left', 'right'
}

BubbleOption

인앱에서 발생하는 메시지 알림, 마케팅 버블의 위치와 여백을 설정합니다.위치의 기본값은 top , 여백의 기본값은 20pt입니다.

"bubbleOption": {
  "yMargin": 30,
  "position": POSITION,  // 'top', 'bottom'
}

ChannelButtonIcon

채널 버튼의 아이콘을 설정합니다.

"channel"
"chatBubbleFilled"
"chatProgressFilled"
"chatQuestionFilled"
"chatLightningFilled"
"chatBubbleAltFilled"
"smsFilled"
"commentFilled"
"sendForwardFilled"
"helpFilled"
"chatProgress"
"chatQuestion"
"chatBubbleAlt"
"sms"
"comment"
"sendForward"
"communication"
"headset"

Profile

유저의 프로필 객체입니다.

변수명타입설명
name(optional) string유저의 이름입니다.
email(optional) string유저의 email 입니다.
mobileNumber(optional) string유저의 핸드폰 번호입니다.
avatarUrl(optional) string유저의 이미지 URL 입니다.
"profile": {
  "name": NAME,
  "email": EMAIL,
  "mobileNumber": "+~~~",
  "avatarUrl": AVATAR_URL,
  OTHER_KEY: OTHER_VALUE,
}

User

채널톡이 설치된 웹사이트, 또는 앱을 방문한 모든 유저입니다.

변수명타입설명
idstringSDK에서 사용하는 고유 식별자입니다.
memberId(optional) string유저를 구분하는 식별자입니다.
name(optional) string유저의 이름입니다.
avatarUrl(optional) string유저 프로필 이미지의 URL입니다.
profile(optional) object유저의 프로필 정보를 담은 객체입니다.
alertnumber유저가 읽지 않은 중요 알림 갯수입니다. 채널 버튼에서 숫자로 알림이 표현됩니다.
unreadnumber유저가 읽지 않은 모든 알림 갯수입니다. alert 메시지의 수를 포함합니다. 채널 버튼에서 빨간 점으로 알림이 표현됩니다.
tags(optional) string유저의 태그입니다.
languageLanguage유저의 초기 언어입니다.
unsubscribeTexting(optional) boolean이메일을 통한 마케팅 메시지를 수신할 지 여부를 설정합니다.
unsubscribeEmail(optional) boolean문자 (sms, lms)를 통한 마케팅 메시지를 수신할 지 여부를 설정합니다.
const user = {
  "id": ID,
  "memberId": MEMBER_ID,
  "name": NAME,
  "avatarUrl": AVATAR_URL,
  "alert": ALERT_COUNT,
  "unread": UNREAD_COUNT,
  "profile": {
    "name": PROFILE_NAME,
    "mobileNumber": "+~~~",
    "CUSTOM_VALUE_1": "VALUE_1",
    "CUSTOM_VALUE_2": "VALUE_2"
  }
  "unsubscribeEmail": BOOLEAN,}
  "unsubscribeTexting": BOOLEAN,
  "tags": ["1", "2", "3"],
  "language": LANGUAGE
}

PopupData

인앱 팝업에 대한 정보입니다.

const popupData = {
  "chatId": CHAT_ID,
  "avatarUrl": AVATAR_URL,
  "name": NAME,
  "message": MESSAGE,
}

UserData

updateUser 의 데이터 구성에 사용하는 모델입니다.

변수명타입설명
languageLanguage유저가 사용할 언어입니다.
tags(optional) string유저의 태그입니다.추가하는 태그 데이터로 덮어 씌웁니다. 최대 갯수는 10개이며, 대소문자를 구분하지 않습니다. (소문자로 처리합니다)
profile(optional) object유저의 프로필 정보를 담은 객체입니다.추가하는 프로필 정보로 덮어 씌웁니다. null로 설정한 경우 프로필 정보를 초기화 합니다.
profileOnce(optional) object유저에 추가할 프로필 정보입니다.해당 프로필 값이 없는 경우 새로 추가합니다.
unsubscribeEmail(optional) boolean이메일을 통한 마케팅 메시지를 수신할 지 여부를 설정합니다.
unsubscribeTexting(optional) boolean문자(sms, lms)를 통한 마케팅 메시지를 수신할 지 여부를 설정합니다.
const user = {
  "language": LANGUAGE, // "ko", "jp", "en"
  "tags": ["1", "2", "3"],
  "profile": {
    "name": NAME,
    "email": EMAIL,
    "mobileNumber": '+~~~',
    "avatarUrl": AVATAR_URL,
    OTHER_KEY: OTHER_VALUE,
  },
  "profileOnce": {
  },
  "unsubscribeEmail": BOOLEAN,
  "unsubscribeTexting": BOOLEAN,
};

ChannelIO.updateUser(user).then((result) => {
  // result.error
  // result.user
});

Appearance

SDK의 테마를 나타내는 객체입니다.

"appearance" : "system"
"appearance" : "light"
"appearance" : "dark"

BootStatus

부트 결과에 대한 enum 객체입니다.

변수명타입
successboot가 성공했습니다.
notInitializedChannelIO.initialize()가 호출되지 않았습니다.
networkTimeout네트워크 문제로 ChannelIO.boot가 실패했습니다.
notAvailableVersion지원되지 않는 SDK 버전입니다.
serviceUnderConstruction채널톡 서버가 점검 중입니다.
requirePayment채널이 차단되었거나 유료 결제가 필요한 경우입니다.
accessDenied서버에서 4xx 에러를 반환했습니다.
unknown알 수 없는 오류입니다.
"SUCCESS"
"NOT_INITIALIZED"
"NETWORK_TIMEOUT"
"NOT_AVAILABLE_VERSION"
"SERVICE_UNDER_CONSTRUCTION"
"REQUIRE_PAYMENT"
"ACCESS_DENIED"
"UNKNOWN_ERROR"