跳轉到主要內容
PFEntityHandle 是您進行 PlayFab 服務呼叫的主要認證。它代表一個已驗證的實體 (玩家 (title_player_account) 或遊戲),並保存 SDK 授權要求所需的實體權杖。每個登入或驗證呼叫都會傳回 PFEntityHandle,而每個服務呼叫都需要一個。

取得實體控制代碼

您不會直接建立實體控制代碼,而是在成功的登入或驗證呼叫中以輸出的形式取得。 玩家登入 (Windows 範例):
遊戲實體 (伺服器): 遊戲實體使用祕密金鑰而非使用者認證進行驗證。傳回的 PFEntityHandle 運作方式相同,但它代表的是遊戲而非玩家。如需詳細資訊,請參閱使用遊戲實體存取 PlayFab。

控制代碼擁有權和參考計數

PFEntityHandle 會進行參考計數。當您從登入呼叫收到控制代碼時,您擁有一個參考。您可以使用 PFEntityDuplicateHandle 建立其他參考,並使用 PFEntityCloseHandle 釋放它們。只有在最後一個參考關閉時,基礎實體物件才會被終結。 規則:
  • 每次呼叫登入 GetResult 函式或 PFEntityDuplicateHandle 都會給您一個必須關閉的控制代碼。
  • 關閉某個控制代碼不會讓同一實體的其他控制代碼失效。
  • 在呼叫 PFServicesUninitializeAsync 之前關閉所有控制代碼。

取得實體資訊

實體索引鍵

實體索引鍵會識別實體 (其類型和識別碼)。請使用兩次呼叫模式:先取得大小,再取得資料。

實體權杖

實體權杖會授權服務呼叫。SDK 會自動管理權杖,但您可以視需要擷取目前的權杖。

檢查實體類型

使用 PFEntityIsTitlePlayer 進行快速檢查,而不需檢查實體索引鍵類型字串:

玩家實體與遊戲實體

玩家實體和遊戲實體都使用 PFEntityHandle,但它們能做的事情有所不同: 沒有前置詞的 API (例如 Inventory、Leaderboards、Data) 通常可由玩家實體和遊戲實體呼叫,除非其文件中另有說明。具有 Client 前置詞的 API 僅限玩家使用,而具有 Server 前置詞的 API 僅限遊戲使用。 PFEntityGetSecretKey 會擷取與遊戲實體相關聯的祕密金鑰。對於玩家實體,它會失敗,因為玩家實體沒有祕密金鑰。
PFEntityGetSecretKey 僅適用於 Windows、Linux 和 macOS 平台。

權杖事件處理常式

SDK 會在實體權杖到期之前自動重新整理。您可以註冊回呼來觀察這些事件。

權杖已到期

如果自動重新整理失敗 (例如,原始登入認證已不再有效),SDK 會引發權杖到期事件。請註冊處理常式以提供新的認證並重試登入。

權杖已重新整理

如果您想知道 SDK 何時在背景中成功重新整理權杖,請註冊權杖已重新整理處理常式。這僅供參考,您不需要採取任何動作。

何時註冊和取消註冊

  • 請及早註冊處理常式,也就是在 SDK 初始化之後、登入之前。這可確保您不會遺漏任何事件。
  • 請在關閉期間、關閉實體控制代碼之前取消註冊處理常式。
如需權杖到期處理和重新登入的完整逐步解說,請參閱處理權杖到期。

公用程式存取子

您可以從實體控制代碼擷取 API 端點和遊戲識別碼。這些值來自登入期間所使用的 PFServiceConfigHandle。

完整範例

此範例示範如何建立、複製、查詢和關閉實體控制代碼:

API 參考

如需完整的 API 參考,請參閱 PFEntity 成員。

另請參閱

最後修改於 2026年10月8日