Zugreifen auf PlayFab mit einer Titelentität
Ähnlich wie Sie sich als Spieler anmelden und PlayFab-Aufrufe tätigen können, können Sie sich als Titelentität authentifizieren und auch Über sie PlayFab-Aufrufe tätigen. Titelentitäten können bestimmte Funktionen verwenden, die für Spielerentitäten nicht verfügbar sind. Vielen dieser Funktionen wird das Wort "server" vorangestellt. Ein Beispiel hierfür ist ServerAddPlayerTag.
Das Abrufen eines Titelentitätshandles umfasst die gleichen Initialisierungsschritte wie die Anmeldung als Spieler. Ausführliche Informationen finden Sie im Abschnitt "Initialisierung" des Artikels Schnellstart für Win32 .
Hinweis: Derzeit sind Serverfunktionen nur in der Win32-Version des SDK verfügbar.
Nachdem Sie in den ersten Schritten eine PFServiceConfigHandle erstellt haben, können Sie ein Titelentitätshandle abrufen, indem Sie PFAuthenticationGetEntityWithSecretKeyAsync aufrufen. Nachdem der Get-Entitätsaufruf erfolgreich abgeschlossen wurde, wird S_OK zusammen mit pfEntityHandle zurückgegeben. Dieser Vorgang ähnelt der Anmeldung als Spieler. Der Rückgabetyp von PFEntityHandle ist identisch, mit der Ausnahme, dass in diesem Fall das Entitätshandle eine Titelentität und nicht eine Playerentität darstellt. Wir können diese Entität als Spielserver bezeichnen.
PFAuthenticationGetEntityRequest request{};
XAsyncBlock async{};
// Add your own error handling when FAILED(hr) == true
HRESULT hr = PFAuthenticationGetEntityWithSecretKeyAsync(
serviceConfigHandle,
secretKey, // title specific secret key
&request,
&async
);
hr = XAsyncGetStatus(&async, true); // This is doing a blocking wait for completion, but you can use the XAsyncBlock to set a callback instead for async style usage
PFEntityHandle entityHandle;
hr = PFAuthenticationGetEntityWithSecretKeyGetResult(
&async,
&entityHandle
);
Nachdem der Spielserver erstellt wurde, können Sie Aufrufe an das PlayFab-Back-End senden. Hier sehen Sie ein Beispiel für das Hinzufügen von Spielertags zu einem bestimmten Spieler im Titel.
XAsyncBlock async{};
PFSegmentsAddPlayerTagRequest request{};
addSegmentRequest.PlayFabId = "ABCDEF123456";
addSegmentRequest.tagName = "tagName";
HRESULT hr = PFSegmentsServerAddPlayerTagAsync(entityHandle, &request, &async);
hr = XAsyncGetStatus(&async, true);
Wie im AddPlayerTag-Beispiel umfassen viele der von einem Spielserver verwendeten Funktionen das Abrufen oder Ändern von Spielerdaten. Diese Funktion erfordert die PlayFab-ID des jeweiligen Spielers. Verbundene Clients können PlayFab-IDs bereitstellen, oder der Server kann sie über Aufrufe wie GetPlayFabIDsFromXboxLiveIDs direkt aus PlayFab abrufen.