Economy v2 现已正式发布。如需支持和反馈,请访问 PlayFab 论坛。
要求
- 一个 PlayFab 开发者账户
- 一个启用了 UGC 的 title
通过 API
在本节中,我们将使用 Postman Collections 与 PlayFab UGC API 进行交互,但你可以使用我们的任何 SDK。创建 Blob URL
- UGC 系统与 PlayFab Entity Model 一起工作,因此我们需要使用实体令牌而不是会话票证来调用这些 API。你可以在 Postman Collections 快速入门 中了解如何获取 title 实体令牌。
-
UGC 系统使用 Azure Blob Storage 存储与你的 title UGC 相关的所有内容(文件和图像)。要上传内容,我们首先需要调用
CreateUploadUrlsAPI,传入文件名和大小(以字节为单位)来创建新的 blob。例如,如果我想上传一个文本文件和一个 PNG 图像,我会将以下内容传递给请求正文: -
响应包括每个内容的
Id和Url:
每个创建令牌(在响应的”Url”字段中返回)有效期为 6 小时,之后你将无法上传内容到 blob。如果你没有上传任何内容到 blob,它将被我们的服务清理,你需要再次调用
CreateUploadUrls 来创建新的 blob。此 URL 也不允许访问内容,直到它已上传到草稿物品,在那里它会收到不同的(现在可公开访问的)URL每个 blob 只应在一个物品中使用。如果你希望在多个物品中重复一段内容,你应该将内容重新上传到不同的 blob。
将内容上传到 Blob
有几种不同的方法可以将内容上传到这些 URL。通过 Postman
-
使用从调用
CreateUploadUrls生成的 URL 创建一个PUT请求,并添加comp: blob和x-ms-blob-type: blockblob作为头:
-
然后你可以通过选择 binary 作为正文类型来上传文件:

通过 AzCopy
- 另一种选择是使用 AzCopy 工具。你可以下载该工具并在此开始使用 AzCopy。
-
在你选择的终端中,使用以下参数调用 azcopy:
创建草稿 UGC
-
现在文件和图像已成功上传,你可以调用
CreateDraftItem,传入内容和图像的 URL,以在草稿目录中创建你的第一个物品:
向物品上传图像时,每个图像必须使用
Type 参数分类。它可以是”Thumbnail”或”Screenshot”。每个物品仅限一张”Thumbnail”类型的图像,默认情况下,搜索将默认返回”Thumbnail”图像(如果存在)。-
响应返回你传入的元数据,以及一个物品 ID:
-
草稿 UGC 物品现在存在于草稿目录中!只要 UGC 物品尚未发布,就无法通过公共目录搜索。你可以通过调用以下任何一个 API 来找到此 UGC 物品:
GetDraftItem,传入从CreateDraftItem响应获得的物品 IDGetDraftItems,传入已知物品 ID 的列表GetEntityDraftItems,传入实体 ID 和/或传入每个先前响应中的 ContinuationToken 以分页浏览草稿物品列表
如果你想立即发布,可以将
Publish 字段更改为 true- 当你准备好发布 UGC 物品时,调用
PublishDraftItem,传入物品 ID(从CreateDraftItem响应获得)。 - 如果你的 UGC 物品包含多个特别大的文件,发布物品可能需要一些时间,当有许多其他玩家同时上传内容时,此过程可能需要更长的时间。你可以通过调用
GetItemPublishStatus(传入从CreateDraftItem响应获得的物品 ID)来检查发布状态。有几种可能的状态:Succeeded- UGC 物品已成功发布Pending- UGC 物品仍在发布过程中Failed- UGC 物品发布失败,在冒犯内容被修改之前不会发布Unknown- 这是默认状态,会在对 UGC 物品调用PublishDraftItem之前返回Canceled- 发生内部错误,请再次尝试发布物品(如果你多次看到此状态,请联系 PlayFab 工程团队)
- UGC 物品成功发布后,你可以通过
SearchItems搜索它,或者如果你有物品 ID,则可以通过GetItem直接获取它。 - 你可以在发布之前或之后通过执行以下操作对 UGC 物品进行更改:
- 调用
GetDraftItem,传入物品 ID(从CreateDraftItem响应获得) - 复制 UGC 物品的数据(
data字段中的所有内容) - 调用
UpdateDraftItem,传入修改后的 UGC 物品数据 - 如果你想更新任何文件或图像,你需要再次调用
CreateUploadUrls创建另一个 blob - 通过调用
PublishDraftItem重新发布 UGC 物品
- 调用
通过 Game Manager
在本节中,我们将完全在 Game Manager 体验中创建 UGC 物品 - 无需代码!创建草稿目录物品
- 通过选择 Economy > Catalog (v2) 导航到 UGC 页面。
- 选择 New Item。
-
为你的 UGC 物品填写适当的元数据:

- 在 Files 和 Images 部分下,通过选择 Upload 按钮上传适当的内容。
- 选择 Save and publish。
- UGC 物品现在将自动作为草稿物品创建并发布到公共目录 - 你现在将能够在与其他已发布的 UGC 物品一起的表中找到此物品。
目前无法在 Game Manager 中检查草稿物品或发布状态 - 只能通过 API 完成
- 如果你想对已发布的 UGC 物品进行任何更改,可以通过执行以下操作来完成:
- 从表中选择已发布的 UGC 物品
- 进行适当的编辑
- 选择 Save and publish
疑难解答
- Invalid Request - The content type ‘Game Item’ isn’t supported。
- 如果内容类型已在你的 title 配置中指定(无论是通过
GetCatalogConfig/UpdateCatalogConfig还是在 Game Manager 的 Economy Settings 选项卡下),你需要将 Game Item 添加到列表中,或将内容类型更改为你的 title 已支持的类型
- 如果内容类型已在你的 title 配置中指定(无论是通过
- Invalid Request - This title isn’t configured to use this service。
- 你的 title 目前已禁用 UGC - 你可以通过更新 title 的配置来启用此功能(通过
GetCatalogConfig/UpdateCatalogConfig,在 Game Manager 的 Economy Settings 选项卡下,或通过导航到 Economy > Catalog (Preview) 选项卡并选择 Enable)
- 你的 title 目前已禁用 UGC - 你可以通过更新 title 的配置来启用此功能(通过
后续步骤
你现在已在目录中发布了 UGC 物品!你可以使用SearchItems 为你的玩家创建内容发现体验。
[!div class=“nextstepaction”] 搜索 >
