问题描述

集成华为游戏sdk后,进行游戏登录操作,其中帐号登录完调用getGamePlayer接口后要对获取到的Access Token进行验证,此时调用解析凭证Access Token接口报{“error”:”invalid session”}。

解析凭证Access Token参考​​接口文档​​。

问题分析

我们不知道什么原因,直接找到了华为技术支持(可提​​工单​​咨询华为游戏登录,解析凭证Access Token接口报{“error”:“invalid session”}_技术支持),按照他们的提示依次检查。

  1. 查看接口url是否填错,正确的url:https://oauth-api.cloud.huawei.com/rest.php?nsp_fmt=JSON&nsp_svc=huawei.oauth2.user.getTokenInfo
  2. 检查请求头是否设置content-type为“application/x-www-form-urlencoded”。
  3. 检查请求体中传入的access_token字段是否被转义,是否是UTF-8编码。

问题解决

我们这边按照上面提示检查代码,发现我们的代码默认字符集不是UTF-8,通过Urlencode.encode()方法将access_token转成UTF-8编码后,解决问题。