喚回 API

Recall API 可讓遊戲使用 Play 遊戲服務 (PGS) 做為現有登入機制 (例如 Google 登入機制) 的輔助,並在玩家的每部裝置上順暢同步處理玩家的登入資訊,藉此減少新手上路程序的流失情形,並提高 D1 留存率。這個 API 會將喚回符記儲存在 Google 伺服器,藉此管理使用者的 Play 遊戲服務 (PGS) 帳戶與遊戲內帳戶之間的連結。以下是 Recall API 的使用情境範例:

  1. 使用者在玩遊戲時,開發人員會透過身分識別系統追蹤使用者進度,同時使用 PGS 與其他驗證方法將使用者登入遊戲。在此範例中,使用者已登入 PGS 帳戶「Laura」,並透過開發人員的身分識別系統建立名為「Racer94」的遊戲內帳戶。當使用者玩遊戲時,開發人員的遊戲伺服器會同步處理遊戲進度。

    使用者透過 PGS 登入並擁有遊戲內帳戶

  2. 此外,開發人員會透過 Google 儲存喚回符記,該符記會對應至使用者的遊戲內帳戶。Google 會根據使用者的 PGS 設定檔自動儲存喚回符記。

    遊戲伺服器透過 Google 伺服器儲存喚回符記

  3. 使用者現在決定首次在 Google Play 遊戲電腦版上玩遊戲。系統會自動透過 PGS 帳戶登入使用者,而遊戲用戶端會檢查該 PGS 使用者是否存有遊戲進度。接著,遊戲伺服器向 Google 查詢這個 PGS 帳戶是否存有任何符記。假設有的話,Google 就會傳回喚回符記,而遊戲伺服器會使用該符記尋找與使用者相關聯的 Racer94 帳戶,並還原其進度。由於 PGS 登入體驗順暢無阻,使用者不必輸入使用者名稱或密碼,應用程式就能還原使用者的進度。此外,開發人員可使用 PGS 登入功能搭配現有的身分識別系統,並藉由 Google 來儲存玩家進度與 PGS 帳戶之間的連結。

    遊戲伺服器透過喚回符記還原進度

如上例所示,Recall API 執行了兩項主要動作:

  • 當使用者登入其中一個遊戲內帳戶時,透過 Google 儲存權杖。
  • 擷取使用者的權杖,以還原他們的遊戲內帳戶。

除了喚回符記,Recall API 也會要求與遊戲內帳戶對應的穩定 ID (稱為「人物角色」),以強制執行基數限制。您可以將人物角色視為開發人員身分識別系統中代表使用者遊戲內帳戶的標籤,而喚回符記就是用來將使用者遊戲內帳戶還原到遊戲的金鑰。人物角色和符記值不得在不同的 PGS 專案中重複使用。此外,雖然喚回符記可能會隨著時間變更,但人物角色應隨著使用者的遊戲內帳戶保持穩定不變。

基數規則

Recall API 會強制執行 PGS 設定檔與遊戲內帳戶之間的 1:1 關係 (稱為「基數規則」);也就是說,一個人物角色只能連結至一個 PGS 設定檔,而一個 PGS 設定檔也只能連結至一個人物角色。人物角色會做為遊戲內帳戶的穩定 ID,因為喚回符記可能會隨時間變動。

連結至 PGS 設定檔的人物角色也可能會隨時間變動 (因為不同的遊戲內帳戶都會連結至該 PGS 設定檔)。

儲存及擷取喚回符記的詳細技術流程

本節說明儲存及擷取喚回符記時,遊戲用戶端、遊戲伺服器和 Google 伺服器之間的技術流程:

步驟 1:登入 PGS 使用者並擷取工作階段 ID

遊戲會初始化 PGS SDK,並嘗試透過 PGS 登入使用者。

使用者透過 PGS 登入

假設使用者已登入,請在遊戲用戶端上要求 Play 遊戲 SDK 的工作階段 ID,並向 Google 的 OAuth 後端要求 OAuth 2.0 符記。工作階段 ID 和 OAuth 2.0 符記可用來與 Google 遊戲後端連線。

開發人員要求工作階段 ID

步驟 2:擷取任何可用的喚回符記

要求與 PGS 使用者帳戶相關聯的任何喚回符記。如有符記的話,請前往步驟 3a 並還原進度。否則,如果是新使用者且沒有任何符記,則請前往步驟 3b 並儲存新符記

開發人員擷取喚回符記

步驟 3a:如有符記,請還原進度

如有符記的話,請擷取符記並加以解密,然後還原使用者資料。

開發人員從喚回符記還原資料

步驟 3b:如沒有符記,請儲存符記

由於沒有符記,因此系統不會還原任何進度。使用者接著透過開發人員身分識別系統登入,或建立新帳戶 (如果沒有帳戶)。

使用者透過遊戲內帳戶登入

建立加密的喚回符記,該符記會將使用者的遊戲內帳戶編碼,並連同工作階段 ID 和 OAuth 2.0 符記傳送給 Google。這時 Google 就會將已傳送的喚回符記與玩家 PGS 帳戶建立關聯。

開發人員儲存喚回符記

後續步驟

如要將 Recall API 與您的用戶端和遊戲伺服器整合,請按照這份實作指南操作。