我正在尝试使用Google Play Games服务在我的Android游戏中实现排行榜。我想我知道如何从登录Play Games的客户端提交分数和访问排行榜,但我也希望能够从我的服务器访问排行榜。这样,我可以向尚未登录Play Games的用户显示排行榜,甚至可以在Discord with my bot上显示排行榜。但我不知道该如何操作。
每当我试图在Internet上查找有关服务器端访问Play Games的信息时,我只找到如何从客户端获得一次性使用令牌,然后代表用户从服务器调用Play Games(据我所知)。
但这不是我想要做的!我需要能够以管理员的身份(或者以我自己的身份,或者以服务帐户或类似的身份)从我的服务器访问排行榜,而不是代表用户。而且我希望能够在任何时候都能这样做,而不仅仅是当客户端发送访问令牌时...
这可能吗?
提前感谢您对此事的任何帮助!
1条答案
按热度按时间bpzcxfmw1#
我最终找到了一个解决方案:)我为一个网络服务器创建了一个新的凭据,然后使用Oauth同意屏幕,我设法为自己的Google帐户给予自己一个刷新令牌。这样我就可以随时从我的服务器获得访问令牌,并使用这些访问令牌代表我的帐户访问Play游戏REST API。
下面是我一步一步的做法:
1.在Play控制台中,为一个网络服务器创建一个新的证书(如果你还没有)。在相关的Google Cloud Oauth客户端ID设置中,添加一个“授权重定向URI”。我不认为URL很重要,但我建议选择一个你自己的...(也许它甚至可以与一个不存在的,但我不确定)
1.在浏览器中打开此URL:https://accounts.google.com/o/oauth2/v2/auth?redirect_uri=<THE_URL_YOU_CHOSE_ABOVE>&提示符=同意&响应类型=代码&客户端ID=<YOUR_CLIENT_ID>&作用域= https%3A%2F%2F游戏+https%3A%2F%2F游戏+https%3A%2F%2F驱动器.应用程序数据+https%3A%2F%2F游戏访问类型=脱机
在接受应该显示的提示后,您将被重定向到您选择的URL,并且您应该看到一个参数“code=...”(在您看到URL的屏幕顶部)。这是您需要的授权码!
1.用该代码交换刷新令牌(文档中的步骤5)。
1.需要时,使用刷新令牌获取新的访问令牌(文档中的“刷新访问令牌”部分)。
1.访问令牌可以在您对Play游戏REST API的请求的授权标头中使用:)
整个过程解释如下:https://developers.google.com/identity/protocols/oauth2/web-server