> ## Documentation Index
> Fetch the complete documentation index at: https://devdocs.xbox.com/llms.txt
> Use this file to discover all available pages before exploring further.

# PlayFab Game Manager 中的 API 功能设置

> 在 PlayFab Game Manager 中配置 API 功能设置，包括对自定义数据的 JSON 验证、隐私选项和其他 title 范围的 API 行为。

PlayFab Game Manager 中的 API 功能是一组用于管理 PlayFab API 在你的 title 上行为的选项。这些选项为你提供了管理访问、隐私和其他功能的工具。

要找到用于配置这些选项的界面：

* 转到 **Game Manager**。
* 从左侧菜单中选择 **Settings**。
* 选择 **API Features** 选项卡。

<img src="https://mintcdn.com/microsoft-4404708b/dqv53299jA1M-fNi/images/playfab/live-service-management/gamemanager/tutorials/game-manager-settings-api-features-full.png?fit=max&auto=format&n=dqv53299jA1M-fNi&q=85&s=ff65da3a46374af1c80aa9f84952074b" alt="Game Manager - Settings - API Features" width="1269" height="1255" data-path="images/playfab/live-service-management/gamemanager/tutorials/game-manager-settings-api-features-full.png" />

其中一些复选框很显然，而另一些则不太明显。在本教程中，我们将详细讨论其中的几个。

<Note>
  本教程中的多个屏幕截图和演示使用 [Postman](/services/playfab/sdks/postman/postman-quickstart)。
</Note>

## 要求自定义数据值使用有效的 JSON

被黑客攻击的客户端会给游戏带来一些\_严重\_问题。恶意 API 调用者发布格式错误的数据可能会为开发者带来噪声、bug 和问题。数据格式不正确的玩家通常需要手动干预才能清理。

要求自定义数据值使用有效的 JSON 将在数据保存到数据库\_之前\_执行基本的内容类型验证。及早发现这些问题可防止其持续存在，并阻止黑客干扰正常开发。

设置此标志后，它会强制客户端为其自定义数据的每个键传入有效的 JSON。仅简单的 JSON 验证不会阻止\_所有\_问题——但可以帮助消除一些不良行为。

选中此选项将要求跨所有自定义数据（包括 player、publisher、character、title 和 item 数据）保存的每个键都必须是有效的 JSON。

<Note>
  此标志可以随时\_开启\_或\_关闭\_。但它\_不会\_追溯生效。因此，现有值\_不会\_受到影响。*只有新写入的值才会被验证。*
</Note>

如果你尝试将无效的 JSON 作为值传递，它将拒绝请求并返回 `HTTP Status Code 400 "Bad Request"`。

<img src="https://mintcdn.com/microsoft-4404708b/dqv53299jA1M-fNi/images/playfab/live-service-management/gamemanager/tutorials/postman-sending-invalid-json.png?fit=max&auto=format&n=dqv53299jA1M-fNi&q=85&s=f36cfcd0c8e160dfdac63e529c3a5b9e" alt="Postman - Sending invalid JSON" width="1355" height="1152" data-path="images/playfab/live-service-management/gamemanager/tutorials/postman-sending-invalid-json.png" />

## 禁用所有 API 请求访问

令人惊讶的是，禁用对 title 的所有 API 访问可能会很有用。

例如，如果你正在执行需要停机的敏感迁移，误入的 API 请求可能会造成严重中断。如果你正在停用游戏，这将保证你的游戏真的关闭了。

<Warning>
  请记住，选中此复选框将**真正破坏你的游戏**，因此请谨慎使用！
</Warning>

一旦你决定需要关闭 API 访问并选中该复选框，所有 API 请求将在几分钟内开始失败。

PlayFab 将返回 `HTTP Status Code 400 "Bad Request"`，指示 title 已禁用此类用法。

<img src="https://mintcdn.com/microsoft-4404708b/dqv53299jA1M-fNi/images/playfab/live-service-management/gamemanager/tutorials/postman-accessing-a-disabled-api.png?fit=max&auto=format&n=dqv53299jA1M-fNi&q=85&s=5699272b227f83fc32e34ec6f7ac7eb0" alt="Postman - Accessing a disabled API" width="1368" height="1020" data-path="images/playfab/live-service-management/gamemanager/tutorials/postman-accessing-a-disabled-api.png" />

这些 `HTTP Status Code 400` 响应将持续存在，直到你取消选中该复选框。同样，取消选中可能需要几分钟才能生效。

## 启用玩家 IP 地址混淆

对于许多工作室来说，拥有**个人身份信息** (**PII**) 是最好避免的责任。**PII** 的一种常见（且有用）形式是 **IP 地址**。

IP 地址由于多种原因很有用，包括地理定位。但是，IP 的\_完全\_精确性通常被视为 PII。

PlayFab 可以通过混淆 IP 地址的部分内容来帮助限制此问题。现在，通过选中一个复选框，你可以停止收集此敏感数据。

选中此复选框后，PlayFab 将始终将玩家 IP 的最后一个八位字节记录为 **0**。你可以通过检查 **Players** 选项卡中玩家的登录历史来验证这是否有效。

你应该看到每个 IP 都以 **.0** 结尾。在启用 IP 地址混淆之前记录的任何 IP 将保留其完整详细信息。因此，如果你的游戏对 PII 敏感，请在启动前设置此复选框。

<Note>
  启用混淆会影响使用 IP 地址的\_其他\_功能。最直接受影响的三个是基于 IP 的地理定位、IP 封禁和指定 IP 地址的玩家封禁。
</Note>

PlayFab 会自动对登录执行基于 IP 的地理定位。这有助于你自动确定玩家在世界上的来源。

但是，在使用混淆的 IP 时，你可能会遇到精度降低，\_特别是\_在城市级别。这是有意为之的，因为混淆 IP 的目标是避免记录 PII，包括确切位置。

此外，混淆 IP 会影响 [IP 封禁](/services/playfab/player-progression/player-data/ip-bans)。通常，实施 IP 封禁比一次封禁一个账户更为实用，因为不良行为者可以直接创建新账户。

封禁 IP 可防止不良行为者从同一个 Internet 连接创建新账户。在许多情况下，这是一个有效的工具。

但是，使用混淆的 IP，无法封禁精确的 IP。相反，你必须封禁最后一个八位字节为 **.0** 的 IP。请记住，这将有效地封禁\_整个 IP 范围\_。

<img src="https://mintcdn.com/microsoft-4404708b/dqv53299jA1M-fNi/images/playfab/live-service-management/gamemanager/tutorials/game-manager-ipbans-obfuscated-ip-ban.png?fit=max&auto=format&n=dqv53299jA1M-fNi&q=85&s=efc08197810551e86f8922aa35b53f74" alt="Game Manager - IP Bans - Add Ban" width="823" height="728" data-path="images/playfab/live-service-management/gamemanager/tutorials/game-manager-ipbans-obfuscated-ip-ban.png" />

为了明确范围，请输入等效的 CIDR 范围，而不是依赖以 **.0** 结尾的混淆地址，如下所示。这两个封禁在功能上是等效的。

<img src="https://mintcdn.com/microsoft-4404708b/dqv53299jA1M-fNi/images/playfab/live-service-management/gamemanager/tutorials/game-manager-ipbans-range-ban.png?fit=max&auto=format&n=dqv53299jA1M-fNi&q=85&s=80c74e8f043eed7f9933c7bcadfc8036" alt="Game Manager - IP Bans - Range Ban" width="943" height="725" data-path="images/playfab/live-service-management/gamemanager/tutorials/game-manager-ipbans-range-ban.png" />

这仍将封禁不良行为者，但拥有类似 IP 地址的其他无辜玩家可能会受到影响。此外，对特定的未混淆 IP 地址的现有封禁将不再有效。


## Related topics

- [Game Manager 参考](/zh-CN/services/playfab/live-service-management/gamemanager/reference.md)
- [PlayFab 在线运营管理文档](/zh-CN/services/playfab/live-service-management/index.md)
- [title_api_settings_changed](/zh-CN/services/playfab/api-references/events/ApiAccessPolicy/title-api-settings-changed.md)
- [PartyXblAccessibilitySettings](/zh-CN/services/playfab/multiplayer/networking/xblreference/structs/partyxblaccessibilitysettings.md)
- [PlayFab 的 PlayStream 事件模型参考](/zh-CN/services/playfab/api-references/events/index.md)
