이 문서는 채널톡 React Native SDK(이하 SDK)에서 사용하는 모델에 대해 설명합니다.
BootConfig
ChannelIO.boot
의 옵션을 설정합니다. boot
메소드의 매개변수로 전달하는 모델입니다. 사용 예제는 시작하기 문서를 참고합니다.
변수명 | 타입 | 설명 |
---|---|---|
pluginKey | string | 채널의 플러그인 키입니다. |
memberId | (optional) string | 멤버 유저를 구분하는 id입니다. |
memberHash | (optional) string | memberId 의 해시화 된 값입니다. |
profile | (optional) Profile | 유저의 프로필 값입니다. |
language | (optional) Language | 유저가 사용할 언어입니다.유저를 새로 생성하는 경우에만 효력이 있습니다. 이미 존재하는 유저의 언어는 변경되지 않습니다. |
unsubscribeEmail | (optional) boolean | 이메일을 통한 마케팅 메시지를 수신할 지 여부를 설정합니다. |
unsubscribeTexting | (optional) boolean | 문자 (sms, lms)를 통한 마케팅 메시지를 수신할 지 여부를 설정합니다. |
trackDefaultEvent | (optional) boolean | PageView 와 같은 기본 이벤트를 전송할 지 여부를 설정합니다. |
hidePopup | (optional) boolean | 인앱에서 보이는 기본 마케팅 메시지와 메시지 알림 팝업을 보일지 여부를 설정합니다. |
chanelButtonOption | (optional) ChannelButtonOption | 채널 버튼의 위치와 여백을 설정합니다. 여백의 단위는 pt (point) 입니다. |
bubbleOption | (optional) BubbleOption | 인앱에서 보이는 기본 메시지 알림, 마케팅 버블의 위치와 여백을 설정합니다.여백의 단위는 pt (point) 입니다. |
appearance | Appearance | SDK의 화면 테마를 설정합니다. |
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 | 유저의 이름입니다. |
(optional) string | 유저의 email 입니다. | |
mobileNumber | (optional) string | 유저의 핸드폰 번호입니다. |
avatarUrl | (optional) string | 유저의 이미지 URL 입니다. |
"profile": {
"name": NAME,
"email": EMAIL,
"mobileNumber": "+~~~",
"avatarUrl": AVATAR_URL,
OTHER_KEY: OTHER_VALUE,
}
User
채널톡이 설치된 웹사이트, 또는 앱을 방문한 모든 유저입니다.
변수명 | 타입 | 설명 |
---|---|---|
id | string | SDK에서 사용하는 고유 식별자입니다. |
memberId | (optional) string | 유저를 구분하는 식별자입니다. |
name | (optional) string | 유저의 이름입니다. |
avatarUrl | (optional) string | 유저 프로필 이미지의 URL입니다. |
profile | (optional) object | 유저의 프로필 정보를 담은 객체입니다. |
alert | number | 유저가 읽지 않은 중요 알림 갯수입니다. 채널 버튼에서 숫자로 알림이 표현됩니다. |
unread | number | 유저가 읽지 않은 모든 알림 갯수입니다. alert 메시지의 수를 포함합니다. 채널 버튼에서 빨간 점으로 알림이 표현됩니다. |
tags | (optional) string | 유저의 태그입니다. |
language | Language | 유저의 초기 언어입니다. |
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
의 데이터 구성에 사용하는 모델입니다.
변수명 | 타입 | 설명 |
---|---|---|
language | Language | 유저가 사용할 언어입니다. |
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 객체입니다.
변수명 | 타입 |
---|---|
success | boot 가 성공했습니다. |
notInitialized | ChannelIO.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"