Recall API

借助 Recall API,游戏可以将 Play 游戏服务 (PGS) 作为其游戏的伴侣, 现有的登录机制(例如 Google 登录)并无缝同步到 球员的提供跨设备登录信息,以降低新用户流失率 并提高第 1 天留存率。 此 API 可管理用户的 Play 游戏服务 (PGS) 账号与 将 Recall 令牌存储在 Google 服务器上,从而保护其游戏内账号。这里有 如何使用 Recall API 的示例场景:

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

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

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

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

  3. 用户现在决定通过 Google Play Games on PC 端 。用户使用其 PGS 账号自动登录,并且 游戏客户端会检查此 PGS 是否有任何进度 用户。然后,游戏服务器会向 Google 查询,以确认是否有 此 PGS 账号。由于存在,Google 会发回 Recall 令牌, 游戏服务器使用该令牌查找用户的关联账号 Racer94 并恢复其进度。由于使用 PGS 登录 流畅的体验,那么应用无需 用户需要输入用户名或密码此外,开发者还可以 可以通过其现有身份系统使用 PGS 登录,并依赖 Google 来存储玩家进度与其 Play 游戏服务账号之间的关联。

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

如上例所示, Recall API:

  • 当用户使用某个游戏内商品登录时将令牌存储到 Google 账号。
  • 检索用户令牌,以便恢复其游戏内功能 账号。

除了 Recall 令牌之外,Recall API 还需要稳定的标识符 (称为“角色”), 基数限制。您可能会认为一个职能角色 代表用户的游戏内账号的标签,该标签在开发者的 将 Recall 令牌作为密钥,用于恢复 将用户的游戏内账号与游戏相关联角色和令牌值不得重复使用 跨越不同的 PGS 项目。 此外,虽然 Recall 令牌可能会随时间而变化,但职能角色应保持稳定 根据用户的游戏内账号创建。

基数规则

Recall API 在 PGS 玩家资料与游戏内账号之间强制建立 1 对 1 的关系(称为基数规则),其中一个角色只能与一份 PGS 玩家资料相关联,而一份 PGS 玩家资料只能与一个角色相关联。由于 Recall 令牌可能会随时间而变化,因此角色会用作游戏内账号的稳定标识符。

与 PGS 玩家资料关联的角色也可能会随时间而变化(因为不同的游戏内账号与 PGS 玩家资料相关联)。

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

本部分介绍了游戏客户端、游戏服务器 和 Google 服务器之间的通信:

第 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 步:如果不存在令牌,则存储令牌

由于不存在令牌,因此不会恢复任何进度。用户继续登录 开发者的身份系统,或者创建一个新账号(如果没有账号的话) 存在。

用户使用其游戏内账号登录

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

开发者存储 Recall 令牌

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

您可以通过以下方式为尚未创建 PGS 玩家资料的用户存储 Recall 令牌 使用无配置文件模式不过,您需要注意以下两点:

  • 您无法为没有 PGS 玩家资料的用户检索令牌。个人资料 当用户尝试登录您的游戏时,系统会自动提示创建 在另一台设备上登录 Play 游戏服务。
  • 您必须遵循其他准则 以确保您收到有关以下各项的适当通知 获得适当的最终用户同意:

存储令牌和角色对

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

  1. 没有 PGS 玩家资料的用户打开了具有无玩家资料找回功能的游戏 。
  2. 游戏 SDK 会触发自动登录,而登录会失败,因为用户 没有 PGS 玩家资料。
  3. 游戏 SDK 会显示一个信息提示控件,告知用户游戏已 与 Google 集成。该信息条可供操作 - 用户可以停用 直到配置文件创建完毕为止。
  4. 游戏请求召回权限。请注意,PGS 会拒绝召回访问权限请求 当设备上有 PGS 玩家资料或没有 Google 时 设备上的账号。在这种情况下,游戏应该在不使用 PGS。
  5. 用户使用游戏内账号登录后,游戏会创建一个令牌, 用户的角色对。游戏 会将该配对信息存储到 Google。如果存在以下情况,那么游戏稍后可能会存储更多令牌: 用户登录其他游戏内账号。

在新设备上启动游戏

  1. 没有 PGS 玩家资料的用户打开了启用了无玩家资料找回功能的游戏 。
  2. 该游戏会按照存储令牌 角色和角色对
  3. 用户在使用同一账号的其他设备上打开了同一游戏 设置。
  4. 游戏 SDK 会触发玩家资料创建操作。用户可以查看并拒绝 之前存储的 Recall 令牌。此时,用户会创建 PGS 玩家资料。
  5. 自动登录 PGS 的操作已完成,并且该游戏会收到 身份验证状态。
  6. 游戏会像往常一样为用户检索 Recall 令牌。

后续步骤

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