Unity Google Play Games插件v11.01授权码(Token)为空问题求助
解决Unity Google Play Games插件v11.01授权令牌为空的问题
可能的原因及修复方案
1. OAuth 2.0客户端ID配置缺失
要获取服务器端授权码,必须完成Web应用类型客户端ID的配置:
- 登录Google Cloud Console,为项目创建Web应用类型的OAuth客户端ID。
- 进入Google Play开发者控制台的游戏服务凭据页面,将创建好的Web客户端ID添加到列表中。
- 确认客户端ID的授权回调地址(若有设置)填写正确。
2. SHA-1指纹不匹配
SHA-1是验证应用身份的核心,必须保证两处配置完全一致:
- 打包用的签名密钥SHA-1,要和Google Play开发者控制台游戏服务中配置的指纹完全相同。
- 调试阶段需额外添加调试密钥的SHA-1(比如Unity默认
debug.keystore的指纹),可通过命令keytool -list -v -keystore 你的密钥文件路径获取。
3. 登录后请求时机问题
登录成功后直接请求授权码可能存在会话未完全建立的情况,建议先验证会话有效性:
private void LoginGooglePlayGames() { PlayGamesPlatform.Instance.Authenticate((signInStatus) => { if (signInStatus == SignInStatus.Success) { Debug.Log("Login with Google Play games successful."); // 先验证用户会话是否有效 string userId = PlayGamesPlatform.Instance.GetUserId(); if (!string.IsNullOrEmpty(userId)) { PlayGamesPlatform.Instance.RequestServerSideAccess(true, code => { Debug.Log("Authorization code: " + code); Token = code; OnGetAuthToken?.Invoke(code); }); } else { Debug.Log("用户会话未完全建立"); } } else { Debug.Log("登录失败,无法获取授权码"); } }); }
4. 插件依赖或权限缺失
- 确认插件v11.01的所有资源、配置文件都已正确导入,无缺失项。
- 检查AndroidManifest.xml中是否添加了必要权限:
<uses-permission android:name="android.permission.INTERNET" /> <uses-permission android:name="android.permission.GET_ACCOUNTS" /> - 确保测试设备上的Google Play Games服务已更新至最新版本。
5. 测试账号权限不足
- 测试用的Google账号必须添加到Google Play开发者控制台的测试账号列表中。
- 若应用已发布,需确保处于内部测试/封闭测试状态,且测试账号拥有访问权限。
内容的提问来源于stack exchange,提问作者Nik
相关产品推荐
相关产品推荐

