Method: accounts.signInWithGameCenter

使用 iOS Game Center 憑證登入或註冊使用者。如果登入成功,系統會為已驗證的使用者核發新的 Identity Platform ID 權杖和重新整理權杖。要求標頭中必須包含軟體包 ID,格式為 x-ios-bundle-identifier

如要識別 Google Cloud 專案,請在要求中提供 API 金鑰

Apple 已淘汰 playerID 欄位。Apple 平台 Firebase SDK 會從 10.5.0 以上版本開始使用 gamePlayerIDteamPlayerID。升級至 SDK 10.5.0 以上版本後,使用 playerID 的現有整合作業會改為使用 gamePlayerIDteamPlayerID。呼叫 signInWithGameCenter 時,您必須將 playerID 與新欄位 gamePlayerIDteamPlayerID 一併納入,才能順利識別所有現有使用者。

將現有的 Game Center 登入整合功能升級至 SDK 10.5.0 以上版本後,便無法再將其降級。

HTTP 要求

POST https://identitytoolkit.googleapis.com/v1/accounts:signInWithGameCenter

這個網址使用 gRPC 轉碼語法。

要求主體

要求主體包含下列結構的資料:

JSON 表示法
{
  "playerId": string,
  "publicKeyUrl": string,
  "signature": string,
  "salt": string,
  "timestamp": string,
  "idToken": string,
  "displayName": string,
  "tenantId": string,
  "teamPlayerId": string,
  "gamePlayerId": string
}
欄位
playerId

string

這是必要旗標,使用者的 Game Center 玩家 ID。已由 Apple 淘汰。

playerIDgamePlayerIDteamPlayerID 一併傳遞,即可開始將使用者的 Game Center 玩家 ID 遷移至 gamePlayerID

publicKeyUrl

string

這是必要旗標,用來擷取 Apple 公開金鑰的網址,以便驗證由 Apple 簽署的簽名。

signature

string

這是必要旗標,Apple 產生的驗證簽名資料。

salt

string

這是必要旗標,用於產生指定簽章的隨機字串。

timestamp

string (int64 format)

這是必要旗標,Apple 建立簽章的時間,以 Epoch 紀元時間起算的毫秒數為單位。

idToken

string

Identity Platform 帳戶的有效 ID 權杖。如果有此 ID 符記,這項要求會將 Game Center 玩家 ID 連結至由此 ID 符記代表的帳戶。

displayName

string

使用者的 Game Center 顯示名稱。

tenantId

string

使用者要登入的 Identity Platform 租用戶 ID。

teamPlayerId

string

使用者的 Game Center 團隊玩家 ID。您使用開發人員帳戶發行的所有遊戲玩家專屬 ID。https://developer.apple.com/documentation/gamekit/gkplayer/3174857-teamplayerid

gamePlayerId

string

使用者的 Game Center 遊戲玩家 ID。遊戲玩家的專屬 ID。https://developer.apple.com/documentation/gamekit/gkplayer/3113960-gameplayerid

回應主體

accounts.signInWithGameCenter 的回應訊息

如果成功,回應主體會含有以下結構的資料:

JSON 表示法
{
  "localId": string,
  "playerId": string,
  "idToken": string,
  "refreshToken": string,
  "expiresIn": string,
  "isNewUser": boolean,
  "displayName": string,
  "teamPlayerId": string,
  "gamePlayerId": string
}
欄位
localId

string

已驗證使用者的 ID。回應中一律會出現。

playerId

string

使用者的 Game Center 玩家 ID。

playerIDgamePlayerIDteamPlayerID 一併傳遞,即可開始將使用者的 Game Center 玩家 ID 遷移至 gamePlayerID

idToken

string

經過驗證的使用者所需的 Identity Platform ID 權杖。

refreshToken

string

已驗證使用者的 Identity Platform 重新整理權杖。

expiresIn

string (int64 format)

ID 權杖到期前的秒數。

isNewUser

boolean

這項要求是否建立登入使用者。

displayName

string

已驗證使用者的顯示名稱。

teamPlayerId

string

使用者的 Game Center 團隊玩家 ID。您使用開發人員帳戶發行的所有遊戲玩家專屬 ID。https://developer.apple.com/documentation/gamekit/gkplayer/3174857-teamplayerid

gamePlayerId

string

使用者的 Game Center 遊戲玩家 ID。遊戲玩家的專屬 ID。https://developer.apple.com/documentation/gamekit/gkplayer/3113960-gameplayerid

授權範圍

需要下列其中一種 OAuth 範圍:

  • https://www.googleapis.com/auth/identitytoolkit
  • https://www.googleapis.com/auth/cloud-platform

詳情請參閱 Authentication Overview