适用于 Android 的 Google API 缺少 Games.getGamesAuthToken

Posted

技术标签:

【中文标题】适用于 Android 的 Google API 缺少 Games.getGamesAuthToken【英文标题】:Google APIs for Android is missing Games.getGamesAuthToken 【发布时间】:2016-07-18 08:31:14 【问题描述】:

Google APIs for android 的在线 reference 显示了 Games 类的公共方法摘要,其中包括:

static PendingResult<Games.GetTokenResult> getGamesAuthToken(GoogleApiClient apiClient)

但可用的最新版本 (8.4.0) 不包含此方法。我用它来获取 API:

dependencies     
    compile 'com.google.android.gms:play-services:8.4.0'

Games.getGamesAuthToken 在哪里?

【问题讨论】:

【参考方案1】:

这实际上是一个文档问题。 getGamesAuthToken() 已被删除,因为它没有达到应有的安全性。

供参考,可以阅读http://android-developers.blogspot.com/2016/01/play-games-permissions-are-changing-in.html

处理此问题的最佳方法是:

播放器在设备上通过身份验证后:

    获取验证码以发送到您的后端服务器: GetServerAuthCodeResult result = Games.getGamesServerAuthCode(gac, clientId).await(); if (result.isSuccess()) String authCode = result.getCode(); // Send code to server.

    在服务器上,将收到的身份验证码交换为令牌 向https://www.googleapis.com/oauth2/v4/token 发起 RPC 以将身份验证代码交换为访问令牌。 您必须提供服务器客户端 ID、服务器客户端密码(在创建服务器客户端 ID 时在开发者控制台中列出)和身份验证代码。 在此处查看更多详细信息:https://developers.google.com/identity/protocols/OAuth2WebServer?utm_campaign=play games_discussion_permissions_012316&utm_source=anddev&utm_medium=blog#handlingresponse。

    获得访问令牌后,将使用以下方法检索玩家 ID: www.googleapis.com/games/v1/applications/&lt;app_id&gt;/verify/ 使用访问令牌。 在标头中传递身份验证令牌,如下所示: “授权:OAuth”

    响应值将包含用户的玩家 ID。这是供该用户使用的正确玩家 ID。 此访问令牌可用于根据需要进行额外的服务器到服务器调用。

【讨论】:

谢谢@Clayton。我看到的问题是 .getGamesServerAuthCode 也显示为已弃用,这意味着谷歌似乎根本没有提供任何可接受的解决方案。想法? 据我所知,在新的权限模型完全推出之前,它已被弃用——这应该在接下来的几周(左右)内完成。之后它将是一个普通的 API。 我注意到它仍然被弃用。有什么消息吗? @ClaytonWilkinson 你能告诉我们现在正确的方法是什么吗?我们看到列出的两种方法,一种显示为已弃用,另一种需要不同的登录过程 (GetServerAuthCode),这可能需要对代码进行重大更改。 @ClaytonWilkinson 您描述的步骤不起作用 - 是否有任何实际的解决方案来使用 Google Play Games 登录 + 服务器身份验证?我不想实现标准登录。

以上是关于适用于 Android 的 Google API 缺少 Games.getGamesAuthToken的主要内容,如果未能解决你的问题,请参考以下文章

适用于 Android 的 Google API 缺少 Games.getGamesAuthToken

适用于 Android 的 Google Places API:地图立即消失

适用于 Android 的 Google Books API - 未配置访问权限

是否有任何已发布的实施适用于 Android 的 Google Latitude API 的示例? [关闭]

使用适用于 android 的 google places api 网络服务搜索特定的附近地点

如何在适用于 Android 的 Google API 的 CameraSource 中保存带有叠加层的图像?