SDK 연동
SDK 연동
TapKit를 프로젝트에 통합하는 방법
TapKit는 Web Component 기반 API를 제공하여 모든 프레임워크에서 쉽게 사용할 수 있습니다.
빠른 시작
CDN (HTML)
<!DOCTYPE html>
<html>
<body>
<!-- 1. CDN에서 로드 -->
<script src="https://files.edutap.ai/tap-sdk/loader.js"></script>
<!-- 2. TapKit 요소 추가 -->
<tap-kit user-id="user-123" course-id="course-456" clip-id="clip-789"></tap-kit>
<!-- 3. API 키 설정 -->
<script>
const kit = document.querySelector('tap-kit');
kit.apiKey = 'your-api-key';
</script>
</body>
</html>npm (React)
npm install @coxwave/tap-kit'use client';
import { TapKit, useTapKit } from '@coxwave/tap-kit/react';
function MyComponent() {
const tapkit = useTapKit({
apiKey: 'your-api-key',
userId: 'user-123',
courseId: 'course-456',
clipId: 'clip-789',
onReady: () => console.log('Ready!'),
});
return (
<div>
<button onClick={tapkit.show} disabled={!tapkit.isReady}>
AI 튜터에게 질문하기
</button>
<TapKit control={tapkit.control} style={{ height: '600px' }} />
</div>
);
}npm (Non-React)
React 없이 Vanilla JavaScript/TypeScript에서 사용하려면 createTapKit 함수를 사용합니다.
npm install @coxwave/tap-kitimport { createTapKit } from '@coxwave/tap-kit';
const tapkit = createTapKit({
apiKey: 'your-api-key',
userId: 'user-123',
courseId: 'course-456',
clipId: 'clip-789',
// Advanced options (테스트/개발용)
apiUrl: 'https://tapapistaging.coxwave.link',
environment: 'staging',
// Event handlers
onReady: () => console.log('Ready!'),
onTimelineSeek: (time, clipId) => {
videoElement.currentTime = time;
},
});
// DOM에 추가 (필수)
tapkit.mount();
// 초기화 완료 대기
await tapkit.ready;
// 채팅 표시
tapkit.show();
// 정리
tapkit.destroy();React 프로젝트에서는 createTapKit 대신 useTapKit Hook을 사용하세요.
lifecycle 관리가 자동으로 됩니다.
배포 방식
| 방식 | 장점 | 권장 환경 |
|---|---|---|
| CDN | 설치 불필요, 자동 업데이트 | 정적 HTML, 레거시 프로젝트 |
| npm | TypeScript 지원, 번들러 최적화 | React, Vue, Next.js |
createTapKit() 함수는 CDN과 npm 모두에서 사용 가능합니다. API Reference 참조.
Legacy API
v1.x의 new TapKit() API는 deprecated되었습니다.
기존 프로젝트는 마이그레이션 가이드를 참조하세요.
