平台身份验证

将游戏与 Google Play 游戏服务 (PGS) 集成的第一步是实现平台身份验证。您必须启用此权限才能使用所有其他功能,例如成就、排行榜和活动。

由于 Play 游戏服务 SDK 会在游戏启动时自动执行平台身份验证,因此您需要将 PGS v2 SDK 与游戏集成,并实现建议的身份验证流程,以便游戏能够实现并满足 Google Play Games Level Up 用户体验指南

身份验证概念

在 Play 游戏服务 v2 中,“登录”的概念分为两个不同的层:平台身份验证游戏内身份验证

平台身份验证

Play Games 服务提供平台互动层。它使用玩家资料管理玩家与 Google Play Games 生态系统的关系,以便访问成就、排行榜和任务等功能。平台身份验证具有以下关键特征:

  • 静默且自动:当游戏启动时,身份验证会在后台自动进行。Play Games 服务不需要手动 登录按钮。
  • 玩家 ID:成功完成平台身份验证后,Play 游戏服务会提供稳定的玩家 ID。对于同一款游戏,此 ID 在不同设备上是一致的。此 ID 主要用于跟踪平台功能,例如成就进度。
  • 解耦:您不得使用 Play 游戏服务作为游戏的主要身份系统来管理玩家的游戏内账号 (IGA)、游戏进度或物品清单。Play Games 服务充当持久性平台标识符。

玩家 ID

玩家 ID 是 Play 游戏服务玩家账号的标识符。您的游戏可以检索使用 Play Games 服务身份验证登录游戏的任何玩家的玩家 ID。您的游戏客户端集成游戏服务器集成云端存档服务可以使用玩家 ID 安全地访问 Play 游戏服务中的玩家数据。

当用户在多个设备上玩同一款游戏时,玩家 ID 是一致的。但是,不同游戏之间不一定会始终保持一致。 如需了解详情,请参阅新一代玩家 ID

游戏内身份验证

您管理游戏内账号 (IGA),该账号是用于绑定玩家在游戏中的进度、产品目录和币种的身份系统。

  • 主要身份:您可以使用自己的后端、Google 登录 (SiWG) 或其他提供商作为主要登录方法。
  • 独立性:玩家可以登录 Play Games 服务(平台身份),在登录任何特定 IGA(例如,访客账号或特定 SiWG 账号)的同时赚取成就。
  • 管理多个 IGA:Play Games 服务仅处理平台身份验证。游戏负责管理玩家登录 IGA 的主要身份验证。这意味着,玩家在不同 IGA 之间切换的游戏现有流程不会发生任何变化。当玩家切换账号时,他们仍会通过 PGS 保持对 Play Games 平台的身份验证,并且您会继续根据持久性玩家 ID 发送与成就和其他 PGS 功能相关的数据。

利用 SiWG 实现跨平台连续性

为了帮助玩家在 Android、iOS 和 Web 上同步游戏进度,请使用使用 Google 登录作为主要的游戏内身份验证方法。请考虑以下事项:

  • “使用 Google 账号登录”按钮:在 PGS v1 中,Google Play 按钮通常同时处理平台登录和游戏登录。在 v2 中,这些是单独的进程。 实现一个标准的使用 Google 账号登录按钮,供玩家进行身份验证并访问其 IGA。
  • Google 登录 SDK
    • 对于 Android 和 iOS,请使用标准的 Google 登录 SDK 对玩家进行身份验证,以将其登录到 IGA 中。
    • 使用 Google Open ID 作为玩家游戏内账号的主要标识符。
    • 使用 Play Games 服务的玩家 ID 来报告玩家在 Play Games 功能(例如成就)方面的进度。

推荐的集成

如需将游戏与 Play Games 服务集成,请按以下建议的步骤操作:

初始化和身份验证

您必须完成此步骤才能初始化并验证游戏:

通过在启动时初始化 Play 游戏服务 v2 SDK 来实现平台身份验证。如需了解详情,请参阅适用于 Android 游戏的平台身份验证机制。 此步骤是访问 Play 游戏服务功能(例如成就和排行榜)所必需的。

身份验证在游戏启动期间作为静默后台进程运行。现有 Play Games 服务的用户在成功通过身份验证后会看到一条欢迎消息。在 SDK 初始化期间,系统会提示没有 Play 游戏服务个人资料的用户创建个人资料

自动登录提示

创建个人资料

玩家需要拥有 Play 游戏服务玩家资料才能使用该平台。有些玩家在开始玩您的游戏时可能没有 Play 游戏服务个人资料。系统会要求这些玩家创建角色。

默认情况下,当您启动没有 Play 游戏服务玩家资料的游戏时,系统会自动显示自动触发的玩家资料创建提示。

启动游戏时,系统会显示个人资料创建提示。
启动游戏时显示的玩家资料创建提示(点击可放大)。

游戏内身份验证

成功执行平台身份验证后,开发者应实现以下步骤,以便玩家根据当前游戏状态访问其 IGA:

  1. 如果设备上存在有效的游戏会话,则允许玩家继续当前会话。
  2. 如果没有有效的游戏会话:
    1. 如果出现无缝恢复场景,其中上次玩过的 IGA 与 PGS 玩家 ID 相关联,请继续自动恢复关联的 IGA。
    2. 否则,向玩家显示应用的指定登录或账号创建界面。然后,玩家可以选择自己偏好的身份验证方法来创建或登录现有 IGA。

OAuth 范围

Play 游戏服务依赖 OAuth 系统来允许玩家授权您的游戏访问他们的账号。Play 游戏服务针对游戏提供唯一范围 (games-lite),如果您的游戏使用游戏存档功能,将依赖另一个范围 (drive.appdata)。通过游戏存档功能,您可以访问用户的 Google 云端硬盘账号,游戏数据便存储在此处。

使用 Play 游戏服务 v2 SDK 时,您可以请求额外的 OAuth 范围。如果您需要额外的 OAuth 范围,建议您调用 requestServerSideAccess。如需了解详情,请参阅获取服务器授权代码检索服务器身份验证代码

理想身份验证流程的用户体验指南

以下指南介绍了与 PGS v2 集成时建议使用的身份验证流程。这些方案涵盖了新用户、现有用户、回访用户和访客模式。

新玩家

此流程适用于用户首次在设备上启动游戏,且该设备之前没有该游戏的游玩记录。

  1. 启动时,PGS SDK 会初始化以验证用户的平台身份(PGS 玩家 ID)。
  2. 完成此后台握手后,游戏会向玩家显示 IGA 创建选项,例如创建新账号使用 Google 账号登录或其他社交登录方法。
  3. 玩家创建或选择 IGA 后,游戏会在其后端将此账号与所选的主标识符绑定。
  4. 游戏还会将所选 IGA 绑定到 PGS 玩家 ID,将其标记为用于无缝恢复的上次玩过的 IGA。
已登录 PGS 玩家资料的新玩家
已登录 PGS 玩家资料的新玩家(点击可放大)。
没有 PGS 玩家资料的新玩家
没有 PGS 玩家资料的新玩家(点击可放大)。
已登录 PGS 玩家资料的新玩家
已登录 PGS 玩家资料的新玩家(点击可放大)。

有活跃会话的玩家

此方案描述的是玩家在已处于有效会话状态的设备上启动游戏。目标是提供顺畅的入门体验。

  1. 当玩家启动应用时,PGS 会在后台静默进行身份验证,并向您提供玩家 ID,以便您跟踪玩家在成就和其他 Play Games 功能方面的进度。
  2. 同时,在适用的情况下,游戏会绕过登录界面,立即让玩家登录其有效的 IGA 会话或与其玩家 ID 关联的上次玩过的 IGA,以便玩家可以立即继续游戏。
在同一设备上启动游戏,并登录 PGS 玩家资料
在同一设备上启动游戏,并登录 PGS 玩家资料(点击可放大)。
在已退出账号的 PGS 玩家资料的同一设备上启动游戏
在同一设备上启动游戏,但使用已退出登录状态的 PGS 玩家资料(点击可放大)。
在同一设备上启动没有 PGS 玩家资料的游戏
在同一设备上启动游戏,但没有 PGS 玩家资料(点击可放大)。
在新设备上启动游戏,并使用已登录的 PGS 玩家资料和已关联的 IGA
在新设备上启动游戏,其中包含已登录的 PGS 个人资料和关联的 IGA(点击可放大)。
在新设备上启动游戏,但登录的 PGS 玩家资料未关联 IGA
在新设备上启动游戏,该设备已登录 PGS 个人资料,但未关联 IGA(点击可放大)。
在新设备上启动游戏,但 PGS 个人资料处于已退出账号状态
在新设备上启动游戏,但未登录 PGS 玩家资料(点击可放大)。
在新设备上启动游戏,但没有 PGS 玩家资料
在新设备上启动游戏,但没有 PGS 玩家资料(点击可放大)。

玩家切换账号

当具有有效会话的玩家前往游戏设置以切换账号时,会发生此流程。 例如,退出主账号以使用备用账号。

  1. 玩家从当前 IGA 中退出,但 PGS 平台连接仍处于有效状态。
  2. 当玩家使用其他 IGA 登录时,游戏会将此新账号绑定到当前的 PGS 玩家 ID,作为最后玩过的 IGA,以便无缝恢复。
切换到未与任何 PGS 玩家资料绑定的 IGA
切换到未与任何 PGS 配置文件绑定的 IGA(点击可放大)。
切换到与已登录的 PGS 玩家资料相关联的 IGA
切换到与同一已登录 PGS 个人资料相关联的 IGA(点击可放大)。
切换到与不同 PGS 玩家资料绑定的 IGA
切换到绑定了其他 PGS 个人资料的 IGA(点击可放大)。
在设备上切换没有 PGS 玩家资料的 IGA
在设备上切换 IGA,但没有 PGS 配置文件(点击可放大)。
切换到已退出登录的 PGS 玩家资料的 IGA
使用已退出登录的 PGS 个人资料切换 IGA(点击可放大)。
切换到不存在的 IGA
切换到不存在的 IGA(点击可放大)。

为回归玩家提供无缝恢复功能

此场景适用于玩家在非活跃期后、重新安装后或在全新设备上启动游戏的情况。建议游戏实现无缝恢复

  1. 启动时,PGS 会验证用户身份,并向游戏提供 PGS 玩家 ID。
  2. 游戏会检查其后端(或检索到的 Recall 令牌,如果使用 Recall API)以查看上次玩过的 IGA 是否已与此 PGS ID 相关联。
  3. 如果找到关联,游戏会自动恢复玩家的游戏进度并登录玩家账号,完全跳过手动登录界面。
  4. 否则,游戏会向玩家显示登录界面
    1. 然后,玩家选择登录方法并登录 IGA
    2. 然后,游戏会将此 IGA 与 PGS 玩家 ID 绑定,作为无缝恢复的最后一次玩过的 IGA。
已退出 PGS 玩家资料的回归玩家
已退出登录的 PGS 玩家资料(点击可放大)。
已登录 PGS 玩家资料并关联 IGA 的回访玩家
已登录 PGS 个人资料并关联了 IGA 的回访玩家(点击可放大)。
已登录 PGS 玩家资料但未关联 IGA 的回流玩家
已登录 PGS 个人资料且未关联 IGA 的回访玩家(点击可放大)。
没有 PGS 玩家资料的回归玩家
没有 PGS 玩家资料的回头玩家(点击可放大)。

访客模式

玩家可以启动游戏并使用本地访客账号进行游戏。PGS 仍会在后台进行身份验证。如果玩家选择保存进度,游戏会将临时会话转换为永久 IGA,并将其绑定到 PGS 玩家 ID。

访客模式 - 未创建 IGA
访客模式 - 未创建 IGA(点击可放大)。
访客模式 - IGA 已创建
Guest Mode - IGA created(点击可放大)。