Are you an LLM? You can read better optimized documentation at /doc/javascript/chatting/advanced-features/additional-features.md for this page in Markdown format
채팅방 부가 기능
이 문서에서는 VChatCloud가 제공하는 다양한 채팅방 부가 기능을 사용하는 방법을 설명합니다.
접속자 목록 조회하기
channel.getAllUserList
메소드를 사용하여 현재 채팅방에 접속해 있는 모든 사용자의 목록을 조회합니다. 이 기능으로 현재 참여자 목록 UI 등을 구현할 수 있습니다.
예제 코드
javascript
channel.getAllUserList(function (err, userList) {
if (err) {
console.error("접속자 목록 조회 실패:", err);
return;
}
console.log("접속자 목록:", userList);
// userList는 아래 '사용자 정보 객체'의 배열입니다.
});
1
2
3
4
5
6
7
8
2
3
4
5
6
7
8
콜백 함수
- 성공 시:
err
는null
이고,userList
에 사용자 정보 객체의 배열이 반환됩니다. - 실패 시:
err
객체에 오류 정보가 반환됩니다.
사용자 정보 객체
userList
배열에 포함된 각 사용자 정보 객체는 다음과 같은 속성을 가집니다.
속성 | 타입 | 설명 |
---|---|---|
roomId | String | 채팅방의 고유 키 (Channel Key) |
clientKey | String | 사용자의 고유 식별자 |
nickName | String | 사용자 닉네임 |
grade | String | 사용자 등급 |
userInfo | Object | 기타 사용자 부가 정보 |
사용자 신고하기
채팅 중 불쾌감을 주거나 부적절한 사용자를 운영자에게 신고하는 기능입니다. 신고 내용은 VChatCloud CMS의 채팅방 관리 - 채팅방 상세 페이지의 '채팅 - 신고유저 목록' 메뉴에서 확인할 수 있습니다.
이 기능은 VChatCloud API를 직접 호출하여 사용합니다.
- URL:
https://www.vchatcloud.com/api/openapi/insertChatBanUser
- Method:
POST
- Content-Type:
application/x-www-form-urlencoded
예제 코드
javascript
async function reportUser(reportData) {
try {
const response = await fetch("https://www.vchatcloud.com/api/openapi/insertChatBanUser", {
method: "POST",
headers: {
"Content-Type": "application/x-www-form-urlencoded",
},
body: new URLSearchParams(reportData),
});
const result = await response.json();
if (result.result_cd !== 1) {
throw new Error(result.result_msg || '신고 접수에 실패했습니다.');
}
alert('신고가 정상적으로 접수되었습니다.');
return result;
} catch (error) {
console.error('사용자 신고 오류:', error);
alert('신고 중 오류가 발생했습니다.');
}
}
// 사용 예시
const reportData = {
room_id: 'YOUR_ROOM_ID', // 채팅방 ID
buser_nick: 'REPORT_USER_NICKNAME', // 신고할 사용자 닉네임
buser_msg: 'REPORTED_MESSAGE', // 신고할 메시지 내용
buser_chat_id: 'REPORT_USER_CLIENT_KEY', // 신고할 사용자 Client Key
};
reportUser(reportData);
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
요청 파라미터
파라미터 | 타입 | 필수 | 설명 |
---|---|---|---|
room_id | String | ✅ | 채팅방 ID |
buser_nick | String | ✅ | 신고할 사용자의 닉네임 |
buser_msg | String | ✅ | 신고할 메시지 |
buser_chat_id | String | ✅ | 신고할 사용자의 Client Key |
초대 이메일 전송하기
특정 이메일 주소로 채팅방 접속 링크가 포함된 초대 메일을 발송합니다.
이 기능은 VChatCloud API를 직접 호출하여 사용합니다.
- URL:
https://www.vchatcloud.com/api/openapi/inviteWebRtc
- Method:
POST
- Content-Type:
application/x-www-form-urlencoded
예제 코드
javascript
async function sendInvitationEmail(invitationData) {
try {
const response = await fetch("https://www.vchatcloud.com/api/openapi/inviteWebRtc", {
method: "POST",
headers: {
"Content-Type": "application/x-www-form-urlencoded",
},
body: new URLSearchParams(invitationData),
});
const result = await response.json();
if (result.result_cd !== 1) {
throw new Error(result.result_msg || '초대 메일 발송에 실패했습니다.');
}
alert('초대 메일을 성공적으로 발송했습니다.');
return result;
} catch (error) {
console.error('초대 메일 발송 오류:', error);
alert('메일 발송 중 오류가 발생했습니다.');
}
}
// 사용 예시
const invitationData = {
room_id: 'YOUR_ROOM_ID', // 채팅방 ID
to_email: 'guest@example.com', // 초대할 이메일 주소
url: window.location.href, // 초대할 채팅방 URL
};
sendInvitationEmail(invitationData);
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
요청 파라미터
파라미터 | 타입 | 필수 | 설명 |
---|---|---|---|
room_id | String | ✅ | 채팅방 ID |
to_email | String | ✅ | 초대 메일을 받을 이메일 주소 |
url | String | ✅ | 초대할 채팅방의 접속 URL |
공유 파일 목록 조회하기
채팅방에 공유된 모든 파일의 목록을 조회합니다.
이 기능은 VChatCloud API를 직접 호출하여 사용합니다.
- URL:
https://www.vchatcloud.com/api/openapi/getFileList?roomId=YOUR_ROOM_ID
- Method:
POST
예제 코드
javascript
async function getFileList(roomId) {
try {
const response = await fetch(`https://www.vchatcloud.com/api/openapi/getFileList?roomId=${roomId}`, {
method: 'POST'
});
const result = await response.json();
if (result.result_cd !== 1) {
throw new Error(result.result_msg || '파일 목록 조회에 실패했습니다.');
}
console.log('공유 파일 목록:', result.data.list);
return result.data.list;
} catch (error) {
console.error('파일 목록 조회 오류:', error);
}
}
// 사용 예시
getFileList('YOUR_ROOM_ID');
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
응답 데이터
성공 시 응답 객체는 다음과 같은 구조를 가집니다.
속성 | 타입 | 설명 |
---|---|---|
result_cd | Number | 결과 코드 (1: 성공) |
result_msg | String | 결과 메시지 |
data | Object | 파일 목록 데이터가 담긴 객체 (아래 참고 ) |
data
객체
속성 | 타입 | 설명 |
---|---|---|
size | Number | 조회된 전체 파일 개수 |
list | Array | 파일 정보 객체의 배열 |
list
배열 내 파일 정보 객체
속성 | 타입 | 설명 |
---|---|---|
fileNm | String | 서버에 저장된 고유 파일명 |
fileSize | Number | 파일 크기 (byte) |
expire | String | 파일 만료일 (yyyy.MM.dd ) |
fileKey | String | 파일 고유 키 (다운로드 시 사용) |
fileSizeText | String | 읽기 쉬운 형태의 파일 크기 |
fileExt | String | 파일 확장자 |
originFileNm | String | 원본 파일명 |