Voice Web APIs

보이스 웹 API를 통해 RESTful 서비스에서 보이스 인터페이스 기능을 사용합니다.

4 분 소요

개발자는 에픽 온라인 서비스(EOS) 보이스 인터페이스를 통해 사용자끼리 대화할 수 있는 음성 채팅방을 만들고 관리할 수 있습니다. 멀티 플랫폼의 사용자가 매치 도중이나 애플리케이션의 로비에서 1대1로 또는 여럿이서 소통할 수 있습니다.

EOS C SDK 대신 보이스 웹 API를 사용하여 커스텀 방 관리 및 권한을 구현하는 신뢰할 수 있는 서버 애플리케이션을 생성할 수 있습니다. Voice 웹 API를 호출하기 전에 웹 API 개요에서 표준 인증오류 코드를 확인하세요.

보이스 C 인터페이스와 마찬가지로 보이스 웹 API는 신뢰할 수 있는 서버에서 사용하는 용도이며 userRequired 가 비활성화된 정책이 필요합니다.

보이스 웹 API 엔드포인트

https://api.epicgames.dev/rtc/

방 토큰 생성

미디어 서버에서 음성 회의에 참가하기 위해 사용자는 방 토큰을 제공해야 합니다.

createRoomToken 요청은 ProductUserIds 목록을 위해 이러한 토큰을 쿼리하며, 음성 세션에 가장 적합한 서버 지역을 선택하기 위해 선택적 플레이어 IP 주소를 사용합니다.

지정된 roomId가 없으면, 방 토큰이 생성됩니다.

요청 결과에는 플레이어 방 토큰과 더불어 음성 세션을 호스팅할 미디어 서버의 엔드포인트가 포함됩니다.

정책

클라이언트에 Voice:createRoomToken 정책이 있어야 합니다.

방 토큰

응답에 포함된 개별 토큰은 토큰을 요청한 해당 플레이어(ProductUserId)에게만 공유되어야 하며 전체 그룹에 표시되면 안 됩니다. 전체 그룹에 표시되면 추방된 플레이어가 다른 플레이어의 토큰을 재사용하여 다시 참가할 수 있기 때문입니다.

인증

이 호출은 연결 인터페이스 웹 API에서 얻은 EOS 클라이언트 인증 액세스 토큰을 통한 Bearer 토큰 인증이 필요합니다.

createRoomToken 요청

POST /rtc/v1/{'}DeploymentId{'}/room/{'}RoomId{'}

HTTP 헤더
이름
AuthorizationBearer <EOSAccessToken>
Content-Typeapplication/json
경로 파라미터
이름유형설명
DeploymentId스트링 EOS 디플로이 ID
RoomId스트링 선택한 음성 채팅방 ID

POST 본문 파라미터

이름유형설명
participants

<EosRoomParticipantRequests> 배열

EosRoomParticipantRequests 목록

EosRoomParticipantRequests

이름유형설명
puid스트링 EOS ProductUserId
clientIP스트링 참여자의 IP로, 음성 채팅방의 서버 지역을 적절하게 선택하는 데 사용
hardMuted부울 참여자의 초기 음소거 상태

요청 예시

curl -X "POST" \ "https://api.epicgames.dev/rtc/v1/<deploymentId>/room/<roomId>" \
-H "accept: application/json" \
-H "Authorization: Bearer <EOSAccessToken>" \
-H "Content-Type: application/json" \
-d "{ \"participants\": [ { \"puid\": \"<ProductUserId>\",\"clientIp\": \"<ClientIp>\", \"hardMuted\": false } ] }"

createRoomToken 응답

200 - OK: 성공

HTTP 헤더
이름
Content-Typeapplication/json
JSON 페이로드
이름유형설명
roomId스트링 음성 채팅방 ID
clientBaseUrl스트링 음성 세션에 참가할 미디어 서버의 URL
participants

배열 <EosRoomParticipantInfo>

EosRoomParticipantInfo 목록

deploymentId스트링 요청의 디플로이 ID
EosRoomParticipantInfo
puid스트링 EOS ProductUserId
token스트링 미디어 서버 참가에 사용되는 해당 ProductUserId의 방 토큰
hardMuted부울 참여자의 음소거 상태

응답 예시

{
"roomId": "<RoomId>",
"participants": [
{
"puid": "<ProductUserId>",
"token": "<AccessToken>",
"hardMuted": false
}
],
"clientBaseUrl": "<MediaServerUrl>",
"deploymentId": "<DeploymentId>"
}

removeParticipant 요청

removeParticipant 요청은 음성 채팅방에서 플레이어를 제거하고 제거된 플레이어의 방 토큰을 취소하여 기존 토큰으로 같은 방에 다시 참가하지 못하게 합니다.

DELETE /rtc/v1/{DeploymentId}/room/{RoomId}/participants/{ProductUserId}

HTTP 헤더
이름
Authorization

Bearer <EOSAccessToken>

Content-Typeapplication/json
경로 파라미터
이름유형설명
DeploymentId스트링 EOS 디플로이 ID
RoomId스트링 플레이어의 방 ID
ProductUserId스트링 플레이어의 제품 사용자 ID

요청 예시

curl -X "DELETE" \ "https://api.epicgames.dev/rtc/v1/<deploymentId>/room/<roomId>/participants/<ProductUserId>" \
-H "Authorization: Bearer<EOSAccessToken>"

removeParticipant 응답

204 - 콘텐츠 없음

응답 예시

204 콘텐츠 없음

modifyParticipant 요청

POST /rtc/v1/{'}DeploymentId{'}/room/{'}RoomId{'} /participants/{'}ProductUserId{'}

HTTP 헤더
이름
Authorization

Bearer <EOSAccessToken>

Content-Typeapplication/json
경로 파라미터
이름유형설명
DeploymentId스트링 EOS 디플로이 ID
RoomId스트링 선택한 음성 채팅방 ID
POST 본문 파라미터
hardMuted부울

음소거 상태: true 또는 false

요청 예시

curl -X "POST" \ "https://api.epicgames.dev/rtc/api/v1/<deploymentId>/room/<roomId>/participants/<ProductUserId>" \
-H "Content-Type: application/json" \
-d "{\"hardMuted\":true}"

modifyParticipant 응답

204 - 콘텐츠 없음

응답 예시

204 콘텐츠 없음