提问人:Gamengineer314 提问时间:2/4/2023 更新时间:2/18/2023 访问量:165
如何在没有任何用户或客户端操作的情况下从服务器访问 Google Play 游戏公开排行榜?
How to access a Google Play Games public leaderboard from a server without any user or client action?
问:
我正在尝试使用 Google Play 游戏服务在我的 Android 游戏中实现排行榜。 我想我了解如何从登录 Play Games 的客户端提交分数并访问排行榜,但我也希望能够从我的服务器访问排行榜。这样,我就可以向尚未登录 Play 游戏的用户显示排行榜,甚至可以使用我的机器人在 Discord 上显示排行榜。 但我不知道该怎么做。
每当我尝试在 Internet 上查找有关服务器端访问 Play 游戏的信息时,我只找到如何从客户端获取一次性使用令牌,然后代表用户从服务器调用 Play 游戏(据我所知)。
但这不是我想做的!我需要能够以管理员身份(或以我自己或服务帐户或类似方式)的身份从我的服务器访问排行榜,而不是代表用户。我希望能够在任何时候做到这一点,而不仅仅是在客户端发送访问令牌时......
这可能吗?
提前感谢您对此事的任何帮助!
答:
0赞
Gamengineer314
2/12/2023
#1
我为 Web 服务器创建了一个新凭据,然后,使用我的 Oauth 同意屏幕,我设法为自己的 Google 帐户提供了一个刷新令牌。 这样,我就可以随时从服务器获取访问令牌,并代表我的帐号使用这些访问令牌访问 Play Games REST API。
这是我如何一步一步地做到的:
- 在 Play 管理中心内,为网络服务器创建一个新凭据(如果您还没有凭据)。在关联的 Google Cloud Oauth 客户端 ID 设置中,添加“授权重定向 URI”。我认为 URL 并不重要,但我建议选择您拥有的 URL......(也许它甚至适用于不存在的,但我不确定)
- 在浏览器中打开此 URL:https://accounts.google.com/o/oauth2/v2/auth?redirect_uri=<THE_URL_YOU_CHOSE_ABOVE>&prompt=consent&response_type=code&client_id=<YOUR_CLIENT_ID>&scope=https%3A%2F%2Fwww.googleapis.com%2Fauth%2Fgames+https%3A%2F%2Fwww.googleapis.com%2Fauth%2Fdrive.appdata+https%3A%2F%2Fwww.googleapis.com%2Fauth%2Fgames&access_type=offline
接受应显示的提示后,您将被重定向到您选择的 URL,您应该会看到一个参数“code=...”(在屏幕顶部,您会看到 URL)。这是您需要的授权码! - 将该代码交换为刷新令牌(文档中的步骤 5)。
- 如果需要,请使用刷新令牌获取新的访问令牌(文档中的“刷新访问令牌”部分)。
- 访问令牌可用于向 Play 游戏 REST API 发出请求的授权标头:)
整个过程在这里解释:https://developers.google.com/identity/protocols/oauth2/web-server
评论