HTTP API
개요¶
HTTP API는 API 서버와 HTTP 통신하여 채팅 서비스를 제공합니다. 크게 채널 API와 유저 API로 구성됩니다.
각 채널 API와 사용자 API의 주요 기능은 아래와 같습니다.
- 채널 API
- 전체 채널 목록 조회 API
- 채널 조회 API
- 채널 참여자 조회 API
- 채널 생성 API
- 채널 삭제 API
- 채널 입장 API
- 채널 퇴장 API
- 공지 메시지 전송 API
- 사용자 API
- 사용자 토큰 발급 API
- 사용자 참여 채널 조회 API
- 사용자 차단 목록 조회 API
- 사용자 차단 API
- 사용자 차단 해제 API
기본 정보¶
HTTP API 사용 시, 공통적으로 알아야 하는 기본 정보를 안내합니다.
사전 준비¶
HTTP API를 사용하려면 아래의 항목을 준비해야 합니다.
- Hive Certification Key(Hive 인증키): API 호출을 위한 인증 토큰
- Hive 콘솔 > 앱센터 > 프로젝트 관리 > 게임 상세 > 기본 정보 에서 확인 가능
- Game Index(게임 인덱스): Hive 콘솔 > 앱센터 > 프로젝트 관리 에서 생성한 게임의 인덱스
채널 유형¶
HTTP API 전송 시, 사용되는 채널 유형은 아래와 같습니다.
Type | 설명 |
---|---|
PUBLIC | 누구나 입장 가능한 채널 |
PRIVATE | 비밀번호를 입력하여 입장 가능한 채널 |
GROUP | 특정 사용자만 참여하는 채널 (ex. 길드 채널) |
Request URL¶
서버 | URL |
---|---|
LIVE | api-chat.withhive.com |
SANDBOX | sandbox-api-chat.withhive.com |
공통 헤더¶
필드명 | 설명 | 타입 | 필수 여부 |
---|---|---|---|
Authorization | API 호출을 위한 인증 토큰 (Bearer ) | string | Y |
Content-Type | 요청 데이터의 타입 (application/json ) | string | Y |
응답 코드¶
- API 응답 코드
HTTP 상태 코드 | 코드 | 메시지 | 설명 |
---|---|---|---|
200 | 0 | Success. | 성공 |
400 | 100 | Bad request. | 잘못된 요청 |
401 | 101 | Invalid token. | 유효하지 않은 토큰 |
403 | 102 | Forbidden. | 권한 없음 |
404 | 103 | Not found. | 찾을 수 없음 |
405 | 104 | Method not allowed. | 허용되지 않은 메서드 |
500 | 105 | Internal server error. | 내부 서버 오류 |
- 세부 에러 코드 (400, 403)
HTTP 상태 코드 | 코드 | 메시지 | 설명 |
---|---|---|---|
400 | 200 | Duplicate channel ID. | 중복된 채널 ID |
201 | Channel not found or deleted. | 채널을 찾을 수 없음 또는 삭제됨 | |
202 | Channel is full. | 채널 참여 인원을 초과하여 채널 입장 불가 | |
203 | Invalid channel password. | 유효하지 않은 채널 비밀번호 | |
204 | Message size exceeded. The maximum size is 200. | 메시지 크기 초과 (최대 200자) | |
300 | User not in session. | 사용자가 세션에 없음 (Socket 서버에 접속하지 않은 상태) | |
301 | User not in the channel. | 사용자가 채널에 없음 | |
302 | User is already in the channel. | 사용자가 이미 채널에 있음 | |
303 | User already blocked. | 사용자가 이미 차단됨 | |
304 | Block list is full. The maximum size is 100. | 차단 목록이 가득 참 (최대 100명) | |
305 | User not in block list. | 사용자가 차단 목록에 없음 | |
306 | User is blocked. | 사용자가 차단됨 | |
307 | The maximum number of channels a user can enter is 10. | 해당 사용자의 입장 가능한 채널 수 초과 (10개 제한) | |
403 | 308 | User is not the owner of the channel. | 사용자가 채널 소유자가 아님 |
채널 API 기능¶
채팅 서비스에 이용되는 채널 API의 기능 별 API 요청 및 응답, 예제 코드를 설명합니다.
전체 채널 목록 조회¶
현재 생성된 채널 목록을 조회합니다.
Request URL¶
서버 | URL |
---|---|
LIVE | https://api-chat.withhive.com/api/v1/games/{gameIndex}/channels |
SANDBOX | https://sandbox-api-chat.withhive.com/api/v1/games/{gameIndex}/channels |
HTTP METHOD | GET |
Path parameters¶
필드명 | 설명 | 타입 | 필수 여부 |
---|---|---|---|
gameIndex | Hive 게임 인덱스 | integer | Y |
Header parameters¶
필드명 | 설명 | 타입 | 필수 여부 |
---|---|---|---|
Authorization | API 호출을 위한 인증 토큰 (Bearer ) | string | Y |
Query parameters¶
필드명 | 설명 | 타입 | 필수 여부 |
---|---|---|---|
type | 채널 타입 (PRIVATE , PUBLIC , GROUP ) | string | N |
channelId | 특정 채널 ID로 시작하는 채널 조회 | string | N |
channelName | 특정 채널 이름을 포함하는 채널 조회 | string | N |
sort | 정렬 기준 (channelId , channelName , regTime ) (기본값 regTime ) | string | N |
order | 정렬 방식 (ASC , DESC )(기본값 DESC ) | string | N |
size | 한 페이지당 조회할 채널 수 (최소 10개 ~ 최대 100개, 기본값 10) | integer | N |
page | 조회할 페이지 번호 (1부터 시작, 기본값 1) | integer | N |
Response body¶
필드명 | 설명 | 타입 |
---|---|---|
code | 응답 결과 코드 | integer |
message | 결과 메시지 | string |
data | 응답 데이터 | object |
Response body > data¶
필드명 | 설명 | 타입 |
---|---|---|
content | 채널 목록 | array |
page | 페이지 정보 | object |
Response body > data > content¶
필드명 | 설명 | 타입 |
---|---|---|
channelId | 채널 ID | string |
type | 채널 타입 (PRIVATE , PUBLIC , GROUP ) | string |
gameIndex | Hive 게임 인덱스 | integer |
owner | 채널 소유자의 Hive 플레이어 ID | string |
channelName | 채널 이름 | string |
memberCount | 현재 채널 참여 인원 | integer |
maxMemberCount | 최대 채널 참여 인원 | integer |
regTime | 채널 생성 일시 (UTC+0 기준, yyyy-MM-dd'T'HH:mm:ss.SSSZ 형식) | string |
regTimeMillis | 채널 생성 일시 (UnixTimestamp Millisecond) | integer |
Response body > data > page¶
필드명 | 설명 | 타입 |
---|---|---|
size | 한 페이지당 항목 수 | integer |
currentPage | 현재 페이지 번호 | integer |
totalElements | 전체 항목 수 | integer |
totalPages | 전체 페이지 수 | integer |
Request sample¶
curl --request GET 'https://api-chat.withhive.com/api/v1/games/1/channels?type=PUBLIC&sort=regTime&order=DESC&size=10&page=1' \
--header 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJIaXZlIiwiaWF0IjoxNzAyNDU4MTkzLCJqdGkiOiIxMzY2NDk4MjcxIn0.VSwvsTE-tS0sL_e9p9gNvHRkMCbsycSO4ObE4J2ysjs'
Response sameple¶
{
"code": 0,
"message": "Success.",
"data": {
"content": [
{
"channelId": "open:12345",
"type": "PUBLIC",
"gameIndex": 1,
"owner": "1000",
"channelName": "오픈 채팅방",
"memberCount": 2,
"maxMemberCount": 50,
"regTime": "2024-12-30T15:01:01.004Z",
"regTimeMillis": 1731306364351
},
/// ... 채널 정보
],
"page": {
"size": 10,
"currentPage": 1,
"totalElements": 100,
"totalPages": 10
}
}
}
채널 조회¶
특정 채널의 상세 정보를 조회합니다.
Request URL¶
서버 | URL |
---|---|
LIVE | https://api-chat.withhive.com/api/v1/games/{gameIndex}/channels/{channelId} |
SANDBOX | https://sandbox-api-chat.withhive.com/api/v1/games/{gameIndex}/channels/{channelId} |
HTTP METHOD | GET |
Path parameters¶
필드명 | 설명 | 타입 | 필수 여부 |
---|---|---|---|
gameIndex | Hive 게임 인덱스 | integer | Y |
channelId | 조회할 채널 ID | string | Y |
Header parameters¶
필드명 | 설명 | 타입 | 필수 여부 |
---|---|---|---|
Authorization | API 호출을 위한 인증 토큰 (Bearer ) | string | Y |
Response body¶
필드명 | 설명 | 타입 |
---|---|---|
code | 응답 결과 코드 | integer |
message | 결과 메시지 | string |
data | 응답 데이터 | object |
Response body > data¶
필드명 | 설명 | 타입 |
---|---|---|
info | 채널 정보 | object |
members | 참여자 목록 | array |
Response body > data > info¶
필드명 | 설명 | 타입 |
---|---|---|
channelId | 채널 ID | string |
type | 채널 타입 (PRIVATE , PUBLIC , GROUP ) | string |
gameIndex | Hive 게임 인덱스 | integer |
owner | 채널 소유자 | string |
channelName | 채널 이름 | string |
memberCount | 현재 채널 참여 인원 | integer |
maxMemberCount | 최대 채널 참여 인원 | integer |
regTime | 채널 생성 일시 (UTC+0 기준, yyyy-MM-dd'T'HH:mm:ss.SSSZ 형식) | string |
regTimeMillis | 채널 생성 일시 (UnixTimestamp Millisecond) | integer |
Response body > data > members¶
필드명 | 설명 | 타입 |
---|---|---|
playerId | Hive 플레이어 ID | long |
extraData | 추가 데이터 (UTF-8 기준)(최대 256 Byte) | string |
connectedTime | 접속 일시 (UTC+0 기준, yyyy-MM-dd'T'HH:mm:ss.SSSZ 형식) | string |
connectedTimeMillis | 접속 시간 (UnixTimestamp Millisecond) | integer |
Request sample¶
curl --request GET 'https://api-chat.withhive.com/api/v1/games/1/channels/open:12345' \
--header 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJIaXZlIiwiaWF0IjoxNzAyNDU4MTkzLCJqdGkiOiIxMzY2NDk4MjcxIn0.VSwvsTE-tS0sL_e9p9gNvHRkMCbsycSO4ObE4J2ysjs'
Response sample¶
{
"code": 0,
"message": "Success.",
"data": {
"info": {
"channelId": "open:12345",
"type": "PUBLIC",
"gameIndex": 1,
"owner": "SYSTEM",
"channelName": "오픈채팅방",
"memberCount": 2,
"maxMemberCount": 50,
"regTime": "2024-12-30T15:01:01.004Z",
"regTimeMillis": 1731306364351
},
"members": [
{
"playerId": 1,
"extraData": null,
"connectedTime": "2024-11-25T06:22:06.604Z",
"connectedTimeMillis": 1739328218507
},
{
"playerId": 2,
"extraData": null,
"connectedTime": "2024-11-25T06:22:16.233Z",
"connectedTimeMillis": 1731306364351
}
]
}
}
채널 참여자 조회¶
특정 채널의 참여자 정보를 조회합니다.
Request URL¶
서버 | URL |
---|---|
LIVE | https://api-chat.withhive.com/api/v1/games/{gameIndex}/channels/{channelId}/members |
SANDBOX | https://sandbox-api-chat.withhive.com/api/v1/games/{gameIndex}/channels/{channelId}/members |
HTTP METHOD | GET |
Path parameters¶
필드명 | 설명 | 타입 | 필수 여부 |
---|---|---|---|
gameIndex | Hive 게임 인덱스 | integer | Y |
channelId | 조회할 채널 ID | string | Y |
Header parameters¶
필드명 | 설명 | 타입 | 필수 여부 |
---|---|---|---|
Authorization | API 호출을 위한 인증 토큰 (Bearer ) | string | Y |
Response body¶
필드명 | 설명 | 타입 |
---|---|---|
code | 응답 결과 코드 | integer |
message | 결과 메시지 | string |
data | 응답 데이터 | object |
Response body > data¶
필드명 | 설명 | 타입 |
---|---|---|
members | 채널 참여자 목록 | array |
Response Body > data > members¶
필드명 | 설명 | 타입 |
---|---|---|
playerId | Hive 플레이어 ID | long |
extraData | 추가 데이터 (UTF-8 기준)(최대 256 Byte) | string |
connectedTime | 접속 일시 (UTC+0 기준, yyyy-MM-dd'T'HH:mm:ss.SSSZ 형식) | string |
connectedTimeMillis | 접속 시간 (UnixTimestamp Millisecond) | integer |
Request sample¶
curl --request GET 'https://api-chat.withhive.com/api/v1/games/1/channels/open:12345/members' \
--header 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJIaXZlIiwiaWF0IjoxNzAyNDU4MTkzLCJqdGkiOiIxMzY2NDk4MjcxIn0.VSwvsTE-tS0sL_e9p9gNvHRkMCbsycSO4ObE4J2ysjs'
Response sample¶
{
"code": 0,
"message": "Success.",
"data": {
"members": [
{
"playerId": 1,
"extraData": null,
"connectedTime": "2024-11-25T06:22:06.604Z",
"connectedTimeMillis": 1739328218507
},
{
"playerId": 2,
"extraData": null,
"connectedTime": "2024-11-25T06:22:16.233Z",
"connectedTimeMillis": 1731306364351
}
]
}
}
채널 생성¶
새로운 대화 채널을 생성합니다.
playerId가 존재할 경우 해당 사용자를 채널에 입장시킵니다. playerId가 없을 경우 owner는 SYSTEM
이 됩니다.
Request URL¶
서버 | URL |
---|---|
LIVE | https://api-chat.withhive.com/api/v1/games/{gameIndex}/channel |
SANDBOX | https://sandbox-api-chat.withhive.com/api/v1/games/{gameIndex}/channel |
HTTP METHOD | POST |
CONTENT-TYPE | application/json |
Path parameters¶
필드명 | 설명 | 타입 | 필수 여부 |
---|---|---|---|
gameIndex | Hive 게임 인덱스 | integer | Y |
Header parameters¶
필드명 | 설명 | 타입 | 필수 여부 |
---|---|---|---|
Authorization | API 호출을 위한 인증 토큰 (Bearer ) | string | Y |
Content-Type | 요청 데이터의 타입 (application/json ) | string | Y |
Request body¶
채널 생성 요청시, 필요한 전송 데이터입니다.
필드명 | 설명 | 타입 | 필수 여부 |
---|---|---|---|
channelId | 채널 ID (영어 대소문자, 숫자, 일부 특수문자( - , . , _ , ~ , : ) 사용 가능, 최대 100자) | string | Y |
playerId | 채널 생성자의 Hive 플레이어 ID | long | N |
password | 비밀번호 (PRIVATE 채널일 경우 필수)(최대 50자) | string | N |
channelName | 채널 이름 (최대 50자) | string | Y |
maxMemberCount | 최대 채널 참여 인원 (최소 2명 ~ 최대 5,000명) | integer | Y |
type | 채널 타입 (PRIVATE , PUBLIC , GROUP ) | string | Y |
Response body¶
필드명 | 설명 | 타입 |
---|---|---|
code | 응답 결과 코드 | integer |
message | 결과 메시지 | string |
Request sample¶
curl --request POST 'https://sandbox-api-chat.withhive.com/api/v1/games/1/channel' \
--header 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJIaXZlIiwiaWF0IjoxNzAyNDU4MTkzLCJqdGkiOiIxMzY2NDk4MjcxIn0.VSwvsTE-tS0sL_e9p9gNvHRkMCbsycSO4ObE4J2ysjs' \
--header 'Content-Type: application/json' \
--data'{
"channelId": "open:12345",
"playerId": 1000,
"channelName": "오픈 채팅방",
"maxMemberCount": 100,
"type": "PUBLIC"
}'
Response sample¶
채널 삭제¶
특정 채널을 삭제합니다.
Request URL¶
서버 | URL |
---|---|
LIVE | https://api-chat.withhive.com/api/v1/games/{gameIndex}/channels/{channelId} |
SANDBOX | https://sandbox-api-chat.withhive.com/api/v1/games/{gameIndex}/channels/{channelId} |
HTTP Method | DELETE |
Path parameters¶
필드명 | 설명 | 타입 | 필수 여부 |
---|---|---|---|
gameIndex | Hive 게임 인덱스 | integer | Y |
channelId | 삭제할 채널 ID | string | Y |
Header parameters¶
필드명 | 설명 | 타입 | 필수 여부 |
---|---|---|---|
Authorization | API 호출을 위한 인증 토큰 (Bearer ) | string | Y |
Response body¶
필드명 | 설명 | 타입 |
---|---|---|
code | 응답 결과 코드 | integer |
message | 결과 메시지 | string |
Request sample¶
curl --request DELETE 'https://api-chat.withhive.com/api/v1/games/1/channels/open:12345' \
--header 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJIaXZlIiwiaWF0IjoxNzAyNDU4MTkzLCJqdGkiOiIxMzY2NDk4MjcxIn0.VSwvsTE-tS0sL_e9p9gNvHRkMCbsycSO4ObE4J2ysjs'
Response sample¶
채널 입장¶
기존 채널에 사용자를 입장시킵니다.
한 사용자당 입장 할 수 있는 최대 채널의 수는 10개입니다.
Request URL¶
서버 | URL |
---|---|
LIVE | https://api-chat.withhive.com/api/v1/games/{gameIndex}/channels/{channelId}/enter |
SANDBOX | https://sandbox-api-chat.withhive.com/api/v1/games/{gameIndex}/channels/{channelId}/enter |
HTTP METHOD | POST |
CONTENT-TYPE | application/json |
Path parameters¶
필드명 | 설명 | 타입 | 필수 여부 |
---|---|---|---|
gameIndex | Hive 게임 인덱스 | integer | Y |
channelId | 채널 ID | string | Y |
Header parameters¶
필드명 | 설명 | 타입 | 필수 여부 |
---|---|---|---|
Authorization | API 호출을 위한 인증 토큰 (Bearer ) | string | Y |
Content-Type | 요청 데이터의 타입 (application/json ) | string | Y |
Request body¶
채널 입장 요청시, 필요한 전송 데이터입니다.
필드명 | 설명 | 타입 | 필수 여부 |
---|---|---|---|
playerId | 입장시킬 사용자의 Hive 플레이어 ID | long | Y |
password | 비밀번호 (PRIVATE 채널일 경우 필수) | string | N |
Response body¶
필드명 | 설명 | 타입 |
---|---|---|
code | 응답 결과 코드 | integer |
message | 결과 메시지 | string |
Request sample¶
curl --request POST 'https://api-chat.withhive.com/api/v1/games/1/channels/guild:12345/enter' \
--header 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJIaXZlIiwiaWF0IjoxNzAyNDU4MTkzLCJqdGkiOiIxMzY2NDk4MjcxIn0.VSwvsTE-tS0sL_e9p9gNvHRkMCbsycSO4ObE4J2ysjs' \
--header 'Content-Type: application/json' \
--data-raw '{
"playerId": 1001,
"password": "guildPass123"
}'
Response sample¶
채널 퇴장¶
채널에서 사용자를 퇴장시킵니다. 채널 소유자가 퇴장하더라도 해당 채널은 유지됩니다.
Request URL¶
서버 | URL |
---|---|
LIVE | https://api-chat.withhive.com/api/v1/games/{gameIndex}/channels/{channelId}/exit |
SANDBOX | https://sandbox-api-chat.withhive.com/api/v1/games/{gameIndex}/channels/{channelId}/exit |
HTTP METHOD | POST |
CONTENT-TYPE | application/json |
Path parameters¶
필드명 | 설명 | 타입 | 필수 여부 |
---|---|---|---|
gameIndex | Hive 게임 인덱스 | integer | Y |
channelId | 채널 ID | string | Y |
Header parameters¶
필드명 | 설명 | 타입 | 필수 여부 |
---|---|---|---|
Authorization | API 호출을 위한 인증 토큰 (Bearer ) | string | Y |
Content-Type | 요청 데이터의 타입 (application/json ) | string | Y |
Request body¶
채널 퇴장 요청시, 필요한 전송 데이터입니다.
필드명 | 설명 | 타입 | 필수 여부 |
---|---|---|---|
playerId | 퇴장시킬 사용자의 Hive 플레이어 ID | long | Y |
Response body¶
필드명 | 설명 | 타입 |
---|---|---|
code | 응답 결과 코드 | integer |
message | 결과 메시지 | string |
Request sample¶
curl --request POST 'https://sandbox-api-chat.withhive.com/api/v1/games/1/channels/guild:12345/exit' \
--header 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJIaXZlIiwiaWF0IjoxNzAyNDU4MTkzLCJqdGkiOiIxMzY2NDk4MjcxIn0.VSwvsTE-tS0sL_e9p9gNvHRkMCbsycSO4ObE4J2ysjs' \
--header 'Content-Type: application/json' \
--data '{
"playerId": 1001
}'
Response sample¶
공지 메시지 전송¶
게임 내 특정 채널 또는 전체 채널에 공지 메시지를 전송합니다. channelId 파라미터가 없으면 해당 gameIndex에 생성된 전체 채널에 공지 메시지가 전달됩니다.
Request URL¶
서버 | URL |
---|---|
LIVE | https://api-chat.withhive.com/api/v1/games/{gameIndex}/notice |
SANDBOX | https://sandbox-api-chat.withhive.com/api/v1/games/{gameIndex}/notice |
HTTP METHOD | POST |
CONTENT-TYPE | application/json |
Path parameters¶
필드명 | 설명 | 타입 | 필수 여부 |
---|---|---|---|
gameIndex | Hive 게임 인덱스 | integer | Y |
Header parameters¶
필드명 | 설명 | 타입 | 필수 여부 |
---|---|---|---|
Authorization | API 호출을 위한 인증 토큰 (Bearer ) | string | Y |
Content-Type | 요청 데이터의 타입 (application/json ) | string | Y |
Request body¶
공지 메시지 전송 요청 시, 필요한 전송 데이터입니다.
필드명 | 설명 | 타입 | 필수 여부 |
---|---|---|---|
channelId | 메시지를 보낼 채널 ID (channelId 가 없으면 전체 채널에 전송) | string | N |
message | 전송할 공지 메시지 내용 | string | Y |
Response body¶
필드명 | 설명 | 타입 |
---|---|---|
code | 응답 결과 코드 | integer |
message | 설명 결과 메시지 | string |
Request sample¶
curl --request POST 'https://sandbox-api-chat.withhive.com/api/v1/games/1/notice' \
--header 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJnYW1lSW5kZXgiOjEsInBsYXllcklkIjoxLCJpYXQiOjE3MzI1MTcyMzUsImV4cCI6MTczMjUyMDgzNX0.lm5eFqEuSPjsKZUItpTQvFy_2oWrMMJ_J0MPH9VFtNg' \
--header 'Content-Type: application/json' \
--data '{
"channelId": "open:12345",
"message": "서버 점검이 있습니다. 잠시 후 다시 접속해 주세요."
}'
Response sample¶
사용자 API 기능¶
채팅 서비스에 이용되는 사용자 API의 기능 별 API 요청 및 응답, 예제 코드를 설명합니다.
사용자 토큰 발급¶
Socket 서버 접속을 위한 인증 토큰을 발급합니다.
발급받은 토큰을 통해 반환된 Socket 서버 주소로 접속합니다.
Request URL¶
서버 | URL |
---|---|
LIVE | https://api-chat.withhive.com/api/v1/games/{gameIndex}/users/{playerId}/token |
SANDBOX | https://sandbox-api-chat.withhive.com/api/v1/games/{gameIndex}/users/{playerId}/token |
HTTP METHOD | POST |
Path parameters¶
필드명 | 설명 | 타입 | 필수 여부 |
---|---|---|---|
gameIndex | Hive 게임 인덱스 | integer | Y |
playerId | Hive 플레이어 ID | long | Y |
Header parameters¶
필드명 | 설명 | 타입 | 필수 여부 |
---|---|---|---|
Authorization | API 호출을 위한 인증 토큰 (Bearer ) | string | Y |
Response body¶
필드명 | 설명 | 타입 |
---|---|---|
code | 응답 결과 코드 | integer |
message | 결과 메시지 | string |
data | 응답 데이터 | object |
Response body > data¶
필드명 | 설명 | 타입 |
---|---|---|
gameIndex | Hive 게임 인덱스 | integer |
socketAddress | Socket 서버 주소 | string |
token | 발급된 토큰 | string |
Request sample¶
curl --request POST 'https://api-chat.withhive.com/api/v1/games/1/users/1001/token' \
--header 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJnYW1lSW5kZXgiOjEsInBsYXllcklkIjoxLCJpYXQiOjE3MzI1MTcyMzUsImV4cCI6MTczMjUyMDgzNX0.lm5eFqEuSPjsKZUItpTQvFy_2oWrMMJ_J0MPH9VFtNg'
Response sample¶
{
"code": 0,
"message": "Success.",
"data": {
"gameIndex": 1,
"socketAddress": "wss://test-socket-chat.withhive.com/ws",
"token": "eyJhbGciOiJIUzI1NiJ9.eyJnYW1lSW5kZXgiOjEsInBsYXllcklkIjoxLCJpYXQiOjE3MzI1MTcyMzUsImV4cCI6MTczMjUyMDgzNX0.lm5eFqEuSPjsKZUItpTQvFy_2oWrMMJ_J0MPH9VFtNg"
}
}
사용자 참여 채널 조회¶
사용자가 참여 중인 채널 목록을 조회합니다.
Request URL¶
서버 | URL |
---|---|
LIVE | https://api-chat.withhive.com/api/v1/games/{gameIndex}/users/{playerId}/channels |
SANDBOX | https://sandbox-api-chat.withhive.com/api/v1/games/{gameIndex}/users/{playerId}/channels |
HTTP METHOD | GET |
Path parameters¶
필드명 | 설명 | 타입 | 필수 여부 |
---|---|---|---|
gameIndex | Hive 게임 인덱스 | integer | Y |
playerId | Hive 플레이어 ID | long | Y |
Header parameters¶
필드명 | 설명 | 타입 | 필수 여부 |
---|---|---|---|
Authorization | API 호출을 위한 인증 토큰 (Bearer ) | string | Y |
Response body¶
필드명 | 설명 | 타입 |
---|---|---|
code | 응답 결과 코드 | integer |
message | 결과 메시지 | string |
data | 응답 데이터 | object |
Response body > data¶
필드명 | 설명 | 타입 |
---|---|---|
gameIndex | Hive 게임 인덱스 | integer |
playerId | Hive 플레이어 ID | long |
channels | 채널 목록 | array |
Response body > data > channels¶
필드명 | 설명 | 타입 |
---|---|---|
channelId | 채널 ID | string |
type | 채널 타입 (PRIVATE , PUBLIC , GROUP ) | string |
gameIndex | Hive 게임 인덱스 | integer |
owner | 채널 소유자 | string |
channelName | 채널 이름 | string |
memberCount | 현재 채널 참여 인원 | integer |
maxMemberCount | 최대 채널 참여 인원 | integer |
regTime | 채널 생성 일시 (UTC+0 기준, yyyy-MM-dd'T'HH:mm:ss.SSSZ 형식) | string |
regTimeMillis | 채널 생성 일시 (UnixTimestamp Millisecond) | integer |
Request sample¶
curl --request GET 'https://sandbox-api-chat.withhive.com/api/v1/games/1/users/1001/channels' \
--header 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJnYW1lSW5kZXgiOjEsInBsYXllcklkIjoxLCJpYXQiOjE3MzI1MTcyMzUsImV4cCI6MTczMjUyMDgzNX0.lm5eFqEuSPjsKZUItpTQvFy_2oWrMMJ_J0MPH9VFtNg'
Response sample¶
{
"code": 0,
"message": "Success.",
"data": {
"gameIndex": 1,
"playerId": 1001,
"channels": [
{
"channelId": "guild:12345",
"type": "GROUP",
"gameIndex": 1,
"owner": "1000",
"channelName": "길드 채팅방",
"memberCount": 1,
"maxMemberCount": 50,
"regTime": "2023-12-19T15:01:01.004Z",
"regTimeMillis": 1731306364351
},
{
"channelId": "open:67890",
"type": "PUBLIC",
"gameIndex": 1,
"owner": "SYSTEM",
"channelName": "오픈 채팅방",
"memberCount": 2,
"maxMemberCount": 100,
"regTime": "2023-12-20T10:15:30.123Z",
"regTimeMillis": 1731302348750
}
// ... 채널
]
}
}
사용자 차단 목록 조회¶
사용자가 차단한 사용자 목록을 조회합니다.
Request URL¶
서버 | URL |
---|---|
LIVE | https://api-chat.withhive.com/api/v1/games/{gameIndex}/users/{playerId}/blocks |
SANDBOX | https://sandbox-api-chat.withhive.com/api/v1/games/{gameIndex}/users/{playerId}/blocks |
HTTP METHOD | GET |
Path parameters¶
필드명 | 설명 | 타입 | 필수 여부 |
---|---|---|---|
gameIndex | Hive 게임 인덱스 | string | Y |
playerId | Hive 플레이어 ID | long | Y |
Header parameters¶
필드명 | 설명 | 타입 | 필수 여부 |
---|---|---|---|
Authorization | API 호출을 위한 인증 토큰 (Bearer ) | string | Y |
Response body¶
필드명 | 설명 | 타입 |
---|---|---|
code | 응답 결과 코드 | integer |
message | 결과 메시지 | string |
data | 응답 데이터 | object |
Response body > data¶
필드명 | 설명 | 타입 |
---|---|---|
gameIndex | Hive 게임 인덱스 | integer |
playerId | Hive 플레이어 ID | long |
blockedUsers | 차단 목록 | array |
Response body > data > blockedUsers¶
필드명 | 설명 | 타입 |
---|---|---|
blockedPlayerId | 차단한 사용자의 Hive 플레이어 ID | long |
blockedTime | 차단한 일시 (UTC+0 기준, yyyy-MM-dd'T'HH:mm:ss.SSSZ 형식) | string |
blockedTimeMillis | 차단한 시간 (UnixTimestamp Millisecond) | integer |
Request sample¶
curl --request GET 'https://sandbox-api-chat.withhive.com/api/v1/games/1/users/1001/blocks' \
--header 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJnYW1lSW5kZXgiOjEsInBsYXllcklkIjoxLCJpYXQiOjE3MzI1MTcyMzUsImV4cCI6MTczMjUyMDgzNX0.lm5eFqEuSPjsKZUItpTQvFy_2oWrMMJ_J0MPH9VFtNg'
Response sample¶
{
"code": 0,
"message": "Success.",
"data": {
"gameIndex": 1,
"playerId": 1001,
"blockedUsers": [
{
"blockedPlayerId": 1002,
"blockedTime": "2023-12-20T10:15:30.123Z",
"blockedTimeMillis": 1739329550811
},
{
"blockedPlayerId": 1003,
"blockedTime": "2023-12-21T08:45:12.456Z",
"blockedTimeMillis": 1739329553137
},
// ... 차단 목록
]
}
}
사용자 차단¶
사용자가 특정 사용자를 차단합니다.
Request URL¶
서버 | URL |
---|---|
LIVE | https://api-chat.withhive.com/api/v1/games/{gameIndex}/users/{playerId}/block/{blockPlayerId} |
SANDBOX | https://sandbox-api-chat.withhive.com/api/v1/games/{gameIndex}/users/{playerId}/block/{blockPlayerId} |
HTTP METHOD | POST |
Path parameters¶
필드명 | 설명 | 타입 | 필수 여부 |
---|---|---|---|
gameIndex | Hive 게임 인덱스 | string | Y |
playerId | Hive 플레이어 ID | long | Y |
blockPlayerId | 차단할 Hive 플레이어 ID | long | Y |
Header parameters¶
필드명 | 설명 | 타입 | 필수 여부 |
---|---|---|---|
Authorization | API 호출을 위한 인증 토큰 (Bearer ) | string | Y |
Response body¶
필드명 | 설명 | 타입 |
---|---|---|
code | 응답 결과 코드 | integer |
message | 결과 메시지 | string |
Request sample¶
curl --request POST 'https://sandbox-api-chat.withhive.com/api/v1/games/1/users/1001/block/1002' \
--header 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJnYW1lSW5kZXgiOjEsInBsYXllcklkIjoxLCJpYXQiOjE3MzI1MTcyMzUsImV4cCI6MTczMjUyMDgzNX0.lm5eFqEuSPjsKZUItpTQvFy_2oWrMMJ_J0MPH9VFtNg'
Response sample¶
사용자 차단 해제¶
사용자가 특정 사용자를 차단 해제합니다.
Request URL¶
서버 | URL |
---|---|
LIVE | https://api-chat.withhive.com/api/v1/games/{gameIndex}/users/{playerId}/block/{blockedPlayerId} |
SANDBOX | https://sandbox-api-chat.withhive.com/api/v1/games/{gameIndex}/users/{playerId}/block/{blockedPlayerId} |
HTTP METHOD | DELETE |
Path parameters¶
필드명 | 설명 | 타입 | 필수 여부 |
---|---|---|---|
gameIndex | Hive 게임 인덱스 | string | Y |
playerId | Hive 플레이어 ID | long | Y |
blockedPlayerId | 차단 해제할 Hive 플레이어 ID | long | Y |
Header parameters¶
필드명 | 설명 | 타입 | 필수 여부 |
---|---|---|---|
Authorization | API 호출을 위한 인증 토큰 (Bearer ) | string | Y |
Response body¶
필드명 | 설명 | 타입 |
---|---|---|
code | 응답 결과 코드 | integer |
message | 결과 메시지 | string |
Request sample¶
curl --request DELETE 'https://sandbox-api-chat.withhive.com/api/v1/games/1/users/1001/block/1002' \
--header 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJnYW1lSW5kZXgiOjEsInBsYXllcklkIjoxLCJpYXQiOjE3MzI1MTcyMzUsImV4cCI6MTczMjUyMDgzNX0.lm5eFqEuSPjsKZUItpTQvFy_2oWrMMJ_J0MPH9VFtNg'