用户生成内容 (UGC) 快速入门

本指南的目的是介绍如何使用直接的服务到服务调用快速开始使用 UGC。 我们将分步介绍如何连接到草稿 UGC 内容物品、发布这些物品,然后搜索和查找物品。

获取实体令牌

UGC 旨在与 PlayFab 实体配合使用,因此第一步是使用 LoginWithCustomID 获取实体令牌。 作为服务调用,它看起来如下所示:

{
  "CustomId": "exampleUser",
  "CreateAccount": true,
  "TitleId": "DC7B"
}

创建草稿 UGC 物品

可通过调用带有 "Type":"ugc" 参数的 CreateDraftItem API 创建“草稿”UGC 物品。 草稿物品旨在由创建者在其移动到发布状态之前进行审阅和访问。 要创建草稿物品,您需要:

  • 来自 X-EntityToken 标头中前一次调用的 EntityToken
  • 来自物品 CreatorEntityKey.Id 中前一次调用的 Entity.Id
  • 物品 sourceId 中游戏的 TitleId

此调用类似于以下内容。

{
  "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"
  }
}

这将返回具有 Id 的已创建草稿项。 我们要跟踪 Id 以便稍后使用。

       "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"
            },
          ...
        }

获取玩家的草稿项 ID

若要获取特定玩家的草稿项 ID,可以使用 GetEntityDraftItems API。 游戏实体可以使用 Entity 参数中的玩家 ID 调用此 API,并且该 API 将返回该特定玩家的草稿项列表。 只有游戏实体可以传递 Entity 参数。 玩家实体无需 Entity 参数即可调用 API,并且该 API 将返回调用玩家创建的草稿项列表。

{
  "Count": 2,
  "Entity": {
    "Id": "C88F55C6A734B1DC",
    "Type": "title_player_account",
    "TypeString": "title_player_account"
  }
}

发布 UGC 物品

当物品处于草稿状态时,可以使用 PublishDraftItem 将其推至已发布状态。 UGC 物品发布后,通常可以进行搜索和公开使用。 你需要使用从 CreateDraftItem 响应返回的物品 Id

{
"Id": "44857e2b-c93b-4054-80be-7890028201ff"
}

获取 UGC 物品的已发布状态

使用项 Id,可以使用 GetItemPublishStatus API 获取 UGC 目录中物品的发布状态。

{
"Id": "44857e2b-c93b-4054-80be-7890028201ff"
}

可能的发布 Result 值如下所示:

  • Unknown
  • Pending
  • Succeeded
  • Failed
  • Canceled

重新发布项目将更新"已发布项",以匹配当前草稿项。

发布调用成功后,所有玩家都可以通过公共目录访问该项目。 该 SearchItems API 使用提供的参数对已发布目录(包括 UGC 物品)执行搜索,并返回一组分页结果。 FilterOrderBySelect 字段使用 OData 作为查询标准。

{
  "Search": "Test",
  "Count": 2
}