Freigeben über


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

Ü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 und Url 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 Aufruf CreateUploadUrls generiert wurde, und durch Hinzufügen von comp: blob und x-ms-blob-type: blockblob als Header: Postman-Veröffentlichungsbeispiel

  • Anschließend können Sie die Datei hochladen, indem Sie binär als Texttyp auswählen: Postman Upload Binary

Ü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 CreateDraftItemund 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 von CreateUploadUrls.

  • 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 der CreateDraftItem 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 der CreateDraftItem 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 GetItemPublishStatusund die Element-ID (aus der CreateDraftItem 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 Aufrufen PublishDraftItem 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 über GetItem 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 der CreateDraftItem 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

Ü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!)" }

    Neues UGC-Element

  • 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.
  • 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.

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.