Voice Web API

ボイス インターフェース機能を使用して、RESTful サービスで Voice Web API を使用します。

Epic Online Services (EOS) Voice インターフェース は、ユーザー間のボイス チャット ルームを作成および管理するのに役立ちます。このインターフェースを使用して、対戦中やアプリケーションのロビーで、複数のプラットフォーム間で一対一またはグループでコミュニケーションを取ることができます。

EOS CSDK の代わりに Voice Web API を使用して、カスタム ルームの管理と承認を実装する信頼できるサーバー アプリケーションを作成することができます。Voice Web API を呼び出す前に、Web API 概要 で標準、認証エラーコード を確認してください。

Voice C インターフェース と同様に、Voice Web API は 信頼できるサーバー でのみの使用を目的とし、userRequired を無効にするポリシーが必要です。

Voice Web API エンドポイント

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

ルーム トークンを作成する

メディアサーバーで音声会議に参加するには、ユーザーはルーム トークンを提供する必要があります。

createRoomToken リクエストは、オプションのプレイヤー IP アドレスを使用して音声セッションに最適なサーバー リージョンを選択し、これらのトークンに ProductUserIds のリストを照会します。

指定された roomId が存在しないと、作成されます。

結果には、プレイヤー ルーム トークンと、音声セッションをホストするメディア サーバーのエンドポイントが含まれます。

ポリシー

クライアントは Voice:createRoomToken policy が必要です。

ルーム トークン

応答に含まれる個々のトークンは、それらを要求した対応するプレイヤー (ProductUserId) とのみ共有する必要があり、グループ全体に表示されないようにする必要があります。これにより、キックされたプレイヤーが別のプレイヤーのトークンを再利用して再参加できる可能性があります。

認証

この呼び出しには、Connect インターフェス Web API から取得した EOS クライアント認証アクセス トークンを使用した Bearer トークン認証が必要です。

createRoomToken 要求

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

HTTP Headers

Name

Value

Authorization

Bearer <EOSAccessToken>

Content-Type

application/json

Path Parameters

Name

Type

Description

DeploymentId

String

The EOS deployment ID

RoomId

String

A chosen voice room ID

POST Body Parameters

Name

Type

Description

participants

Array <EosRoomParticipantRequests>

List of EosRoomParticipantRequests

EosRoomParticipantRequests

Name

Type

Description

puid

String

The EOS ProductUserId

clientIP

String

IP of the Participant, used to select an appropriate server region for the voice room.

hardMuted

Boolean

Initial mute status of the participant

要求の例

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 Response

200 - OK:Success

HTTP Headers

Name

Value

Content-Type

application/json

JSON Payload

Name

Type

Description

roomId

String

The voice room ID

clientBaseUrl

String

The URL of the media server to join for the voice session

participants

Array <EosRoomParticipantInfo>

List of EosRoomParticipantInfo

deploymentId

String

The deployment ID of the request

EosRoomParticipantInfo

puid

String

The EOS ProductUserId

token

String

The room token for that ProductUserId used to join the media server.

hardMuted

Boolean

Mute status of the participant

応答の例

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

removeParticipant 要求

removeParticipant 要求は、プレイヤーをボイス ルームから削除し、ルーム トークンを取り消します。これにより、既存のトークンを再利用して同じルームへ再び参加することを防ぎます。

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

HTTP Headers

Name

Value

Authorization

Bearer <EOSAccessToken>

Content-Type

application/json

Path Parameters

DeploymentId

String

The EOS deployment ID

RoomId

String

The player's room ID

ProductUserId

String

The player's product user ID

要求の例

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

removeParticipant Response

204 - No Content

応答の例

204 No Content

modifyParticipant リクエスト

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

HTTP Headers

Name

Value

Authorization

Bearer <EOSAccessToken>

Content-Type

application/json

Path Parameters

Name

Type

Description

DeploymentId

String

The EOS deployment ID

RoomId

String

A chosen voice room ID

POST Body Parameters

hardMuted

Boolean

Muted status: true or 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 - No Content

応答の例

204 No Content