适用于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