登录

借助 Play 游戏服务登录功能,您可以获知玩家的游戏身份,即 Android 玩家的平台级游戏专用身份。此身份有助于在游戏与玩家之间建立关系。与其他集中式系统相比,玩家更愿意使用此身份登录。

此外,登录功能还可让您获得强大且一致的标识符,您可以将这些标识符用作云端存档系统的键。云端存档功能非常强大;可让玩家实现以下目标:

  • 更换或重置设备后从上次停下的地方继续游戏
  • 在多个设备上(例如,在另一部手机或 Chromebook 上)畅玩游戏
  • 卸载并在日后重新安装游戏

您可以将 Play 游戏服务身份用作自己的云端存档解决方案的键,也可以使用免费的游戏存档服务

Play 游戏服务 (PGS) 支持自动登录,这是一种顺畅的登录方式。 还可以手动登录(一键式流程)。这个 文档介绍了这些不同的登录方法。

建议使用的登录流程

若要让玩家成功登录游戏,请使用以下登录流程:

  1. 在游戏启动过程中,不妨试试自动登录 让玩家自动登录
  2. 如果自动登录不起作用且用户的设备处于联网状态,请尝试手动登录
  3. 如果手动登录遭拒,系统会记住用户的选择,使其不再显示 但可以继续尝试在启动时自动登录。

此外,您应确保用户可以使用 为其 Play 游戏服务账号启用易于查找的专用按钮。

自动登录

借助自动登录功能,用户可以顺畅地 自动!如果您的游戏要求用户登录和自动登录 设置处于启用状态时(在 Google Play 游戏应用中),那么您将收到该用户的 Play 游戏服务 身份凭据,用户将看到 PGS 登录体验。

用户可以控制自动登录设置,并且可以选择自动登录所有游戏,也可以让系统在每次启动游戏时询问。

自动登录

手动登录

如果用户未自动登录游戏,您可以让用户登录 。用户可以在顶部显示的对话框中点击一下即可登录 。

手动登录

允许 PGS 弹出式窗口以实现正确的登录体验

使用 PGS 时,用户需要知道自己已登录。这是通过显示 即 PGS 登录体验。

要显示登录体验,请调用 setViewForPopups() (在游戏启动期间使用 GamesClient 类)。这对于 从而为用户带来良好的体验

OAuth 范围和 PGS

PGS 依靠 OAuth 系统来允许用户 允许您的游戏访问他们的账号。 OAuth 范围是您作为 开发者可请求的其他类型如果授予这些权限,您的游戏可以调用 API 代表用户进行访问,同时授予您访问其 Google 账号。

PGS 具有唯一的游戏范围 (games-lite),并依赖于另一个范围 (drive.appdata)(如果您的游戏使用游戏存档功能)。通过游戏存档功能,您可以访问用户的 Google 云端硬盘账号,游戏数据便存储在此处。

您的游戏可以请求获取您打造出色游戏体验所需的任何作用域 。您的游戏可以在一个 bundle 中请求其需要的所有作用域, 并限制请求 Google 账号访问权限的次数。不过, 有一个主要缺点。如果您请求超出 PGS 专用范围, 自动登录失败。自动登录是 登录游戏的玩家人数

最佳实践是使用增量范围请求。您的游戏应要求提供 首先在初始请求中请求仅限 PGS 的范围,然后再请求其他范围 单独展示,并在更相关的时刻展示

针对每个范围使用不同的屏幕授予 OAuth 访问权限。这样, 用户精细地决定要授予哪些范围的访问权限。使用 仅在 PGS 范围内自动登录,因此用户无需与任何 OAuth 提示,减少登录障碍。

支持多种登录方法

PGS 能为 Android 玩家提供游戏身份,但这并不是必需的 是与您的用户关联的唯一身份您可以使用 PGS (PGS) 来让玩家登录, 社交网络 ID 和您自己的游戏内 ID 系统。每个 能同时为你和你的玩家提供独特的价值 从而为 Android 玩家提供出色的体验

安全地检索并验证玩家身份,以进行后端集成

您可以请求服务器授权代码,以便服务器在获得已登录玩家的授权后通过 REST API 直接与 Play 游戏服务的服务器通信。这样一来,您就可以在获得授权后直接访问玩家的 ID、个人资料和其他信息(例如好友列表)。如果您在后端存储任何玩家 ID、好友 ID 或其他相关数据,就必须使用这种方法,以免出现在设备端操控这些字段的情况。

此外,对于某些较老的游戏和玩家,Android SDK 针对某个玩家返回的玩家 ID 可能与其他玩家在同一游戏中查看该玩家时看到的 ID 不同;在使用好友列表时尤为如此。但是,REST API 中返回的 player_id 始终是一致的,并且始终是其他玩家看到的 ID。

如需了解详情,请参阅离线访问REST API 文档。

客户端实现

如需了解如何在 Android 上实现登录支持,请参阅 Android 游戏中的登录功能