Veröffentlichen Ihrer ersten benutzergenerierten Inhalte
Wichtig
Economy v2 ist jetzt allgemein verfügbar. Unterstützung und Feedback erhalten Sie im PlayFab-Forum.
Dieses Tutorial führt Sie durch die Veröffentlichung von UGC mit Inhalten sowohl über APIs als auch über die Game Manager-Benutzeroberfläche, wobei sie ausführlicher als in der Schnellstartanleitung behandelt wird.
Voraussetzungen
- Ein PlayFab-Entwicklerkonto
- Ein UGC-fähiger Titel
Über APIs
In diesem Abschnitt nutzen wir die Postman-Sammlungen für die Interaktion mit den PlayFab-UGC-APIs, aber Sie können jedes unserer SDKs nutzen.
Erstellen von Blob-URLs
Das UGC-System funktioniert mit dem PlayFab-Entitätsmodell. Daher müssen wir Entitätstoken anstelle von Sitzungstickets verwenden, um diese APIs aufzurufen. Informationen zum Abrufen eines Titelentitätstokens finden Sie im Schnellstart zu Postman-Sammlungen.
Das UGC-System nutzt Azure Blob Storage, um alle Inhalte (Dateien und Bilder) zu speichern, die dem UGC Ihres Titels zugeordnet sind. Um den Inhalt hochzuladen, müssen wir zuerst die
CreateUploadUrls
API aufrufen und die Dateinamen und Größen (in Bytes) übergeben, um die neuen Blobs zu erstellen. Wenn ich beispielsweise eine Textdatei und ein PNG-Bild hochladen möchte, würde ich Folgendes an den Anforderungstext übergeben:{ "Files": [ { "FileName": "HelloWorld.txt", "FileSize": 12 }, { "FileName": "PlayFabLogo.png", "FileSize": 20725 } ] }
Die Antwort enthält ein
Id
undUrl
für jeden Inhalt:{ "code": 200, "status": "OK", "data": { "UploadUrls": [ { "Id": "[Content ID]", "Url": "[Content Url + '?' + Token]", "FileName": "HelloWorld.txt" }, { "Id": "[Image ID]", "Url": "[Image Url + '?' + Token]", "FileName": "PlayFabLogo.png" } ] } }
Notiz
Jedes Erstellungstoken (das im Feld "Url" der Antwort zurückgegeben wird) ist 6 Stunden lang gültig, danach können Sie keinen Inhalt mehr in das Blob hochladen. Wenn Sie keine Inhalte in das Blob hochgeladen haben, wird dieser von unserem Dienst bereinigt, und Sie müssen ein neues Blob erstellen, indem Sie erneut aufrufen
CreateUploadUrls
. Diese URL lässt auch erst den Zugriff auf Inhalte zu, wenn in ein Entwurfselement hochgeladen wurde, wo es eine andere (jetzt öffentlich zugängliche) URL erhält.Notiz
Jedes Blob sollte nur in einem Element verwendet werden. Wenn Sie möchten, dass ein Teil des Inhalts in mehreren Elementen wiederholt wird, sollten Sie den Inhalt erneut in verschiedene Blobs hochladen.
Hochladen von Inhalten in Blobs
Es gibt verschiedene Möglichkeiten, Ihre Inhalte in diese URLs hochzuladen.
Über Postman
Erstellen Sie eine
PUT
Anforderung mit der URL, die durch den AufrufCreateUploadUrls
generiert wurde, und durch Hinzufügen voncomp: blob
undx-ms-blob-type: blockblob
als Header:Anschließend können Sie die Datei hochladen, indem Sie binär als Texttyp auswählen:
Über AzCopy
Eine weitere Option ist die Verwendung des AzCopy-Tools. Hier können Sie das Tool herunterladen und mit AzCopy beginnen .
Rufen Sie im Terminal Ihrer Wahl azcopy mit den folgenden Parametern auf:
[relative path to azcopy.exe] copy [relative path to local content] [Url + '?' + Token]
Erstellen der Entwurfs-UGC
Nachdem die Dateien und Bilder erfolgreich hochgeladen wurden, können Sie aufrufen
CreateDraftItem
und die URLs des Inhalts und der Bilder übergeben, um Ihr erstes Element im Entwurfskatalog zu erstellen:{ "Item": { "Type": "ugc", "Title": { "NEUTRAL": "Hello World!" }, "Description": { "NEUTRAL": "My first UGC item (with content!)" }, "ContentType": "Game Item", "IsHidden": false, "Contents": [ { "Id": "[Content ID]", "Url": "[Content Url]" } ], "Images": [ { "Id": "[Image ID]", "Type": "Thumbnail", "Url": "[Image Url]" } ] }, "Publish": false, "AllowOverwrite": false }
Notiz
Beim Hochladen von Bildern in Elemente muss jedes Bild mit einem
Type
Parameter klassifiziert werden. Dies kann entweder eine "Miniaturansicht" oder ein "Screenshot" sein. Jedes Element ist auf nur ein Bild vom Typ "Miniaturansicht" beschränkt, und standardmäßig gibt Suchvorgänge das Bild "Miniaturansicht" (sofern vorhanden) zurück.Die Antwort gibt die von Ihnen übergebenen Metadaten zusammen mit einer Element-ID zurück:
{ "code": 200, "status": "OK", "data": { "Item": { ... "Id": "e5427509-1b72-4ee1-9e6c-03fc055a94f3", ... } } }
Notiz
Die vom erstellten Entwurfselement zurückgegebenen Inhalts-/Bild-URLs und der ursprüngliche
CreateUploadUrls
Aufruf unterscheiden sich. Unabhängig davon, wie Sie Inhalte hochladen möchten, können Sie testen, ob der Upload erfolgreich war, indem Sie die Basis-URL (vor dem "?") kopieren und in Ihrem Browser zu ihr navigieren. Dadurch wird das Bild erst zurückgegeben, nachdem es in ein Entwurfselement hochgeladen wurde, nicht mithilfe der URL vonCreateUploadUrls
.Der UGC-Entwurf ist jetzt im Entwurfskatalog vorhanden! Solange das UGC-Element noch nicht veröffentlicht wurde, kann es nicht über den öffentlichen Katalog durchsucht werden. Sie können dieses UGC-Element finden, indem Sie eine der folgenden APIs aufrufen:
-
GetDraftItem
, indem die aus derCreateDraftItem
Antwort abgerufene Element-ID übergeben wird. -
GetDraftItems
, übergeben eine Liste bekannter Element-IDs -
GetEntityDraftItems
, übergeben eine Entitäts-ID und/oder übergeben das ContinuationToken von jeder vorherigen Antwort an seite durch die Liste der Entwurfselemente
-
Notiz
Wenn Sie sofort veröffentlichen möchten, können Sie das Publish
Feld in true ändern.
- Wenn Sie bereit sind, das UGC-Element zu veröffentlichen, rufen Sie auf
PublishDraftItem
, und übergeben Sie die Element-ID (aus derCreateDraftItem
Antwort abgerufen). - Wenn Ihr UGC-Element mehrere besonders große Dateien enthält, kann die Veröffentlichung des Elements einige Zeit in Anspruch nehmen, und wenn viele andere Spieler gleichzeitig Inhalte hochladen, kann dieser Vorgang noch mehr Zeit in Anspruch nehmen. Sie können die status der Veröffentlichung überprüfen, indem Sie aufrufen
GetItemPublishStatus
und die Element-ID (aus derCreateDraftItem
Antwort abgerufen) übergeben. Es gibt einige mögliche Status:-
Succeeded
– Das UGC-Element wurde erfolgreich veröffentlicht. -
Pending
– das UGC-Element wird noch veröffentlicht. -
Failed
- Fehler bei der Veröffentlichung des UGC-Elements und wird erst veröffentlicht, wenn der verletzende Inhalt geändert wurde -
Unknown
– Dies ist die Standard-status und wird vor dem AufrufenPublishDraftItem
des UGC-Elements zurückgegeben. -
Canceled
– Ein interner Fehler ist aufgetreten. Versuchen Sie es erneut, das Element zu veröffentlichen (wenn diese status mehrmals angezeigt wird, wenden Sie sich an das PlayFab-Entwicklungsteam.
-
- Nachdem das UGC-Element erfolgreich veröffentlicht wurde, können Sie es über
SearchItems
suchen oder direkt überGetItem
abrufen, wenn Sie über die Element-ID verfügen. - Sie können vor oder nach der Veröffentlichung Änderungen am UGC-Element vornehmen, indem Sie die folgenden Schritte ausführen:
- Rufen Sie auf
GetDraftItem
, und übergeben Sie die Element-ID (aus derCreateDraftItem
Antwort abgerufen) - Kopieren der Daten des UGC-Elements (alles im
data
Feld) - Rufen Sie auf
UpdateDraftItem
, und übergeben Sie die Daten des geänderten UGC-Elements. - Wenn Sie dateien oder Images aktualisieren möchten, müssen Sie ein weiteres Blob erstellen, indem Sie erneut aufrufen
CreateUploadUrls
. - Erneutes Veröffentlichen des UGC-Elements durch Aufrufen von
PublishDraftItem
- Rufen Sie auf
Über Game Manager
In diesem Abschnitt erstellen wir ein UGC-Element vollständig innerhalb der Game Manager-Benutzeroberfläche - kein Code erforderlich!
Erstellen des Entwurfskatalogelements
Navigieren Sie zur Seite UGC, indem Sie Economy>Catalog (v2) auswählen.
Wählen Sie Neues Element aus.
Füllen Sie die entsprechenden Metadaten für Ihr UGC-Element aus:
Feldname Wert Entitätstyp title_player_account Entitäts-ID [Ihre Spieler-ID] Inhaltsart Spielelement Startdatum [beliebiges Datum in der Vergangenheit] Titel { "NEUTRAL": "Hello World!" }
Beschreibung { "NEUTRAL": "My first UGC item (with content!)" }
Laden Sie in den Abschnitten Dateien und Bilder den entsprechenden Inhalt hoch, indem Sie auf die Schaltfläche Hochladen klicken.
Wählen Sie Speichern und veröffentlichen aus.
Das UGC-Element wird jetzt automatisch als Entwurfselement erstellt und im öffentlichen Katalog veröffentlicht. Sie können dieses Element nun in der Tabelle mit anderen veröffentlichten UGC-Elementen finden.
Notiz
Es gibt derzeit keine Möglichkeit, das Entwurfselement zu überprüfen oder status in Game Manager zu veröffentlichen . Dies kann nur über die APIs erfolgen.
- Wenn Sie Änderungen am veröffentlichten UGC-Element vornehmen möchten, können Sie dies wie folgt tun:
- Auswählen des veröffentlichten UGC-Elements aus der Tabelle
- Nehmen Sie die entsprechenden Änderungen vor
- Wählen Sie Speichern und veröffentlichen aus.
Problembehandlung
- Ungültige Anforderung: Der Inhaltstyp "Spielelement" wird nicht unterstützt.
- Wenn Inhaltstypen in der Konfiguration Ihres Titels angegeben wurden (entweder über
GetCatalogConfig
/UpdateCatalogConfig
oder in Game Manager auf der Registerkarte Economy-Einstellungen ), müssen Sie der Liste spielelement hinzufügen oder den Inhaltstyp in einen von Ihrem Titel bereits unterstützten Inhaltstyp ändern.
- Wenn Inhaltstypen in der Konfiguration Ihres Titels angegeben wurden (entweder über
- Ungültige Anforderung: Dieser Titel ist nicht für die Verwendung dieses Diensts konfiguriert.
- Für Ihren Titel ist derzeit UGC deaktiviert. Sie können dies aktivieren, indem Sie die Konfiguration Ihres Titels aktualisieren (über
GetCatalogConfig
/UpdateCatalogConfig
, in Game Manager auf der Registerkarte "Economy Settings ", oder indem Sie zur Registerkarte Economy > Catalog (Preview) navigieren und Aktivieren auswählen.
- Für Ihren Titel ist derzeit UGC deaktiviert. Sie können dies aktivieren, indem Sie die Konfiguration Ihres Titels aktualisieren (über
Weitere Schritte
Sie haben jetzt UGC-Elemente in Ihrem Katalog veröffentlicht! Sie können nutzen SearchItems
, um Erfahrungen zur Inhaltsermittlung für Ihre Spieler zu erstellen.