PlayGamesPlatform.RequestServerSideAccess返回空及ApiException:10错误求助
解决Play Games Server-Side Access返回ApiException:10及授权密钥为空问题
核心问题排查与修复步骤
1. 修正OAuth客户端类型错误
你当前创建的是Android类型OAuth客户端,但RequestServerSideAccess方法依赖的是Web应用类型的OAuth客户端ID——这是触发错误码10的最常见原因:
- 登录Google Cloud Console的凭据页面,创建新的OAuth 2.0客户端ID,选择「Web应用」类型
- 将该Web应用的客户端ID填入Unity的
Window/Google Play Games/Setup/Android setup对应输入框 - 同时在Google Play Console的游戏服务设置中,把这个Web客户端ID添加到「授权的客户端ID」列表
2. 确保SHA-1指纹完全匹配
构建APK使用的密钥库SHA-1必须与Google Console中配置的完全一致:
- 重新生成当前构建密钥库的SHA-1:执行命令
keytool -keystore [你的密钥库路径] -list -v,复制输出的SHA-1值(注意格式要和Console中的配置完全一致,是否带冒号统一即可) - 若使用Debug构建,确认使用的是
C:\Users\USERNAME.android\debug.keystore的SHA-1,且该指纹已在Console中配置
3. 验证游戏服务与OAuth客户端的关联
- 进入Google Play Console的游戏页面,找到「游戏服务」→「凭据」
- 确认Web应用OAuth客户端ID和对应包名+SHA-1的Android客户端ID都已加入「授权的客户端ID」列表
4. 重新同步Unity插件配置
- 打开Unity的
Window/Google Play Games/Setup/Android setup,点击「Apply Setup」确保配置写入AndroidManifest.xml - 清理Unity项目的Library文件夹后重新构建,避免缓存导致的配置不生效
5. 代码层面完善错误捕获
调用RequestServerSideAccess时增加详细错误处理,便于定位问题:
PlayGamesPlatform.Instance.RequestServerSideAccess(false, (authCode, errorMsg) => { if (!string.IsNullOrEmpty(authCode)) { Debug.Log("授权密钥获取成功: " + authCode); } else { Debug.LogError("请求失败: " + errorMsg); if (errorMsg.Contains("ApiException: 10")) { Debug.LogError("错误码10通常表示OAuth客户端配置错误、权限不足或指纹不匹配"); } } });
额外验证项
- 确保测试设备的Google Play服务为最新版本
- 尝试使用正式签名的APK测试(Debug构建可能存在配置差异)
- 检查Google Cloud Console中Web应用OAuth客户端的权限是否包含游戏服务相关授权
内容的提问来源于stack exchange,提问作者oleegarch
相关产品推荐
相关产品推荐

