moon
sun

1. 설치 및 초기화

📒 HappyTalk Developer Center / 채팅 버튼 연동 (SDK) / 1. 설치 및 초기화
메뉴
공지사항
메시지 포맷
Biz API
해피톡
카카오 상담톡 웹훅
Open API
채팅 버튼 연동 (SDK)
목차
해피톡 웹채팅창을 사용하기 위한 안내서입니다.

Installation

최신 해피톡 Javascript Chat SDK를 사용하기 위해서는 head 혹은 body 태그 안에 아래 스크립트 코드를 삽입해 주세요.
<script id="happytalkSDK" src="https://chat-static.happytalkio.com/sdk/happytalk.chat.v2.min.js"></script>
HTML
복사

Initialize Happytalk Chat SDK

해피톡 대시보드에서 생성된 SITE_ID, SITE_NAME, CATEGORY_ID, DIVISION_ID 를 아래 예시처럼 삽입해 주세요.
// Initialize happytalk instance to use SDK in your app var ht = new Happytalk({ siteId: SITE_ID, siteName: SITE_NAME, categoryId: CATEGORY_ID, divisionId: DIVISION_ID, });
JavaScript
복사
Key
Type
Condition
Reference
siteId
string
Required
App ID, 설정 - 회사 정보 관리 - 시스템 정보에서 확인 가능
siteName
string
Required
App Name, 설정 - 회사 정보 관리 - 회사정보에서 확인 가능
categoryId
string
Required
대분류 ID, 설정 - 상담 분류 관리 - 대분류 앞에 적혀있는 숫자 코드
divisionId
string
Required
중분류 ID, 설정 - 상담 분류 관리 - 중분류 앞에 적혀있는 숫자 코드
partnerId
string
Optional
파트너사 ID
shopId
string
Optional
쇼핑몰 ID
params
string
Optional
고정 및 Custom 파라미터 추가영역입니다. 여러 개일 경우 ,(콤마)로 구분합니다. (ex: 'parameter1=1,parameter2=2,site_uid=1') 사용 가능한 파라미터 • site_uid : 고객 ID • cus_extra_username : 고객 이름 • cus_extra_phone : 고객 휴대폰 번호 • cus_extra_tel_phone : 고객 전화번호 • cus_extra_email : 고객 이메일 • parameter1~parameter10 : Custom 파라미터 Custom 파라미터 설정이나 사용 가능한 파라미터 전체 목록은 관리자 설정의 파라미터 관리에서 가능합니다.
kakaoId
string
Optional
카카오톡 채널 ID, 설정 - 서비스 연동 관리에서 연동한 카카오톡 채널 ID
naverId
string
Optional
네이버톡톡 채널 ID, 설정 - 서비스 연동 관리에서 연동한 네이버톡톡 ID
dynamicScript
boolean
Optional
true이면 동적으로 iframe을 생성해서 해피톡 채팅을 호출할 수 있습니다.
showOnHover
boolean
Optional
true이면 버튼이 숨겨진 상태로 렌더링됩니다. hover하면 버튼이 노출됩니다.
options
Options
Optional
채팅 부가 옵션 Reference
chatview
Options
Optional
채팅뷰 옵션 Reference
params에 site_uid값을 넘길 경우 다른 브라우저를 사용하더라도 동일한 웹채팅창을 요청합니다.
에디터 창에서 설정한 채널 ID 값은 기본 default 값이며 kakaoId랑 naverId를 추가하면 기본값을 override합니다.
<!-- 기본 예제 --> <script type="text/javascript"> var ht = null; (function(id, scriptSrc, callback) { var d = document, tagName = 'script', $script = d.createElement(tagName), $element = d.getElementsByTagName(tagName)[0]; $script.id = id; $script.async = true; $script.src = scriptSrc; if (callback) { $script.addEventListener('load', function (e) { callback(null, e); }, false); } $element.parentNode.insertBefore($script, $element); })('happytalkSDK', 'https://chat-static.happytalkio.com/sdk/happytalk.chat.v2.min.js', function() { ht = new Happytalk({ siteId: '4000000015', siteName: '해피톡', categoryId: '129884', divisionId: '129885', kakaoId: '@해피톡io', naverId: 'wcb559', params:'site_uid=happytalk,cus_extra_username=김해피,cus_extra_phone=01012345678' }); }); </script>
HTML
복사
<!-- 이벤트 바인딩 예제 1) --> <script> var ht = { buffer: [], event: { on: function(event, callback) { ht.buffer.push({ event: event, callback: callback }); } } }; (function(id, scriptSrc, callback) { var d = document, tagName = 'script', $script = d.createElement(tagName), $element = d.getElementsByTagName(tagName)[0]; $script.id = id; $script.async = true; $script.src = scriptSrc; if (callback) { $script.addEventListener('load', function (e) { callback(null, e); }, false); } $element.parentNode.insertBefore($script, $element); })('happytalkSDK', 'https://chat-static.happytalkio.com/sdk/happytalk.chat.v2.min.js', function() { var buffer = ht.buffer; ht = new Happytalk({ siteId: '4000000015', siteName: '해피톡', categoryId: '129884', divisionId: '129885', kakaoId: '@해피톡io', naverId: 'wcb559', }); buffer.forEach(function(item) { ht.event.on(item.event, item.callback); }); }); </script> <script> // SDK 이벤트 바인딩 ht.event.on('happytalk:ready', function () { console.log('happytalk ready event'); }); </script>
HTML
복사
<!-- 이벤트 바인딩 예제 2) --> <script> var ht = {}; (function(id, scriptSrc, callback) { var d = document, tagName = 'script', $script = d.createElement(tagName), $element = d.getElementsByTagName(tagName)[0]; $script.id = id; $script.async = true; $script.src = scriptSrc; if (callback) { $script.addEventListener('load', function (e) { callback(null, e); }, false); } $element.parentNode.insertBefore($script, $element); })('happytalkSDK', 'https://chat-static.happytalkio.com/sdk/happytalk.chat.v2.min.js', function() { ht = new Happytalk({ siteId: '4000000015', siteName: '해피톡', categoryId: '129884', divisionId: '129885', kakaoId: '@해피톡io', naverId: 'wcb559', }); // 이벤트 바인딩 ht.event.on('happytalk:ready', function () { console.log('happytalk ready event'); }); }); </script>
HTML
복사
에디터에서 설정한 채널 ID 값은 기본값이며, 이벤트 바인딩은 위 예제처럼 buffer 패턴 또는 happytalk:ready 이후에 처리하세요.