문서
톡 플러그인 설치부터 운영까지 필요한 모든 내용을 안내합니다.
설치 방법
톡 플러그인는 PHP 환경의 웹사이트에 쉽게 설치할 수 있는 채팅 위젯 솔루션입니다. 클라이언트 파일을 서버에 업로드한 후 몇 줄의 코드로 채팅 위젯을 삽입할 수 있습니다.
- 대시보드에서 라이선스를 발급받고 API 토큰을 확인합니다.
- client/ 디렉터리 전체를 웹서버의 원하는 경로에 업로드합니다. (예: /talk/)
- Talk.class.php를 require한 후 위젯 iframe을 삽입합니다.
<?php
require_once '/path/to/talk/classes/Talk.class.php';
$talk = new Talk([
'server_domain' => 'https://talk.yourserver.com',
'token' => 'YOUR_JWT_TOKEN',
'channel' => 'default',
]);
echo $talk->widget();기본 설정
Talk 클래스 생성자에 옵션 배열을 전달해 동작을 제어합니다.
| 옵션 | 타입 | 기본값 | 설명 |
|---|---|---|---|
| server_domain | string | (필수) | 소켓 서버 URL (https://…) |
| token | string | (필수) | 사이트 JWT 토큰 |
| channel | string | "default" | 채널 슬러그 |
| lang | string | "ko" | "ko" 또는 "en" |
| templet | string | "default" | 템플릿 이름 |
| user_nick | string | "익명" | 현재 사용자 닉네임 |
| user_uid | string | "" | 사용자 고유 ID |
| user_role | string | "user" | "user" / "manager" / "admin" |
위젯 임베드
위젯은 <iframe> 형태로 삽입되며, 부모 페이지와 postMessage API로 통신합니다.
<!-- 기본 임베드 -->
<div id="my-chat" style="width:360px;height:600px;"></div>
<script src="/talk/scripts/loader.js"></script>
<script>
TalkChat.init({
container: '#my-chat',
serverDomain: 'https://talk.yourserver.com',
token: 'YOUR_JWT_TOKEN',
channel: 'default',
lang: 'ko',
});
</script>postMessage 이벤트
| type | 방향 | 설명 |
|---|---|---|
| ready | 위젯 → 부모 | 위젯 초기화 완료 |
| message | 위젯 → 부모 | 새 메시지 수신 |
| userJoined | 위젯 → 부모 | 사용자 입장 |
| userLeft | 위젯 → 부모 | 사용자 퇴장 |
| sendMessage | 부모 → 위젯 | 메시지 강제 전송 |
관리자 패널
/talk/admin/ 경로로 접근하면 관리자 패널을 사용할 수 있습니다. 관리자 패널에서는 채널 관리, 채팅 내역 조회, IP 차단, 채팅금지 관리 등을 할 수 있습니다.
관리자 패널 접근은 userRole이 “admin”인 JWT 토큰으로만 가능합니다. 서버 대시보드에서 관리자 토큰을 발급받으세요.
주요 기능
- 채널 생성·수정·삭제
- 채팅 내역 조회 (채널·닉네임·키워드 검색)
- 고정 공지 설정
- IP 차단 관리
- 채팅금지 목록 관리
- 전체 공지 브로드캐스트
채널 관리
채널은 대화 공간의 단위입니다. 용도별로 여러 채널을 만들어 운영할 수 있습니다.
| 설정 | 설명 |
|---|---|
| 채널명 | 화면에 표시되는 이름 |
| 슬러그 | URL·코드에서 사용하는 영문 식별자 |
| 최대 인원 | 동시 접속 허용 상한 |
| 최소 레벨 | 입장 가능한 최소 사용자 레벨 |
| 읽기 전용 | 활성화 시 관리자만 메시지 전송 가능 |
| 고정 공지 | 채팅창 상단에 항상 표시되는 공지 텍스트 |
고정 공지
채널별로 채팅창 상단에 고정 공지를 표시할 수 있습니다. 공지 내용이 긴 경우 자동으로 좌측으로 흐르는 마퀴(marquee) 애니메이션이 적용됩니다.
- 관리자 패널 → 채널 설정에서 "고정 공지" 입력란에 내용을 입력합니다.
- 저장하면 해당 채널의 모든 접속자에게 즉시 실시간으로 반영됩니다.
- 내용을 비워두면 공지가 사라집니다.
공지 브로드캐스트 메뉴를 이용하면 특정 채널 또는 전체 채널에 공지를 일괄 전송할 수 있습니다.
채팅금지
관리자·운영자는 특정 사용자의 채팅을 일정 기간 금지할 수 있습니다.
채팅창에서 직접 금지
- 관리자 또는 운영자 계정으로 채팅창에 접속합니다.
- 금지할 사용자의 메시지에서 우클릭합니다.
- 컨텍스트 메뉴에서 "채팅금지"를 선택합니다.
- 금지 기간(1시간 ~ 영구)과 사유를 선택한 후 "금지 적용"을 클릭합니다.
관리자 패널에서 금지
- 관리자 패널 → 메시지 내역에서 채널·닉네임·키워드로 검색합니다.
- 해당 메시지 행의 "채팅금지" 버튼을 클릭합니다.
- 기간과 사유를 입력한 후 적용합니다.
| 기간 코드 | 의미 |
|---|---|
| 1h | 1시간 |
| 6h | 6시간 |
| 24h | 24시간 |
| 7d | 7일 |
| 30d | 30일 |
| perm | 영구 금지 |
API 레퍼런스
모든 클라이언트 API는 X-Site-Token 헤더에 사이트 토큰을 포함해야 합니다.
채널
| 메서드 | 경로 | 설명 |
|---|---|---|
| GET | /api/client/channels | 채널 목록 조회 |
| GET | /api/client/channels/:id | 채널 상세 조회 |
| POST | /api/client/channels/:id/update | 채널 설정 수정 (고정공지 포함) |
메시지 내역
| 메서드 | 경로 | 설명 |
|---|---|---|
| GET | /api/client/history | 메시지 내역 조회 (channel, userNick, search, limit, before 파라미터 지원) |
채팅금지
| 메서드 | 경로 | 설명 |
|---|---|---|
| GET | /api/client/chat-bans | 채팅금지 목록 |
| POST | /api/client/chat-bans/:id/delete | 채팅금지 해제 |
IP 차단
| 메서드 | 경로 | 설명 |
|---|---|---|
| GET | /api/client/ban-ips | IP 차단 목록 |
| POST | /api/client/ban-ips | IP 차단 추가 |
| POST | /api/client/ban-ips/:id/delete | IP 차단 해제 |