Play 遊戲服務登入程序可以為您提供玩家的遊戲身分,這是 Android 使用者的平台層級遊戲專屬身分。這個身分可以協助在玩家和遊戲之間建立關係。比起其他中央系統,玩家更願意使用這個身分登入。
另外,登入程序可以給您一組高強度且一致的 ID,您可以把這組 ID 當做使用雲端儲存系統的金鑰。雲端儲存非常具有價值,可以讓玩家達成以下目標:
- 即使變更或重設裝置,依然可以接續遊戲進度
- 在多台裝置上玩遊戲 (例如用其他手機或 Chromebook 玩遊戲)
- 解除安裝遊戲後再重新安裝
您可以使用 Play 遊戲服務身分當做自己的雲端儲存解決方案金鑰,也可以使用免費的遊戲進度存檔服務。
Play 遊戲服務 (PGS) 支援自動登入、零登入方式的登入功能,以及手動登入機制 (一鍵操作程序)。本文件說明不同的登入方式。
建議登入流程
為了讓玩家成功登入遊戲,請使用以下登入流程:
- 在遊戲啟動序列期間,請嘗試自動登入,讓玩家自動登入。
- 如果自動登入功能無法正常運作,且使用者的裝置處於上線狀態,請嘗試手動登入。
- 如果手動登入遭拒,請記住使用者的選擇,不要再顯示手動登入,但要繼續在啟動時嘗試自動登入。
此外,您必須確保使用者可以透過專用且容易找到的按鈕,透過 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。
用戶端實作
如果想瞭解如何在 Android 實作登入支援,請參閱「Android 遊戲登入」。