Google 登入 API 淘汰後,我們將於 2026 年移除遊戲服務第 1 版 SDK。2025 年 2 月後,新整合遊戲服務第 1 版 SDK 的遊戲將無法在 Google Play 發布,建議改用遊戲服務第 2 版 SDK。
雖然整合舊版遊戲第 1 版的現有遊戲仍可運作幾年,但我們建議您自 2025 年 6 月起遷移至第 2 版。
本指南適用於 Play 遊戲服務第 1 版 SDK。如要瞭解最新版 SDK,請參閱 第 2 版說明文件。
Play 遊戲服務登入程序可以為您提供玩家的遊戲身分,這是 Android 使用者的平台層級遊戲專屬身分。這個身分可以協助在玩家和遊戲之間建立關係。比起其他中央系統,玩家更願意使用這個身分登入。
另外,登入程序可以給您一組高強度且一致的 ID,您可以把這組 ID 當做使用雲端儲存系統的金鑰。雲端儲存非常具有價值,可以讓玩家達成以下目標:
- 即使變更或重設裝置,依然可以接續遊戲進度
- 在多台裝置上玩遊戲 (例如用其他手機或 Chromebook 玩遊戲)
- 解除安裝遊戲後再重新安裝
您可以使用 Play 遊戲服務身分當做自己的雲端儲存解決方案金鑰,也可以使用免費的遊戲進度存檔服務。
Play 遊戲服務 (PGS) 支援自動登入功能,可讓玩家輕鬆登入,也支援手動登入,只要按一下即可完成。這份文件將說明這些不同的登入方式。
建議登入流程
為了讓玩家成功登入遊戲,請使用以下登入流程:
- 在遊戲啟動序列期間,嘗試自動登入,自動登入玩家。
- 如果自動登入無法順利運作,且使用者裝置已連上網路,請嘗試手動登入。
- 如果使用者拒絕手動登入,請記住使用者的選擇,不要再顯示手動登入選項,但啟動時仍可繼續嘗試自動登入。
此外,請務必提供專用按鈕,方便使用者透過 Play 遊戲服務帳戶登入遊戲。
自動登入
自動登入功能可讓使用者輕鬆登入遊戲,完全不需要任何操作。如果您的遊戲會要求使用者登入,並已在 Google Play 遊戲應用程式啟用自動登入設定,便會收到使用者的 PGS 身分憑證,使用者則會看到 PGS 登入體驗。
自動登入是使用者可以自行控制的設定。使用者可以選擇自動登入所有遊戲,或每次登入都詢問一次。
手動登入
如果使用者沒有自動登入遊戲,您可以要求他們手動登入。使用者只要按一下遊戲頂端顯示的對話方塊,即可登入。
允許 Play 遊戲服務彈出式視窗,確保登入體驗正常
使用 PGS 時,使用者必須知道自己已登入。方法是顯示 PGS 登入畫面。
如要顯示登入畫面,請在遊戲啟動期間呼叫 GamesClient
類別的 setViewForPopups()
方法。這對提供正確的使用者體驗至關重要。
OAuth 範圍和 PGS
PGS 需要使用 OAuth 系統,才能讓使用者授予遊戲取得對方帳戶的存取權。OAuth 範圍是開發人員可以要求的權限。如果使用者授予這些權限,您的遊戲就能代表使用者呼叫特定 API,並存取 Google 帳戶的部分內容。
PGS 有獨特的遊戲範圍 (games-lite
),而如果遊戲有使用遊戲進度存檔功能,則需要使用其他範圍 (drive.appdata
)。遊戲進度存檔功能可以授予儲存遊戲資料的使用者 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 遊戲登入」。