登入

Play 遊戲服務登入程序可以為您提供玩家的遊戲身分,這是 Android 使用者的平台層級遊戲專屬身分。這個身分可以協助在玩家和遊戲之間建立關係。比起其他中央系統,玩家更願意使用這個身分登入。

另外,登入程序可以給您一組高強度且一致的 ID,您可以把這組 ID 當做使用雲端儲存系統的金鑰。雲端儲存非常具有價值,可以讓玩家達成以下目標:

  • 即使變更或重設裝置,依然可以接續遊戲進度
  • 在多台裝置上玩遊戲 (例如用其他手機或 Chromebook 玩遊戲)
  • 解除安裝遊戲後再重新安裝

您可以使用 Play 遊戲服務身分當做自己的雲端儲存解決方案金鑰,也可以使用免費的遊戲進度存檔服務

Play 遊戲服務 (PGS) 支援自動登入、零登入方式的登入功能,以及手動登入機制 (一鍵操作程序)。本文件說明不同的登入方式。

建議登入流程

為了讓玩家成功登入遊戲,請使用以下登入流程:

  1. 在遊戲啟動序列期間,請嘗試自動登入,讓玩家自動登入。
  2. 如果自動登入功能無法正常運作,且使用者的裝置處於上線狀態,請嘗試手動登入
  3. 如果手動登入遭拒,請記住使用者的選擇,不要再顯示手動登入,但要繼續在啟動時嘗試自動登入。

此外,您必須確保使用者可以透過專用且容易找到的按鈕,透過 Play 遊戲服務帳戶登入遊戲。

自動登入

自動登入功能可讓使用者輕鬆登入遊戲,而且系統會自動完成。如果您的遊戲要求使用者登入,並已啟用自動登入設定 (在 Google Play 遊戲應用程式中),您會收到使用者的 PGS 身分識別憑證,而使用者會看到 PGS 登入體驗。

自動登入是使用者可以自行控制的設定。使用者可以選擇自動登入所有遊戲,或每次登入都詢問一次。

自動登入

手動登入

如果使用者並未自動登入遊戲,您可以要求使用者手動登入。使用者只要在遊戲上方的對話方塊上按一下,就能直接登入。

手動登入

允許 PGS 彈出式視窗顯示正確的登入體驗

使用 PGS 時,使用者必須知道自己已登入。方法是顯示 PGS 登入體驗

如要顯示登入體驗,請在遊戲啟動時呼叫 GamesClient 類別的 setViewForPopups() 方法。以便提供正確的使用者體驗。

OAuth 範圍和 PGS

PGS 需要 OAuth 系統才能讓使用者授予遊戲帳戶存取權。OAuth 範圍是開發人員可要求的權限。獲得這些權限後,您的遊戲就能代表使用者呼叫特定 API,並讓您存取其 Google 帳戶的某些部分。

如果遊戲使用已儲存的遊戲功能,PGS 對遊戲有專屬的範圍 (games-lite),並依賴其他範圍 (drive.app_data)。遊戲進度存檔功能可以授予儲存遊戲資料的使用者 Google 雲端硬碟帳戶的存取權。

您的遊戲可以要求使用者提供任何範圍,讓使用者享有優質的遊戲體驗。您的遊戲可以在單一組合中要求所有必要範圍,藉此限制 Google 帳戶的存取權要求。但這種做法有很大的缺點。假如您要求的 PGS 專屬範圍超過要求,則自動登入作業會失敗。自動登入是讓玩家登入遊戲的最佳方式。

最佳做法是使用漸進式範圍要求。您的遊戲應在初始要求中先要求僅限 PGS 的範圍,並在更相關的時刻分別要求其他範圍。

OAuth 存取權是針對各個範圍使用不同的畫面。可讓使用者以精細的方式決定要授予哪些範圍。透過只使用 PGS 範圍的自動登入功能,使用者無需與任何 OAuth 提示互動,就能減少登入的阻礙。

支援多種登入方法

PGS 為 Android 玩家提供遊戲身分,但不一定要是與使用者身分的唯一身分。您可以使用 PGS、社群網路 ID 和您自己的遊戲內 ID 系統登入玩家。每種系統都能為創作者和玩家提供獨一無二的價值,而這兩者可以相輔相成,為 Android 玩家創造絕佳體驗。

安全擷取並驗證玩家身分,以便進行後端整合

您可以要求伺服器驗證碼,以便在取得登入玩家的授權之後,讓伺服器透過 REST API 直接和 Play 遊戲服務伺服器通訊。這樣做即可直接存取玩家的 ID、個人資料以及其他資訊 (如經過授權的好友名單)。如果您會在後端儲存任何玩家 ID、好友 ID 或其他相關資料,就必須使用此方法,避免裝置端操控這些欄位。

另外如果是某些較舊的遊戲和玩家,則「Android」SDK 回傳的玩家 ID 可能和其他玩家透過該遊戲檢視該名玩家時看到的 ID 不同,尤其是使用好友名單的時候這個情況特別明顯。不過,REST API 內部回傳的 player_id 一定可以保持一致,而且一律會是其他玩家會看到的 ID。

詳情請參閱「離線存取」以及 REST API 說明文件。

用戶端實作

如果想瞭解如何在 Android 實作登入支援,請參閱「Android 遊戲登入」。