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
为什么?
错误代码 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’