> ## Documentation Index
> Fetch the complete documentation index at: https://devdocs.xbox.com/llms.txt
> Use this file to discover all available pages before exploring further.

# PlayFab Lobby & Match との統合

> XBOX Multiplayer Activity を PlayFab Lobby および Match と統合するためのベスト プラクティス。アクティビティの更新、XUID の解決、招待処理を含みます。

このトピックでは、MPA を PlayFab Lobby および Match サービスと統合する方法について説明します。これにはベスト プラクティスと、他の類似のロビーおよびマッチメイキング サービスに適用可能な一般的なガイダンスが含まれます。

## 設計概要

MPA を PlayFab Lobby および Match または類似のサービスと統合するには、タイトルまたはタイトル サービスがロビーの状態から関連情報をクエリし、この情報を MPA サービスに移行する必要があります。MPA サービスは、ロビーやセッションの状態情報を対象としたものではありません。

### アクティビティ

[MPA Activity](/services/xbox-services/multiplayer/mpa/concepts/live-mpa-activities) の場合、ソース情報は基礎となるロビー情報である必要があります。タイトルまたはサービスは、以下のベスト プラクティスに従って MPA Activity のコンテンツ フィールドに関連情報を設定する必要があります。

* 更新頻度
  ロビー データからの状態移行は、`CurrentPlayers` 情報の更新のような変更を反映するために、適切な頻度で実行する必要があります。更新呼び出しは、[きめ細かなレート制限](/services/xbox-services/develop/best-practices/live-fine-grained-rate-limiting) で概説されている呼び出し制限を超えてはいけません。また、情報を更新するために MPA Activity を削除/再作成しないでください。

* XBOX User Identity (XUID)
  プレイヤーの XUID は、通常、XBOX services 以外のサービスでは未検証の情報であり、クロス ネットワーク サービスの主要な識別子ではありません。PlayFab Lobby は、プレイヤーにクロス ネットワークの PlayFab User Entity ID を使用します。この ID は、API またはサービスの呼び出しによってアクティブ ユーザーの XUID に変換できます。詳細については、PlayFab の [チュートリアル: プレイヤー プロファイルの取得](/services/playfab/player-progression/player-data/getting-player-profiles) を参照してください。この方法で解決された XUID のみが安全と見なされます。

  他のプレイヤーの XUID は、この方法では取得できません。解決策として、XUID を Lobby 内のプレイヤーのカスタム文字列プロパティとして提供できます。これらの文字列は安全と見なされるべきではなく、`PFAccountManagementClientGetPlayFabIDsFromXboxLiveIDsGetResult` を使用して XUID に対して期待される PlayFab User Entity ID と実際の PlayFab User Entity ID を比較することにより、常に PlayFab サービスを介して検証する必要があります。不一致は、XUID が正しくないことを示します。

  すべてのサービスにおいて、安全でない文字列として提供された XUID は安全ではなく、検証なしでは成りすまし攻撃につながる可能性があります。

* 接続文字列
  PlayFab Lobby サービスと統合するには、MPA アクティビティの接続文字列を、`PFLobbyGetConnectionString` を通じて取得できる Lobby 接続文字列に設定する必要があります。他のサービスでは、同等の参加文字列を使用する必要があります。

* ロビーの参加可能性の反映
  アクティビティは、プレイヤーがゲームプレイ体験に参加できるようにすることを目的としており、基礎となるロビー状態の参加可能性と一致させる必要があります。アクティビティが満員 (`CurrentPlayers` が `MaxPlayers` の値に達した場合) になると、アクティビティは自動的に参加不能になります。アクティビティを一時的に参加不能にしたいタイトルも、この動作を使用できます。今後の参加が不可能な場合にのみ、アクティビティを削除する必要があります。アクティビティのプライバシー設定を変更しても、すべての参加を制限するのみで、ブロックはできない点に注意してください。

  アクティビティ参加のレイテンシのため、タイトルは満員または参加不能なセッションに対して参加が実行されるフローを常に考慮し、プレイヤーに適切なエラーを提供する必要があります。

* プライバシー変更の反映
  Join Restrictions によるアクティビティ プライバシーの状態と変更は、基礎となる PlayFab Lobby に対して定義された Access Policy を反映する必要があります。同様のサービスにも同じことが当てはまり、プライバシー値のマッピングが必要になる場合があります。

### 招待

[MPA Invites](/services/xbox-services/multiplayer/mpa/concepts/live-mpa-invites) の場合、推奨されるソースも基礎となるロビー情報である必要があります。このベスト プラクティスのアプローチは、PlayFab Party のようなネットワーク メッシュへの招待より信頼性が高く、ロビー データを通じて状態情報を即座に提供できます。

PlayFab Lobby サービスと統合するには、MPA 招待の接続文字列を Lobby 接続文字列に設定する必要があります。この文字列は、`PFLobbyGetConnectionString` を通じて取得できます。さらに、招待に適切なクロス プラットフォーム参加値を設定する必要があります。

### 最近のプレイヤー

[MPA Recent Players](/services/xbox-services/multiplayer/mpa/concepts/live-mpa-recent-players) 機能の使用は、基礎となるロビーと密接に結びついておらず、タイトル ロジックによって駆動できます。最近のプレイヤー呼び出しは、[きめ細かなレート制限](/services/xbox-services/develop/best-practices/live-fine-grained-rate-limiting) で概説されている呼び出し制限を超えてはいけません。ベスト プラクティスとして、最近のプレイヤー アクティビティは、呼び出し制限を遵守するために合理的な時間範囲内でバッチ処理する必要があります。タイトルによる最近のプレイヤーの報告は即時である必要はなく、バッチ送信が推奨されます。

### マッチメイキング

PlayFab Match または類似のマッチメイキング サービスの統合には、直接的な MPA 機能は必要ありません。参加が不可能な場合、タイトルはマッチメイキング中に MPA Activity の参加可能性を更新することを望む場合があります。ベスト プラクティスとして、PlayFab Match は PlayFab Lobby と組み合わせて使用する必要があります。

ロビーのユーザー ID と同様に、PlayFab Match はプレイヤーにクロス ネットワークの PlayFab User Entity ID を使用します。この ID は、API またはサービスの呼び出しによってアクティブ ユーザーの XUID に変換できます。他のプレイヤーの XUID は、この方法では取得できません。ロビーと同様の解決策として、XUID を Lobby 内のプレイヤーのカスタム文字列プロパティとして提供できます。これらの文字列は安全と見なされるべきではなく、上記の PlayFab Lobby で説明したように、XUID に対して期待される PlayFab User Entity ID と実際の PlayFab User Entity ID を比較することにより、常に PlayFab サービスを介して検証する必要があります。不一致は、XUID が正しくないことを示します。

マッチメイキングにおいて、安全でない文字列として提供された XUID は安全ではなく、検証なしでは成りすまし攻撃につながる可能性があります。

## 一般的なベスト プラクティス

MPA サービスは、PlayFab Lobby と Match のようなロビーやマッチ サービスの上に XBOX 機能を提供する軽量な統合ポイントとして設計されています。この統合は軽量であり、必要な情報と関連する更新を Activity、招待、および最近のプレイヤー機能に反映するための特定の接続ポイントでのみ実行できます。

さらに、MPA サービスの統合では、サービス間エンドポイントも考慮する必要があります。ゲーム、マルチプレイヤー、およびサーバー アーキテクチャに応じて、サービス間の直接呼び出しはクライアント呼び出しよりもはるかにシンプルで信頼性が高くなる可能性があります。これは MMO タイトルによく当てはまります。

PlayFab Lobby および Match の一部としてカスタム文字列に保存された XUID 情報と同様に、その他のカスタム ID 情報も常に安全ではないと見なされ、使用前に検証する必要があります。検証を行わないと、特にゲームプレイがユーザー アクセスと保護がより多いプラットフォームを含む場合、成りすまし攻撃につながる可能性があります。
