在 Unity 中使用 Google Play Games 登入設定 PlayFab 驗證
必要條件
- 使用 Unity 遊戲引擎建置的專案。
- Google 開發人員帳戶。
- 可存取 PlayFab 中遊戲的 PlayFab 開發人員帳戶。
- PlayFab Unity 編輯器擴充功能和 Unity SDK。
- Google Play Games SDK。
- 熟悉登入基本概念和最佳做法。
開始使用
首先,我們從在 Google Play 中設定一些基本項目開始。已經有幾份不錯的指南說明如何完成其中一些工作,因此我們不會重複說明。- 建立 Application:如果您尚未建立應用程式,必須在 Google Play Developer Console 中建立。
- 建置您遊戲的 AAB,並上傳以進行內部測試。您可以依照這份指南,了解如何將應用程式發行至 Internal testing 測試群組。在簽署過程中,請注意您的應用程式套件組合必須使用您自己的金鑰儲存區。如需如何建立金鑰儲存區,請參閱這份文件。
- 依照此頁面上的指示設定 Google Play Games 服務:Setting Up Google Play Games Services。
- 下載並安裝 Google Play Games SDK。
- 安裝 PlayFab Unity SDK (如果您不知道如何執行此工作,請依照 Unity3D 快速入門指南進行)。
設定 Google Play Games
您可以從隨 Google Play Games SDK 安裝的工具集設定 Google Play Games。您可以透過下列方式存取這些工具:- 前往 Window 索引標籤。
- 選取 Google Play Games。
- 前往 Setup。
-
然後存取 Android Setup。

-
隨即顯示 Android 設定視窗,我們需要在此畫面上輸入資源定義和 Web 應用程式用戶端識別碼。

取得資源定義
- 依照這些步驟取得您的 Android 資源定義。
取得 Web 應用程式用戶端識別碼
若要讓 Google 登入與 PlayFab 搭配運作,您需要使用 Web 用戶端識別碼,您可以為 “Web application” 類型建立 OAuth 用戶端識別碼認證來取得此識別碼。 在建立 OAuth 用戶端識別碼之前,您需要知道您的 PlayFab API 端點,您可以依照下列步驟找到它:- 登入 Game Manager。
- 選取您的遊戲。
-
按一下遊戲名稱旁的齒輪圖示並選取 Title Settings,前往您的遊戲設定。

- 選取 API Features 索引標籤。
-
複製 API endpoint 欄位。

-
建立用戶端識別碼時,您需要將 API 端點新增為用戶端識別碼的 Authorized JavaScript origin。

-
此外,請務必將您自己的應用程式重新導向 URI 新增為 Authorized Redirect URI。如果您沒有執行此步驟,將會收到 mismatch redirect_uri 錯誤。




PlayFab Google 登入設定
PlayFab 有自己設定 Google 登入的程序。您可以在 PlayFab 開發人員帳戶中進行此設定。如果您沒有帳戶,可以註冊免費的開發人員帳戶。 若要在 PlayFab 中設定 Google:- 瀏覽至儀表板中的 Add-ons 區段。
- 前往 Google Add-On。
- 從該處選取 Install Google 按鈕。
- Google App Package ID:此欄位是您的 Android 套件名稱。例如,我們的範例使用
com.playfab.gpgexample。 - Google App License Key:雖然此欄位為必填,但與 Google 登入無關。此欄位用於透過我們的收據驗證 API 設定收據驗證。
您可以從 Google Developer Console 取得此授權金鑰:瀏覽至您的應用程式,在 Monetize 區段下,選取名為 Monetization Setup 的區段。在此處向下捲動,直到看到 Licensing 文字方塊,然後將 Base64 編碼的 RSA 公開金鑰複製並貼到此欄位中。
- Google OAuth Client ID:您在 Unity 中設定 Google Play Games SDK 時使用的 Web 用戶端識別碼。
- Google OAuth Client Secret:您在建立 OAuth 用戶端識別碼時取得的密碼金鑰。
- Service Account Key:此欄位需要服務帳戶金鑰 JSON 字串,您需要依照這些步驟建立服務帳戶金鑰。然後,依照此處的步驟為該服務帳戶建立認證。取得認證 JSON 檔案後,將整個 JSON 內容貼到此欄位中。

將 Google 登入新增至您的 Unity 遊戲
讓 Google 登入運作的程式碼相當精簡。其中包含初始化程式碼,您可以將它放在 Start 中 (或任何初始化或啟動應用程式的位置)。 視您遊戲或應用程式的架構和框架而定,此程式碼可以放在不同的位置。無論如何,下列程式碼都會初始化 Google Play Games。務必不要忘記 using 陳述式,這樣您才能使用 Google Play Games SDK。
- 首先,我們使用
PlayGamesPlatform.Instance.Authenticate登入:此函式會接收回呼函式作為參數來處理結果,並根據收到的 SignInStatus 讓我們知道使用者是否成功登入。 - 如果您沒有將測試帳戶新增至應用程式,測試時回呼的 SignInStatus 結果一律為 Canceled。如果發生此問題,請依照這份指南中的步驟,將測試人員新增至您的 Google 應用程式。
呼叫
PlayGamesPlatform.Instance.Authenticate 會觸發 Google Play Games 登入對話方塊彈出。-
接著,如果登入成功,我們會呼叫
PlayGamesPlatform.Instance.RequestServerSideAccess,它會接收另一個回呼並傳回 ServerAuthCode 字串。 -
然後,我們發出
PlayFabClientAPI.LoginWithGooglePlayGamesServices呼叫,並將剛從 Google 取得的AuthCode作為ServerAuthCode參數傳入。 -
最後,視
LoginWithGooglePlayGamesServices呼叫的結果而定,會呼叫OnLoginWithGooglePlayGamesServicesSuccess或OnLoginWithGooglePlayGamesServicesFailure,這些回呼負責處理您登入 PlayFab 作業的結果。此時,您應該會在儀表板中看到成功登入!
