Play 游戏服务登录为您提供玩家的游戏身份,这是适用于 Android 玩家的平台级游戏专用身份。此身份有助于在您的游戏和玩家之间建立联系。与其他集中式系统相比,玩家更愿意使用此身份登录。
此外,登录还为您提供了一个强大且一致的标识符,您可以将其用作云保存系统的密钥。云保存非常有价值;它使玩家能够执行以下操作:
- 如果他们更改或重置设备,则可以从上次离开的地方继续游戏。
- 在多个设备上玩游戏(例如,在另一部手机或 Chromebook 上)。
- 卸载游戏,然后重新安装。
您可以使用 Play 游戏服务身份作为您自己的云保存解决方案的密钥,也可以使用免费的已保存的游戏服务。
Play 游戏服务 (PGS) 支持自动登录(一种无需任何操作即可登录玩家的方式)以及手动登录(一键式流程)。本文档介绍了这些不同的登录方法。
推荐的登录流程
为了成功地将玩家登录到您的游戏中,请使用以下登录流程:
此外,您应确保用户能够使用其 Play 游戏服务帐户通过一个专用的、易于找到的按钮登录到您的游戏中。
自动登录
自动登录允许用户无需任何操作即可登录您的游戏 - 它完全是自动的!如果您的游戏请求用户登录并且启用了自动登录设置(在 Google Play 游戏应用中),那么您将收到用户的 PGS 身份凭据,并且用户将看到 PGS 登录体验。
自动登录是用户可以控制的设置。用户可以选择自动登录所有游戏,或者每次都被询问。
手动登录
如果用户没有自动登录游戏,您可以要求他们手动登录。用户可以点击游戏顶部显示的对话框中的一键式按钮登录。
允许 PGS 弹出窗口以获得正确的登录体验
使用 PGS 时,用户需要知道他们已登录。这是通过显示 PGS 登录体验来实现的。
要显示登录体验,请在游戏启动期间调用setViewForPopups()
方法(GamesClient
类)。这对于启用正确的用户体验至关重要。
OAuth 范围和 PGS
PGS 依靠 OAuth 系统 允许用户向您的游戏授予访问其帐户的权限。OAuth 范围 是您作为开发者可以请求的权限。如果获得授权,这些权限将允许您的游戏代表用户调用某些 API,并允许您访问其 Google 帐户的某些部分。
PGS 为游戏拥有一个独特的范围 (games-lite
),如果您的游戏使用存档游戏功能,则依赖于另一个范围 (drive.appdata
)。存档游戏功能允许访问用户的 Google Drive 帐户,游戏数据存储在该帐户中。
您的游戏可以请求创建出色的游戏体验所需的任何范围。您的游戏可以一次性请求所有需要的范围,从而限制对 Google 帐户访问的请求次数。但是,这种方法有一个主要缺点。如果您请求的范围超过 PGS 特定的范围,则无法成功自动登录。自动登录是让玩家登录游戏的最佳方式。
最佳实践是使用增量范围请求。您的游戏应该在初始请求中首先请求仅 PGS 范围,并在更相关的时刻分别请求其他范围。
OAuth 访问权限是使用不同的屏幕为每个范围授予的。这允许用户以细粒度的方式决定授予哪些范围的访问权限。通过仅使用 PGS 范围进行自动登录,用户无需与任何 OAuth 提示交互,从而减少了登录摩擦。
支持多种登录方法
PGS 为 Android 玩家提供游戏身份,但它不必是与您的用户关联的唯一身份。您可以同时使用 PGS、社交网络 ID 和您自己的游戏内 ID 系统登录玩家。每个系统都为您和您的玩家提供独特的价值,并且所有系统都可以协同工作,为 Android 玩家创造出色的体验。
安全地检索和验证玩家身份以进行后端集成
您可以请求服务器身份验证代码,以使您的服务器能够通过 REST API 直接与 Play 游戏服务服务器通信,并具有已登录玩家的权限。这允许直接访问玩家的 ID、个人资料和其他信息(例如,如果已授权,则包括好友列表)。如果您在后端存储任何玩家 ID、好友 ID 或其他相关数据,则必须使用此方法来消除对这些字段进行设备端操作的可能性。
此外,对于某些旧游戏和玩家,Android SDK 为玩家返回的玩家 ID 可能与其他玩家在同一游戏中查看该玩家时看到的 ID 不同——这在使用好友列表时尤其相关。但是,REST API 中返回的 player_id
始终一致,并且始终是其他玩家看到的 ID。
有关更多信息,请参阅 脱机访问 和 REST API 文档。
客户端实现
要了解如何在 Android 上实现登录支持,请参阅 Android 游戏中的登录。