问题描述
集成华为游戏 sdk 后,进行游戏登录操作,其中帐号登录完调用 getGamePlayer 接口后要对获取到的 Access Token 进行验证,此时调用解析凭证 Access Token 接口报{“error”:”invalid session”}。
解析凭证 Access Token 参考接口文档。
问题分析
我们不知道什么原因,直接找到了华为技术支持(可提工单咨询),按照他们的提示依次检查。
- 查看接口 url 是否填错,正确的 url:
https://oauth-api.cloud.huawei.com/rest.php?nsp_fmt=JSON&nsp_svc=huawei.oauth2.user.getTokenInfo
- 检查请求头是否设置 content-type为“application/x-www-form-urlencoded”。
- 检查请求体中传入的 access_token 字段是否被转义,是否是 UTF-8 编码。
问题解决
我们这边按照上面提示检查代码,发现我们的代码默认字符集不是 UTF-8,通过 Urlencode.encode() 方法将 access_token 转成 UTF-8 编码后,解决问题。