Freigeben über


Verwenden von Verlegerdaten

In diesem Tutorial wird beschrieben, wie Sie Publisher -Daten (Studio) erstellen und verwenden.

Herausgeberdaten sind Daten, die sich über mehrere Titel erstrecken, z. B. wenn Sie über mehrere Spiele verfügen, die gemeinsame Informationen gemeinsam nutzen müssen.

Notiz

Diese Kategorie enthält auch Daten für Spieler, die sich über mehrere Spiele erstrecken. PlayFab speichert Daten als Schlüssel-Wert-Paare (KVPs).

Die meisten dieser APIs sind Server-APIs, die Ihr Programm von einem dedizierten Server oder über eine CloudScript-Funktion innerhalb des PlayFab-Diensts aufrufen muss.

Sie müssen die Server-APIs von einem dedizierten Server oder über eine CloudScript-Funktion über den PlayFab-Dienst aufrufen. Dies ist beabsichtigt, da die PlayFab-Server-APIs erfordern, dass Sie Ihren geheimen Schlüssel angeben.

Tipp

Die Verwendung von Server-APIs innerhalb eines Spielclients wird nicht empfohlen . Wenn Sie eine Server-API verwenden müssen, verwenden Sie CloudScript für diese Art von Funktionalität.

Verlegerdatenwerte werden kopiert und auf potenziell Hunderte von Computern im PlayFab-Clusterserver verteilt. Im Rahmen dieses Prozesses werden diese Daten zwischengespeichert, und änderungen können bis zu fünfzehn Minuten dauern, bis die Aktualisierung in diesen Caches erfolgt.

Notiz

Verlegerdaten eignen sich am besten für globale konstante/statische Daten und sind nicht geeignet oder zuverlässig als globale Variablen.

Publisher-Daten

Herausgeberdaten werden verwendet, um statische Daten für eine Gruppe von Titeln zu speichern. Jeder Eintrag ist nicht an eine PlayFab-Entität gebunden, z. B. an einen Spieler (im Gegensatz zu Benutzerherausgeberdaten).

Festlegen von Verlegerdaten

Der folgende Codeausschnitt veranschaulicht, wie Verlegerdaten mithilfe der Server-API festgelegt werden.

Notiz

Es gibt eine Administrator-API-Entsprechung für diesen Vorgang.

public void ServerSetPublisherData() {
    PlayFabServerAPI.SetPublisherData(new SetPublisherDataRequest() {
            Key = "SomeKey",
            Value = "SomeValue"
        },
        result => Debug.Log("Complete setting publisher data"),
        error => {
            Debug.Log("Got error setting publisher data");
            Debug.Log(error.GenerateErrorReport());
        }
    );
}

Abrufen von Verlegerdaten

Der folgende Codeausschnitt veranschaulicht das Abrufen von Verlegerdaten mithilfe der Client-API.

Notiz

Es gibt Server- und Administrator-API-Entsprechungen für diesen Vorgang.

public void ClientGetPublisherData() {
    PlayFabClientAPI.GetPublisherData(new GetPublisherDataRequest(),
    result => {
        if (result.Data == null || !result.Data.ContainsKey("SomeKey")) Debug.Log("No SomeKey");
        else Debug.Log("SomeKey: " + result.Data["SomeKey"]);
    },
    error => {
        Debug.Log("Got error getting publisher data");
        Debug.Log(error.GenerateErrorReport());
    });
}

Benutzerherausgeberdaten

Benutzerherausgeberdaten können verwendet werden, um Publisher-Daten einzuführen, die an einen PlayFab-Benutzer (Player) gebunden sind.

Im Gegensatz zu regulären Publisher-Daten ist es möglich, dass eine Clientanwendung Benutzerverlegerdaten ändert.

PlayFab macht drei Schutzebenen für Benutzerherausgeberdaten aus Sicht der Client-API verfügbar:

  1. Publisher-Daten von regulären Benutzern machen Lese- und Schreibzugriff für Clientanwendungen verfügbar.

    • Wird über Client, Server und Admin-API festgelegt.
    • Rufen Sie über Client, Server und Admin-API ab.
    • Die Client-API darf nur Herausgeberdaten für einen Spieler festlegen, der derzeit angemeldet ist.
  2. Schreibgeschützter Benutzer Publisher-Daten machen Lesezugriff für Clientanwendungen verfügbar.

    • Wird über server and Admin API festgelegt.
    • Rufen Sie über Client, Server und Admin-API ab.
  3. Interne Benutzerherausgeberdaten machen keinen Zugriff für Clientanwendungen verfügbar und werden zum Speichern des geheimen Teils der Benutzerdaten verwendet.

    • Wird über server and Admin API festgelegt.
    • Rufen Sie über die Server- und Admin-API ab.

Festlegen von Benutzerherausgeberdaten

Der folgende Codeausschnitt veranschaulicht, wie Sie alle drei Arten von Verlegerdaten mithilfe von Client- und Server-APIs festlegen.

// Use Client API to set User Publisher Data for current user
public void ClientSetUserPublisherData() {
    PlayFabClientAPI.UpdateUserPublisherData(new UpdateUserDataRequest() {
         Data  = new Dictionary<string, string>() {
             { "SomeKey", "SomeValue" }
         }
    },
    result => Debug.Log("Complete setting Regular User Publisher Data"),
    error =>
    {
        Debug.Log("Error setting Regular User Publisher Data");
        Debug.Log(error.GenerateErrorReport());
    });
}

// Use Server API to set Read-Only User Publisher Data for selected user
public void ServerSetUserPublisherReadOnlyData() {
    PlayFabServerAPI.UpdateUserPublisherReadOnlyData(new UpdateUserDataRequest() {
         PlayFabId = "< PlayFab Player Id >",
         Data  = new Dictionary<string, string>() {
             { "SomeKey", "SomeValue" }
         }
    },
    result => Debug.Log("Complete setting Read-Only User Publisher Data"),
    error =>
    {
        Debug.Log("Error setting Read-Only User Publisher Data");
        Debug.Log(error.GenerateErrorReport());
    });
}

// Use Server API to set Internal User Publisher Data for selected user
public void ServerSetUserPublisherInternalData() {
    PlayFabServerAPI.UpdateUserPublisherInternalData(new UpdateUserInternalDataRequest() {
         PlayFabId = "< PlayFab Player Id >",
         Data  = new Dictionary<string, string>() {
             { "SomeKey", "SomeValue" }
         }
    },
    result => Debug.Log("Complete setting Internal User Publisher Data"),
    error =>
    {
        Debug.Log("Error setting Internal User Publisher Data");
        Debug.Log(error.GenerateErrorReport());
    });
}

Abrufen von Benutzerherausgeberdaten

Der folgende Codeausschnitt veranschaulicht, wie Sie alle drei Arten von Verlegerdaten mithilfe von Client- und Server-APIs abrufen.

// Use Client API to get Regular User Publisher Data for selected user
public void ClientGetUserPublisherData() {
    PlayFabClientAPI.GetUserPublisherData(new GetUserDataRequest() {
        PlayFabId = "<PlayFab Player Id>"
    }, result => {
        if (result.Data == null || !result.Data.ContainsKey("SomeKey")) Debug.Log("No SomeKey");
        else Debug.Log("SomeKey: " + result.Data["SomeKey"]);
    },
    error => {
        Debug.Log("Got error getting Regular Publisher Data:");
        Debug.Log(error.GenerateErrorReport());
    });
}

// Use Client API to get Read-Only User Publisher Data for selected user
public void ClientGetUserPublisherReadOnlyData() {
    PlayFabClientAPI.GetUserPublisherReadOnlyData(new GetUserDataRequest() {
        PlayFabId = "<PlayFab Player Id>"
    }, result => {
        if (result.Data == null || !result.Data.ContainsKey("SomeKey")) Debug.Log("No SomeKey");
        else Debug.Log("SomeKey: " + result.Data["SomeKey"]);
    },
    error => {
        Debug.Log("Got error getting Read-Only Publisher Data:");
        Debug.Log(error.GenerateErrorReport());
    });
}

// Use Server API to get Internal User Publisher Data for selected user
public void ServerGetUserPublisherInternalData() {
    PlayFabServerAPI.GetUserPublisherInternalData(new GetUserDataRequest() {
        PlayFabId = "<PlayFab Player Id>"
    }, result => {
        if (result.Data == null || !result.Data.ContainsKey("SomeKey")) Debug.Log("No SomeKey");
        else Debug.Log("SomeKey: " + result.Data["SomeKey"]);
    },
    error => {
        Debug.Log("Got error getting Internal Publisher Data:");
        Debug.Log(error.GenerateErrorReport());
    });
}

Weitere Informationen