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

时间:2016-03-30 11:12:37

标签: android google-play-services google-play-games google-api-client

适用于Android的Google API 的在线reference,显示游戏类的公开方法摘要,其中包括:

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 个答案:

答案 0 :(得分:2)

这实际上是一个文档问题。 getGamesAuthToken()已被删除,因为它不像它需要的那样安全。

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

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

在设备上验证播放器后:

  1. 获取授权代码以发送到您的后端服务器: GetServerAuthCodeResult result = Games.getGamesServerAuthCode(gac, clientId).await(); if (result.isSuccess()) { String authCode = result.getCode(); // Send code to server. }
  2. 在服务器上,交换为令牌收到的身份验证码 将RPC发送到https://www.googleapis.com/oauth2/v4/token以交换访问令牌的身份验证代码。 您必须提供服务器客户端ID,服务器客户端密钥(在创建服务器客户端ID时在Developer Console中列出)和身份验证代码。 在此处查看更多详细信息:https://developers.google.com/identity/protocols/OAuth2WebServer?utm_campaign=play games_discussion_permissions_012316&utm_source=anddev&utm_medium=blog#handlingresponse

  3. 获得访问令牌后,将使用以下内容检索播放器的ID: www.googleapis.com/games/v1/applications/<app_id>/verify/使用访问令牌。 在标头中传递身份验证令牌,如下所示: “授权:OAuth”

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