其他分享
首页 > 其他分享> > 适用于Android的Google API缺少Games.getGamesAuthToken

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

作者:互联网

适用于Android的Google API的在线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在哪里?

解决方法:

这实际上是一个文档问题. 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();
        //将代码发送到服务器.
}

>在服务器上,交换为令牌收到的身份验证代码
将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.
>获得访问令牌后,将使用以下方式检索玩家的ID:
www.googleapis.com/games/v1/applications/\u0026lt;app_id\u0026gt;/verify/使用访问令牌.
在标头中传递身份验证令牌,如下所示:
“授权:OAuth”

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

标签:google-api-client,android,google-play-services,google-play-games
来源: https://codeday.me/bug/20191007/1867293.html