借助 Recall API,游戏可以将 Recall 令牌存储在 Google 服务器中,从而管理 Google Play Games 服务 (PGS) 用户与其游戏内账号之间的关联。下面是一个说明可以如何使用 Recall API 的示例场景。
- 用户正在玩一款游戏,其开发者可以通过身份系统跟踪用户进度,并同时使用 PGS 和其他身份验证方法让用户登录其游戏。在此示例中,用户登录了其 PGS 账号 Laura,然后使用开发者的身份系统(名为 Racer94)创建了一个游戏内账号。当用户玩游戏时,开发者的游戏服务器会同步其进度。  
- 此外,开发者还在 Google 上保存一个 Recall 令牌,该令牌与用户的游戏内账号相对应。Google 会根据用户的 PGS 玩家资料自动存储该 Recall 令牌。  
- 现在,用户第一次决定在 Google Play 游戏电脑版平台上玩游戏。用户会自动使用其 PGS 账号进行身份验证,而游戏客户端会检查该 PGS 用户是否有任何进度。然后,游戏服务器会向 Google 查询,以确认是否有此 PGS 账号的任何令牌。由于存在,Google 会发回 Recall 令牌,游戏服务器使用该令牌查找用户的关联账号 Racer94,并恢复其游戏进度。由于使用 PGS 进行身份验证是一次顺畅的体验,因此无需用户输入用户名或密码,应用即会恢复用户的进度。此外,开发者可以将 PGS 身份验证与现有的身份系统搭配使用,并依赖 Google 来存储玩家进度与其 PGS 账号之间的关联。  
如前面的示例所示,Recall API 会执行两项主要操作:
- 当用户使用游戏内账号之一登录时,将令牌存储在 Google 中。 
- 检索用户的令牌,以便恢复其游戏内账号。 
除 Recall 令牌外,Recall API 还需要与游戏内账号对应的稳定标识符(称为角色)。您可将角色视为在开发者身份系统中代表用户的游戏内账号的标签,而将 Recall 令牌视为用于将用户的游戏内账号恢复至游戏的密钥。角色和令牌值不得在不同 PGS 项目中重复使用。此外,虽然 Recall 令牌可能会随时间而变化,但角色应根据用户的游戏内账号保持稳定。
用于存储和检索 Recall 令牌的技术流程
本部分介绍了在使用 Google 服务器存储和检索 Recall 令牌时游戏客户端与服务器之间的技术流程。
第 1 步:验证 PGS 用户身份并检索会话 ID
游戏会初始化 PGS SDK 并尝试使用 PGS 对用户进行身份验证。

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

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

第 3a 步:如果存在令牌,则恢复进度
如果存在令牌,则检索并解密令牌,然后恢复用户数据。

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

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

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

- 没有 PGS 玩家资料的用户打开了已启用无玩家资料找回功能的游戏。
- 游戏 SDK 会触发自动平台身份验证,但由于用户没有 PGS 个人资料,因此身份验证失败。
- 游戏 SDK 会显示一个信息条,告知用户游戏已与 Google 集成。此 snackbar 可操作,用户可以停用回忆功能,直到创建个人资料为止。
- 游戏请求召回访问权限。请注意,如果设备上有 PGS 玩家资料或设备上没有 Google 账号,PGS 会拒绝找回访问请求。在这种情况下,游戏应在不使用 PGS 的情况下继续进行。
- 用户使用游戏内账号登录后,游戏会为用户创建一个与其游戏内账号对应的令牌和角色对。游戏会向 Google 存储此配对信息。如果用户登录其他游戏内账号,游戏可能会在稍后存储更多令牌。
在新设备上启动游戏
- 没有 PGS 玩家资料的用户在设备上打开已启用无玩家资料找回功能的游戏。
- 游戏会记录无玩家资料的 Recall 令牌,如存储令牌和角色对中所述。
- 用户在另一台具有相同账号设置的设备上打开同一款游戏。
- 游戏 SDK 会触发个人资料创建。用户可以查看并拒绝之前存储的召回令牌。用户此时创建 PGS 玩家资料。
- 自动平台身份验证完成,游戏收到已通过身份验证的状态。
- 游戏会像往常一样检索用户的 Recall 令牌。
后续步骤
如需将 Recall API 与您的客户端和游戏服务器集成,请遵循本指南。
