Schnellstart: User-Generated Content (UGC)
In diesem Leitfaden wird erläutert, wie Sie schnell mit UGC beginnen, indem Sie direkte Service-to-Service-Aufrufe verwenden. Wir zeigen Ihnen Schritt für Schritt, wie Sie eine Verbindung mit den entwurfsbezogenen UGC-Inhaltselementen herstellen, diese Elemente veröffentlichen und sie dann suchen und finden.
Abrufen eines Entitätstokens
UGC ist für die Arbeit mit PlayFab-Entitäten konzipiert. Daher besteht der erste Schritt darin, ein Entitätstoken mithilfe von LoginWithCustomID
abzurufen. Als Dienstaufruf sieht das in etwa wie folgt aus:
{
"CustomId": "exampleUser",
"CreateAccount": true,
"TitleId": "DC7B"
}
Erstellen eines UGC-Entwurfselements
Sie erstellen UGC-Elemente zum Entwurf, indem Sie die CreateDraftItem
API mit dem "Type":"ugc"
Parameter aufrufen. Entwurfselemente sind so konzipiert, dass sie von ihren Erstellern überprüft und darauf zugegriffen werden, bevor sie in einen veröffentlichten Zustand verschoben werden. Zum Erstellen eines Entwurfselements benötigen Sie Folgendes:
- Die
EntityToken
aus dem vorherigen Aufruf im X-EntityToken-Header. - Die
Entity.Id
aus dem vorherigen Aufruf im -ElementCreatorEntityKey.Id
. - Der
TitleId
für den Titel in der sourceId des Elements.
Dieser Aufruf sieht in etwa wie folgt aus.
{
"Item": {
"Type": "ugc",
"Title": {
"NEUTRAL": "Neutral Title Test",
"en-GB": "en-gb Title",
"en-US": "en-us Title"
},
"Description": {
"NEUTRAL": "Neutral Description Test",
"en-GB": "en-gb Description",
"en-US": "en-us Description"
},
"startDate": "2018-10-18T20:01:26.1520582Z"
}
}
Dadurch wird das erstellte Entwurfselement mit einem Id
zurückgegeben. Wir möchten dies Id
für später nachverfolgen.
"Item": {
"SourceEntity": {
"Id": "1184A",
"Type": "title",
"TypeString": "title"
},
"SourceEntityKey": {
"Id": "1184A",
"Type": "title",
"TypeString": "title"
},
"Id": "44857e2b-c93b-4054-80be-7890028201ff",
"Type": "ugc",
"Title": {
"NEUTRAL": "Neutral Title Test",
"en-GB": "en-gb Title",
"en-US": "en-us Title"
},
...
}
Abrufen von Entwurfselement-IDs für einen Spieler
Um Entwurfselement-IDs für einen bestimmten Player abzurufen, kann die GetEntityDraftItems
API verwendet werden. Titelentitäten können diese API mit der Entity
Spieler-ID im Parameter aufrufen, und die API gibt eine Liste von Entwurfselementen für diesen bestimmten Spieler zurück. Nur Titelentitäten können einen Entity
Parameter übergeben. Spielerentitäten können die API ohne Parameter Entity
aufrufen, und die API gibt eine Liste von Entwurfselementen zurück, die vom aufrufenden Spieler erstellt wurden.
{
"Count": 2,
"Entity": {
"Id": "C88F55C6A734B1DC",
"Type": "title_player_account",
"TypeString": "title_player_account"
}
}
Veröffentlichen eines UGC-Elements
Sobald sich ein Element im Entwurf befindet, können Sie es mithilfe von in einen veröffentlichten Zustand pushen PublishDraftItem
. Sobald ein UGC-Element veröffentlicht wurde, ist es in der Regel durchsuchbar und öffentlich verfügbar. Sie müssen das von der CreateDraftItem
Antwort zurückgegebene Element Id
verwenden.
{
"Id": "44857e2b-c93b-4054-80be-7890028201ff"
}
Abrufen der veröffentlichten status eines UGC-Elements
Mithilfe des Elements Id
können Sie die status einer Veröffentlichung für ein Element in Ihrem UGC-Katalog mithilfe der GetItemPublishStatus
API abrufen.
{
"Id": "44857e2b-c93b-4054-80be-7890028201ff"
}
Die möglichen Veröffentlichungswerte Result
sind wie folgt:
Unknown
Pending
Succeeded
Failed
Canceled
Durch die erneute Veröffentlichung eines Elements wird das veröffentlichte Element aktualisiert, damit es mit dem aktuellen Entwurfselement übereinstimmt.
Ausführen einer einfachen Suche
Sobald der Veröffentlichungsaufruf erfolgreich war, kann für alle Spieler über den öffentlichen Katalog auf das Element zugegriffen werden. Die SearchItems
API führt eine Suche nach einem veröffentlichten Katalog (einschließlich UGC-Elementen) unter Verwendung der bereitgestellten Parameter aus und gibt einen Satz paginierter Ergebnisse zurück. Die Filter
Felder , OrderBy
und Select
verwenden OData als Abfragestandard.
{
"Search": "Test",
"Count": 2
}