android - GoogleSignIn API 异常:10
问题描述
我在我的应用程序中使用谷歌身份验证,但我无法让它工作。我目前的错误是
com.google.android.gms.common.api.ApiException: 10: at com.google.android.gms.common.internal.ApiExceptionUtil.fromStatus(Unknown Source) at com.google.android.gms.auth.api.signin .GoogleSignIn.getSignedInAccountFromIntent(Unknown Source) at br.com.etc.login.LoginActivity.onActivityResult(LoginActivity.kt:123)
我的登录活动:
class LoginActivity : AppCompatActivity() {
private var googleSignInClient: GoogleSignInClient? = null
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_login)
val gso = GoogleSignInOptions.Builder(GoogleSignInOptions.DEFAULT_SIGN_IN)
.requestEmail()
.requestIdToken(getString(R.string.google_client_id))
.build()
googleSignInClient = GoogleSignIn.getClient(this, gso)
bt_login_google.onClick {
val signInIntent = googleSignInClient!!.signInIntent
startActivityForResult(signInIntent, RC_SIGN_IN)
}
}
override fun onActivityResult(requestCode: Int, resultCode: Int, data: Intent?) {
super.onActivityResult(requestCode, resultCode, data)
if (requestCode == RC_SIGN_IN) {
val task = GoogleSignIn.getSignedInAccountFromIntent(data)
handleSignInResult(task)
}
}
private fun handleSignInResult(completedTask: Task<GoogleSignInAccount>) {
try {
val account = completedTask.getResult(ApiException::class.java)
vm.loginGoogle(account?.idToken ?: "")
} catch (e: ApiException) {
Snackbar.make((findViewById(android.R.id.content)), R.string.error_generic, Snackbar.LENGTH_SHORT)
.show()
Timber.e(e)
}
}
}
我正在从 Gradle>App>tasks>android>signinReport 获取我的 SHA1
我将我的 SHA1 添加到https://console.developers.google.com/apis/credentials现在看起来像这样:
我的 (R.string.google_client_id) 是客户端 ID
所以我去了我的firebase项目(我只用于分析),去项目设置并添加了SHA1。我还添加了一封支持电子邮件。我下载了 google-settings.json 并添加到我的项目中。IDk 如果它很重要但我的应用程序没有发布,我没有谷歌开发者帐户。
我知道这是一个常见问题,但我尝试了我能想到的一切,但我仍然遇到这个问题。
解决方案
您应该在 OAuth 2.0 客户端 ID 下生成 Web 客户端 ID,而不是使用 Android 客户端 ID
推荐阅读
- javascript - 使用 focusMode 约束获取所需的媒体设备
- swift - Swift 中的 Obj C 代码库和单元测试用例
- html - NoReverseMatch 在登录时使用 Django 密码重置
- javascript - 通过特定属性本身获取元素
- excel - 无法弄清楚为什么我会收到以下错误:“对象'范围'的方法'值'失败”
- javascript - jQuery单击事件不适用于动态添加元素
- android-livedata - 具有两个源的 MediatorLiveData 触发观察者两次
- c++ - 参数构造函数出错:错误 C2511
- python - 图像去模糊点扩散函数的核大小估计
- informatica - 您能协助处理错误的 informatica 结果吗?