无法设置 GoogleSignIn。我收到 ApiException: 8

问题描述 投票:0回答:1
  1. 我已经在 Google Cloud Console 和简单的 OAuth 2.0 客户端 ID 凭据中创建了项目。授权的 JavaScript 来源和授权的重定向 URI 为空
  2. 我已经编写了一些手册中的代码:
    val signInOptions = GoogleSignInOptions.Builder(GoogleSignInOptions.DEFAULT_SIGN_IN)
        .requestIdToken("Client ID from previous step")
        .requestEmail()
        .requestScopes(Scope(DriveScopes.DRIVE_FILE), Scope(DriveScopes.DRIVE))
        .build()
    val mGoogleSignInClient = GoogleSignIn.getClient(context, signInOptions)

    try {
        val gIntent = mGoogleSignInClient.signInIntent
        val account = GoogleSignIn.getSignedInAccountFromIntent(gIntent).await()
    } catch (e: Exception) {
        Log.e(LOG_BACKUP_TAG, "Can't login to google", e)
        if (e is CancellationException) throw e
    }

但我越来越

com.google.android.gms.common.api.ApiException:8

为什么?

kotlin google-cloud-platform google-api google-oauth google-signin
1个回答
0
投票

错误代码 8 (INTERNAL_ERROR) 是一般性错误,您可能需要检查多个组件。确保在开发控制台中仔细检查您的应用程序注册。请注意,每个注册的 Android 客户端均由(程序包名称、Android 签名证书 SHA-1)对唯一标识。打开凭据页面并选择您的项目。验证每对都有 Android 类型的 OAuth 2.0 客户端 ID。

如果您需要为 Android 客户端创建新的 OAuth 2.0 客户端 ID,请从下拉列表中选择 New Credentials->OAuth2 Client ID,选择 Android 并在其中输入您的包名称/签名证书指纹。

以下是获取签名密钥证书 SHA-1 的命令:

对于标准调试键:

‘keytool -list -v -keystore ~/.android/debug.keystore -alias androiddebugkey -storepass android -keypass android’

对于自定义密钥:

‘keytool -list -v -keystore $YOUR_KEYSTORE_LOCATION’

© www.soinside.com 2019 - 2024. All rights reserved.