You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用Google One Tap Sign In遇Missing Feature报错,求技术解决

Google One Tap Sign In 报错 Missing Feature{name=auth_api_credentials_begin_sign_in, version=7} 排查与解决

问题现象

调用Google One Tap登录功能时,触发如下错误提示:

Missing Feature{name=auth_api_credentials_begin_sign_in, version=7}

错误始终发生在登录失败后的重试代码段:

.addOnFailureListener { beginSignInException -> 
    oneTapClient.beginSignIn(signUpRequest)
        .addOnSuccessListener(requireActivity()) { beginSignUpResult ->
            IntentSenderRequest.Builder(beginSignUpResult.pendingIntent).build()
                .also { intentSenderRequest ->
                    intentSenderRequestActivityResultLauncher.launch(intentSenderRequest)
                }
        }
        .addOnFailureListener { beginSignUpException ->
            Log.d(TAG, "Google sign up failed:onResume: ${beginSignUpException.localizedMessage}")
            Toast.makeText(requireContext(), "Google sign up failed:${beginSignUpException.localizedMessage}", Toast.LENGTH_SHORT).show()
        }
    Log.d(TAG, "Google sign in failed:onResume: ${beginSignInException.localizedMessage}")
    Toast.makeText(requireContext(), "Google sign in failed:${beginSignInException.localizedMessage}", Toast.LENGTH_SHORT).show()
}

错误原因

  1. Server Client ID 为空:代码中setServerClientId("")传入空字符串,Google One Tap需要有效的Server Client ID完成身份验证,空ID会直接导致API调用失败并触发功能缺失错误。
  2. 依赖版本不兼容:当前使用的play-services-auth:20.4.0版本可能与设备上的Google Play Services版本不匹配,旧版Play Services不支持该API的v7版本要求。
  3. 请求配置不规范:SignInRequest和SignUpRequest的GoogleIdTokenRequestOptions配置缺少必要验证参数,导致API无法识别合法请求。

解决方案

1. 配置有效的Server Client ID

  • 登录Google Cloud Console,为应用创建OAuth 2.0客户端ID(根据后端验证需求选择Android或Web类型)。
  • 将获取到的真实Server Client ID填入代码:
// 替换为你的真实Server Client ID
.setServerClientId("your-actual-server-client-id")

2. 更新Play Services Auth依赖

将play-services-auth依赖升级到最新稳定版本,确保与Google Play Services API版本兼容:

implementation 'com.google.android.gms:play-services-auth:20.7.0' // 或更高稳定版本

3. 完善请求配置

优化SignInRequest和SignUpRequest的配置,确保符合Google One Tap要求:

  • 根据业务需求合理设置setFilterByAuthorizedAccounts();
  • 若不需要密码登录功能,可移除setPasswordRequestOptions()配置,减少不必要的API依赖:
signInRequest = BeginSignInRequest.builder()
    .setGoogleIdTokenRequestOptions(
        BeginSignInRequest.GoogleIdTokenRequestOptions.builder()
            .setSupported(true)
            .setServerClientId("your-actual-server-client-id")
            .setFilterByAuthorizedAccounts(true)
            .build()
    )
    .setAutoSelectEnabled(true)
    .build()

4. 验证设备Play Services版本

确保测试设备上的Google Play Services为最新版本,可通过Google Play商店完成更新,避免因旧版本不支持API功能导致错误。

内容的提问来源于stack exchange,提问作者Squall Huang

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.11 17:40:29