Skip to main content
PFEntityHandle 是你进行 PlayFab 服务调用的主要凭据。它表示已验证的实体——一个玩家 (title_player_account) 或一个游戏——并保存 SDK 授权请求所需的实体令牌。每次登录或身份验证调用都会返回 PFEntityHandle,并且每次服务调用都需要它。

获取实体句柄

你不能直接创建实体句柄。相反,你可以通过成功的登录或身份验证调用的输出获得句柄。 玩家登录 (Windows 示例):
游戏实体 (服务器): 游戏实体使用密钥而不是用户凭据进行身份验证。返回的 PFEntityHandle 工作方式相同,但它表示游戏而不是玩家。有关详细信息,请参阅使用游戏实体访问 PlayFab

句柄所有权和引用计数

PFEntityHandle 是引用计数的。当你从登录调用接收句柄时,你拥有一个引用。你可以使用 PFEntityDuplicateHandle 创建其他引用,并使用 PFEntityCloseHandle 释放它们。仅当关闭最后一个引用时,底层实体对象才会被销毁。 规则:
  • 对登录 GetResult 函数或 PFEntityDuplicateHandle 的每次调用都会为你提供一个必须关闭的句柄。
  • 关闭句柄不会使指向同一实体的其他句柄失效。
  • 在调用 PFServicesUninitializeAsync 之前关闭所有句柄。

获取实体信息

实体键

实体键标识实体(它的类型和 ID)。使用两个调用模式:首先获取大小,然后获取数据。

实体令牌

实体令牌授权服务调用。SDK 自动管理令牌,但如果需要,你可以检索当前令牌。

检查实体类型

使用 PFEntityIsTitlePlayer 作为快速检查,而不是检查实体键类型字符串:

玩家实体与游戏实体

玩家实体和游戏实体都使用 PFEntityHandle,但它们的功能有所不同: 不带前缀的 API(例如 Inventory、Leaderboards、Data)通常可以由玩家实体和游戏实体调用,除非其文档中另有说明。带 Client 前缀的 API 仅限玩家,带 Server 前缀的 API 仅限游戏。 PFEntityGetSecretKey 检索与游戏实体关联的密钥。它对玩家实体失败,因为它们没有密钥。
PFEntityGetSecretKey 仅在 Windows、Linux 和 macOS 平台上可用。

令牌事件处理程序

SDK 会在实体令牌过期之前自动刷新它们。你可以注册回调来观察这些事件。

令牌已过期

如果自动刷新失败(例如,原始登录凭据不再有效),SDK 将触发令牌过期事件。注册一个处理程序以提供新凭据并重试登录。

令牌已刷新

如果你想知道 SDK 何时在后台成功刷新令牌,请注册一个令牌已刷新处理程序。这只是提供信息——你不需要采取任何操作。

何时注册和取消注册

  • 注册处理程序应尽早进行,即在 SDK 初始化之后和登录之前。这可以确保你不会错过任何事件。
  • 取消注册处理程序应在关闭期间进行,在关闭实体句柄之前。
有关令牌过期处理和重新登录的完整演练,请参阅处理令牌过期

实用访问器

你可以从实体句柄检索 API 端点和游戏 ID。它们来自登录期间使用的 PFServiceConfigHandle

完整示例

此示例演示了创建、复制、查询和关闭实体句柄:

API 参考

有关完整的 API 参考,请参阅 PFEntity 成员

另请参阅

最后修改于 2026年8月25日