Voice Web APIs

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

4 分で読めます

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](/game-services/voice#ポリシー コンフィギュレーション) が必要です。

ルーム トークン

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

認証

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

リクエスト

HTTP リクエスト POST /rtc/v1/{DeploymentId}/room/{RoomId}
HTTP ヘッダ
名前
Authorization Bearer <EOSAccessToken>
Content-Type application/json
パス パラメータ
名前 説明
DeploymentId 文字列 EOS デプロイメント ID
RoomId 文字列 選択した voice ルーム ID
POST ボディ パラメータ
名前 説明
participants 配列<EosRoomParticipantRequests> EosRoomParticipantRequests のリスト

EosRoomParticipantRequests

EosRoomParticipantRequests
名前 説明
puid 文字列 EOS ProductUserId
clientIP 文字列 参加者のIP。voice ルームの適切なサーバー地域を選択するために使用します
hardMuted ブーリアン 参加者の初期ミュート状態

リクエストの例

レスポンス

200 - OK: Success
HTTP ヘッダ
名前
Content-Type application/json
JSON ペイロード
名前 説明
roomId 文字列 voice ルーム ID
clientBaseUrl 文字列 voice セッションに参加するメディア サーバーの URL
participants 配列 <EosRoomParticipantInfo> EosRoomParticipantInfo のリスト
deploymentId 文字列 リクエストのデプロイメント ID

EosRoomParticipantInfo

EosRoomParticipantInfo
名前 説明
puid 文字列 EOS ProductUserId
token 文字列 メディア サーバーに参加するために使用される ProductUserId のルーム トークン
hardMuted ブーリアン 参加者のミュート状態

レスポンスの例

参加者を削除する

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

リクエスト

HTTP リクエスト DELETE /rtc/v1/{DeploymentId}/room/{RoomId}/participants/{ProductUserId}
HTTP ヘッダ
名前
Authorization Bearer <EOSAccessToken>
Content-Type application/json
パス パラメータ
名前 説明
DeploymentId 文字列 EOS デプロイメント ID
RoomId 文字列 プレーヤーのルーム ID
ProductUserId 文字列 プレーヤーの製品ユーザー ID

リクエストの例

レスポンス

HTTP Response 204 - No Content.

レスポンスの例

参加者の修正

ルーム メンバーはリモートでミュート状態にすることができます。たとえば、ローカルでのミュート状態に関わりなく、全員をミュートすることができます。

リクエスト

POST /rtc/v1/{DeploymentId}/room/{RoomId}/participants/{ProductUserId}
HTTP ヘッダ
名前
Authorization Bearer <EOSAccessToken>
Content-Type application/json
パス パラメータ
名前 説明
DeploymentId 文字列 EOS デプロイメント ID
RoomId 文字列 選択した voice ルーム ID
POST ボディ パラメータ
hardMuted ブーリアン ミュート状態: true または false

リクエストの例

レスポンス

HTTP Response 204 - No Content.

レスポンスの例