Recall API

借助 Recall API,游戏可以将 Recall 令牌存储在 Google 服务器中,从而管理 Google Play Games 服务 (PGS) 用户与其游戏内账号之间的关联。下面是一个说明可以如何使用 Recall API 的示例场景。

  1. 用户正在玩一款游戏,其开发者可以通过身份系统跟踪用户进度,并同时使用 PGS 和其他身份验证方法让用户登录其游戏。在此示例中,用户登录了其 PGS 账号 Laura,然后使用开发者的身份系统(名为 Racer94)创建了一个游戏内账号。当用户玩游戏时,开发者的游戏服务器会同步其进度。

    用户使用 PGS 和游戏内账号登录

  2. 此外,开发者还在 Google 上保存一个 Recall 令牌,该令牌与用户的游戏内账号相对应。Google 会根据用户的 PGS 玩家资料自动存储该 Recall 令牌。

    游戏服务器将 Recall 令牌存储在 Google 服务器中

  3. 现在,用户第一次决定在 Google Play 游戏电脑版平台上玩游戏。用户会自动使用其 PGS 账号进行身份验证,而游戏客户端会检查该 PGS 用户是否有任何进度。然后,游戏服务器会向 Google 查询,以确认是否有此 PGS 账号的任何令牌。由于存在,Google 会发回 Recall 令牌,游戏服务器使用该令牌查找用户的关联账号 Racer94,并恢复其游戏进度。由于使用 PGS 进行身份验证是一次顺畅的体验,因此无需用户输入用户名或密码,应用即会恢复用户的进度。此外,开发者可以将 PGS 身份验证与现有的身份系统搭配使用,并依赖 Google 来存储玩家进度与其 PGS 账号之间的关联。

    游戏服务器使用 Recall 令牌恢复进度

如前面的示例所示,Recall API 会执行两项主要操作:

  • 当用户使用游戏内账号之一登录时,将令牌存储在 Google 中。

  • 检索用户的令牌,以便恢复其游戏内账号。

除 Recall 令牌外,Recall API 还需要与游戏内账号对应的稳定标识符(称为角色)。您可将角色视为在开发者身份系统中代表用户的游戏内账号的标签,而将 Recall 令牌视为用于将用户的游戏内账号恢复至游戏的密钥。角色和令牌值不得在不同 PGS 项目中重复使用。此外,虽然 Recall 令牌可能会随时间而变化,但角色应根据用户的游戏内账号保持稳定。

用于存储和检索 Recall 令牌的技术流程

本部分介绍了在使用 Google 服务器存储和检索 Recall 令牌时游戏客户端与服务器之间的技术流程。

第 1 步:验证 PGS 用户身份并检索会话 ID

游戏会初始化 PGS SDK 并尝试使用 PGS 对用户进行身份验证。

使用 PGS 进行用户身份验证

假设用户已通过身份验证,在游戏客户端上从游戏 SDK 请求会话 ID,并从 Google 的 OAuth 后端请求 OAuth 2.0 令牌。会话 ID 和 OAuth 2.0 令牌用于与 Google 游戏后端进行通信。

开发者请求会话 ID

第 2 步:检索任何可用的 Recall 令牌

请求与 PGS 用户账号关联的任何 Recall 令牌。如果存在令牌,请继续执行第 3a 步并恢复进度。否则,如果这是新用户且没有令牌,请继续执行第 3b 步并存储新令牌

开发者检索 Recall 令牌

第 3a 步:如果存在令牌,则恢复进度

如果存在令牌,则检索并解密令牌,然后恢复用户数据。

开发者从 Recall 令牌恢复数据

第 3b 步:如果不存在令牌,则存储令牌

由于不存在令牌,因此不会恢复任何进度。用户继续使用开发者的身份系统进行平台身份验证,或创建新账号(如果不存在此类账号)。注意:这不是使用 PGS 进行身份验证(该过程已完成),而是使用 PGS 之外的开发者身份系统进行身份验证。

用户使用其游戏内账号进行身份验证

创建一个加密的 Recall 令牌(该令牌会对用户的游戏内账号进行编码),并将该令牌连同会话 ID 和 OAuth 2.0 令牌一起发送给 Google。此时,Google 会在发送的 Recall 令牌与玩家的 PGS 账号之间建立关联。

开发者存储 Recall 令牌

没有 PGS 玩家资料的用户的流程

您可以使用无玩家资料模式为尚未创建 PGS 玩家资料的用户存储 Recall 令牌。不过,有两点重要注意事项:

  • 您无法为没有 PGS 玩家资料的用户检索令牌。当用户尝试在第二部设备上使用 Play 游戏服务登录您的游戏时,系统会自动提示用户创建玩家资料。
  • 您必须遵循其他准则,以确保您提供适当的通知来描述以下项目,并获得适当的最终用户同意:
    • 您与 Google 共享数据以启用 Play Games 账号关联功能。
    • 用于管理此共享的设置的可用性,例如 Play Games 设置。
    • 根据 Google 隐私权政策处理此类数据。

存储令牌和角色对

没有 PGS 玩家资料的用户打开游戏

  1. 没有 PGS 玩家资料的用户打开了已启用无玩家资料找回功能的游戏。
  2. 游戏 SDK 会触发自动平台身份验证,但由于用户没有 PGS 个人资料,因此身份验证失败。
  3. 游戏 SDK 会显示一个信息条,告知用户游戏已与 Google 集成。此 snackbar 可操作,用户可以停用回忆功能,直到创建个人资料为止。
  4. 游戏请求召回访问权限。请注意,如果设备上有 PGS 玩家资料或设备上没有 Google 账号,PGS 会拒绝找回访问请求。在这种情况下,游戏应在不使用 PGS 的情况下继续进行。
  5. 用户使用游戏内账号登录后,游戏会为用户创建一个与其游戏内账号对应的令牌和角色对。游戏会向 Google 存储此配对信息。如果用户登录其他游戏内账号,游戏可能会在稍后存储更多令牌。

在新设备上启动游戏

  1. 没有 PGS 玩家资料的用户在设备上打开已启用无玩家资料找回功能的游戏。
  2. 游戏会记录无玩家资料的 Recall 令牌,如存储令牌和角色对中所述。
  3. 用户在另一台具有相同账号设置的设备上打开同一款游戏。
  4. 游戏 SDK 会触发个人资料创建。用户可以查看并拒绝之前存储的召回令牌。用户此时创建 PGS 玩家资料。
  5. 自动平台身份验证完成,游戏收到已通过身份验证的状态。
  6. 游戏会像往常一样检索用户的 Recall 令牌。

后续步骤

如需将 Recall API 与您的客户端和游戏服务器集成,请遵循本指南