Error: estado {statusCode = DEVELOPER_ERROR, resolution = null}

102

Estoy usando el inicio de sesión de gplus y obtengo este error en el momento en que estoy en onActivityResult ...

@Override
public void onActivityResult(int requestCode, int resultCode, Intent data) {
    super.onActivityResult(requestCode, resultCode, data);
    callbackManager.onActivityResult(requestCode, resultCode, data);
    client.onActivityResult(requestCode, resultCode, data);

    if (requestCode == 0) {
        GoogleSignInResult result = Auth.GoogleSignInApi.getSignInResultFromIntent(data);
        if (result.isSuccess()) {

            GoogleSignInAccount acct = result.getSignInAccount();
//                Log.d("Result","details"+ acct.getDisplayName() + acct.getEmail());

            mEmail = acct.getEmail();
            String mFullName = acct.getDisplayName();
            String mGoogleplusId = acct.getId();


            SocialUser user = new SocialUser();
            user.setType("googleplus");

            user.setEmail(mEmail);
            user.setFullname(mFullName);
            user.setId(mGoogleplusId + "");
            loginParams.put("email_id", mEmail);
            loginParams.put("googlePlusId", mGoogleplusId);
            loginParams.put("full_name", mFullName);
            loginParams.put("registrationType", "googleplus");
            SignUpService(user);


        } else {
            Toast.makeText(CustomerLogIn.this, "Unable to fetch data, Proceed manually", Toast.LENGTH_SHORT).show();
        }
    }
}

Y estoy pidiendo que inicie sesión en gplus al hacer clic en el botón. Al hacer clic en el botón se ejecuta el siguiente código ...

 GoogleSignInOptions googleSignInOptions = new GoogleSignInOptions.Builder(GoogleSignInOptions.DEFAULT_SIGN_IN)
            .requestEmail()
            .build();
    mGoogleApiClient = new GoogleApiClient.Builder(CustomerLogIn.this)

            .addApi(Auth.GOOGLE_SIGN_IN_API, googleSignInOptions)
            .build();


    Intent signInIntent = Auth.GoogleSignInApi.getSignInIntent(mGoogleApiClient);
    startActivityForResult(signInIntent, 0);

Y estoy obteniendo este error ...

Status{statusCode=DEVELOPER_ERROR, resolution=null}

en esta línea ...

GoogleSignInResult result = Auth.GoogleSignInApi.getSignInResultFromIntent(data);

Sugiera la solución.

Gurvinder Singh
fuente
1
La aplicación está mal configurada. Compruebe la configuración de la API de Google.
1'hafs
6
Sí, pero no puedo averiguar qué pasa.
Gurvinder Singh
No uso firebase. Vea mi solución aquí: stackoverflow.com/a/46828895/1160216
Mike Miller

Respuestas:

213

Necesita agregar su clave SHA1 a la configuración de la consola de base de fuego. Puedes hacerlo de esta manera:

Firebase console ( https://console.firebase.google.com ) -> tu proyecto -> configuración -> desplázate hasta

ingrese la descripción de la imagen aquí

Puede encontrar su clave SHA1 ejecutando "Informe de firma" desde Android Studio:

ingrese la descripción de la imagen aquí

Luego, busque la "pestaña Ejecutar" y haga clic en el botón:

ingrese la descripción de la imagen aquí

Creo que es la forma más fácil. Espero que esto ayude.

SolArabehety
fuente
1
aquí está la forma más fácil de obtener la versión SHA-1 de la consola de desarrollador de Google: stackoverflow.com/a/50124038/4923891
eren130
Tuve problemas para entender dónde poner esa clave SHA en Firebase Console. Finalmente lo encontré. Abra Configuración del proyecto> Desplácese hacia abajo, agregue huella digital, coloque su clave SHA allí> Descargue el nuevo google-services.json y colóquelo android-app \ app
paakjis
1
¡Nota! Aunque firebase console tiene un espacio para el hash de clave SHA-256, DEBE ingresar la clave SHA-1. El SHA-256 aún te dará errores
f.khantsis
Servicial. ¡Gracias!
Pooja
30

Probablemente creó el archivo de configuración usando el SHA1 de su token de producción , use el androiddebugkeyalias para recopilar el SHA1 correspondiente a la versión de depuración de su aplicación y copie el archivo de configuración en el directorio 'app', debe tener ambos archivos de configuración (uno para fines de depuración y otro para el entorno de producción).

Basado en el tutorial publicado en https://developers.google.com/identity/sign-in/android/start

Mario
fuente
5
Mi error se solucionó cuando cambié a las credenciales del cliente web en lugar del cliente de Android para los ID de cliente de OAuth 2.0. La redacción todavía me confunde ya que estoy desarrollando una aplicación para Android que se comunica con un servidor web ... pero el error al menos desapareció
Burrito
12

Tuve el mismo problema y lo hice funcionar siguiendo estos pasos:

1.Agregue la huella digital DEBUG_KEYSTORE SHA1 al proyecto de base de fuego. use el siguiente comando (MAC / LINUX)

  keytool -exportcert -list -v \-alias androiddebugkey -keystore ~/.android/debug.keystore  

2.Ahora genere una apk firmada de su proyecto. El proceso incluye la generación de un almacén de claves para la versión de lanzamiento de su aplicación.

  Copy the path of the newly generated .jks file.

3.Ahora genere la huella digital RELEASE_KEYSTORE SHA1 usando el siguiente comando

  keytool -list -v -keystore FULL_PATH_TOJKS_FILE -alias ALIAS_NAME

4. Copie el nuevo SHA1 de la salida y agréguelo como otra huella digital SHA1 en su consola de aplicaciones de base de fuego.

¡Ahora estás listo para empezar! ---- ¡Esperanza! ayuda.

Udit Kapahi
fuente
que lanzó sha1 solo estoy colocando y luego también obtengo este error, genera google_services.xml para el inicio de sesión de Google, análisis y gcm, archivo único
Harsha
asegúrese de que su sha1 sea de la versión de 'lanzamiento' de la aplicación, no de la versión de 'depuración'
Udit Kapahi
Ja, sí, estoy generando apk firmado y publicado en la tienda de aplicaciones también, que jks y las contraseñas del almacén de claves solo estoy usando
Harsha
mi ssl abierto es openssl-0.9.8k_WIN32 estoy usando previos para el desarrollo uno
Harsha
keytool requiere una contraseña : "android"
Guglie
11

ingrese la descripción de la imagen aquí

La forma en que lo arreglé fue levantando la tecla correspondiente al texto resaltado. Debido al uso confuso de la palabra 'servidor' en la página de documentación de Firebase, estaba recogiendo elServer key . Cuál fue el motivo del problema.

Puedes encontrar la clave aquí .

4127157
fuente
¡Gracias! Trabajó en mi caso. Creo que de alguna manera se conectó con el uso de su propio servidor backend (y llamando para "requestServerAuthCode" en GoogleSignIn)
ITurchenko
5

Estaba teniendo el mismo problema, cómo lo resolví es que tenía un applicationId diferente en mi archivo gradle que el nombre del paquete en mi archivo de manifiesto. Y usé applicationId para crear el archivo json. Tuve que cambiar el nombre de mi paquete a lo que era mi applicationId y eso lo solucionó.

Renegado
fuente
1
Siempre pensé que el paquete en el manifiesto fue anulado por el ApplicationId definido en gradle. ¿Ese no es el caso?
Flo We
3

Alternativamente a las respuestas proporcionadas aquí, puede usar Firebase Assistant de Android Studio para agregar automáticamente su SHA-1 a su proyecto con el clic de algunos botones.

En Android Studio, vaya a Tools > Firebase > Select 'Authentication'y haga clic en el enlace que dice 'Email and password authentication'.

Esto le brindará un pequeño tutorial sobre cómo integrar la autenticación en su proyecto, pero como probablemente ya haya hecho todo eso, simplemente haga clic 'Connect to Firebase'y listo.

Renan Aguiar
fuente
3

Es una pregunta antigua, pero me he quedado atascado con el error 10 (DEVELOPER_ERROR) últimamente, porque estaba usando el ID de cliente de Android que creé en la consola de desarrollo de Google.

La solución para mí fue usar las credenciales de Android en la consola de desarrollador de Google solo para indicar la clave SHA de mi apk y usar el ID de cliente de las credenciales de la aplicación web (!) De la consola de desarrollador de Google en mi aplicación cordova.

config.xml:

<plugin name="cordova-plugin-googleplus" spec="^5.3.0">
    <variable name="REVERSED_CLIENT_ID" value="com.googleusercontent.apps.[web-application-client-id]" />
    <variable name="WEB_APPLICATION_CLIENT_ID" value="[web-application-client-id].apps.googleusercontent.com" />
</plugin>

código:

window.plugins.googleplus.login(
    {
       'webClientId': '[web-application-client-id].apps.googleusercontent.com'
    }, 
    ...

No uso firebase.

tobik
fuente
Muchas gracias, me ahorró mucho tiempo. De hecho, el uso de la web autogenerada client idresolvió el problema DEVELOPER_ERROR. Aunque para mí no tiene sentido y no es obvio que se deba usar una identificación de cliente diferente.
Myroslav Kolodii
3

Es posible que haya generado y agregado una clave SHA1 incorrecta. Utilice los siguientes pasos para generar la clave SHA1 en Android Studio:

  1. Haga clic en Gradle (desde el panel lateral derecho, verá Gradle Bar)
  2. Haga clic en Actualizar (haga clic en Actualizar desde la barra de Gradle, verá Listar scripts de Gradle de su proyecto)
  3. Haga clic en Su proyecto (Lista de formularios de nombre de su proyecto (raíz))
  4. Haga clic en Tareas
  5. Haga clic en Android
  6. Haga doble clic en signingReport (obtendrá SHA1 y MD5 en la barra de ejecución (a veces estará en la consola Gradle))

Ahora agregue esta clave SHA1 en su proyecto de Android Firebase.

Sanjay Sharma
fuente
3

Coloque el archivo json correcto en la raíz del proyecto de Android.
Para obtener más información, consulte aquí: https://coderzpassion.com/android-working-latest-google-plus-login-api/

Jagjit Singh
fuente
¿Es obligatorio agregar ese json, solíamos prescindir de él antes?
Gurvinder Singh
Puse el archivo correcto con la configuración correcta, todavía hay un error
Bibaswann Bandyopadhyay
1

Para mí, estaba funcionando cuando lo implementé por primera vez, pero se detuvo después de unos días de desarrollo, con el mensaje de error mencionado.

Resolví el problema con estos pasos:

  1. Agregué la huella digital sha-256 encima de la huella digital sha-1 que ya tenía en la consola de base de fuego. (No estoy seguro de si se requiere este paso)
  2. Descargué el archivo google-services.json nuevamente y reemplacé el archivo anterior.
  3. reinstaló la aplicación

Y funcionó

Mantoska
fuente
0

Encontré este error en mi aplicación firebase. Se solucionó cuando agregué elrequestIdToken(activity.getString(R.string.default_web_client_id)) parte a continuación.

GoogleSignInOptions gso = new GoogleSignInOptions.Builder(GoogleSignInOptions.DEFAULT_SIGN_IN)
        .requestEmail().requestIdToken(activity.getString(R.string.default_web_client_id))
        .build();

    apiClient = new GoogleApiClient.Builder(activity)
        .addConnectionCallbacks(this)
        .enableAutoManage(activity, this)
        .addApi(Auth.GOOGLE_SIGN_IN_API, gso)
        .build();

    Intent signInIntent = Auth.GoogleSignInApi.getSignInIntent(apiClient);
    activity.startActivityForResult(signInIntent, RC_GOOGLE_SIGN_IN);
Dan Brough
fuente
¿Qué es default_web_client_id? de donde puedo conseguirlo?
Ayman Al-Absi
@ AymanAl-Absi ¿Ha configurado correctamente su proyecto para los servicios de Google? ver: developers.google.com/android/guides/google-services-plugin
Dan Brough
1
@ AymanAl-Absi también obtiene el "default_web_client_id" de su archivo google-service.json en este archivo puede ver la etiqueta Client_ID en esa etiqueta que copia solo ese texto (client_ID) <[Client_ID] .app.etc>.
Prince
0

Recibí este error cuando actualicé mi archivo de configuración json con una nueva cuenta de Google.

Desinstalar la aplicación manualmente y reinstalar la aplicación funcionó para mí.

sanath_p
fuente
0

El error se debe a que la suma de comprobación SHA-1 de la clave de depuración o versión no está incluida en la consola de firebase / google.

Primero genere la clave usando el siguiente comando:

keytool -list -v -keystore KEYSTORE_PATH -alias ALIAS_NAME

Luego copie la suma de comprobación SHA-1 y vaya a:

Firebase Console> Tu proyecto> Configuración de la aplicación> Agregar huella digital

Nabin Bhandari
fuente
0

Asegúrese de habilitar el inicio de sesión de Google en Autenticación en la consola de Firebase.

hellowill89
fuente
0

Resolví mi problema usando el server_client_id correcto en esta línea:

String serverClientId = getString(R.string.server_client_id);

Usé el código incorrecto.

El MJ
fuente
0

Algunos servicios, como el inicio de sesión de Google, requieren que se agregue la huella digital SHA1 a su consola de base de fuego.

Extrañé agregar la huella digital SHA en la consola de base de fuego. Puede hacerlo en FireBase Console> configuración del proyecto> opción Agregar huella digital.

Puede generar la huella digital SHA1 de una manera muy fácil https://www.youtube.com/watch?v=FczARQ244GE

Después de eso estaba cometiendo un error más

Después de generar la clave SHA1 del método anterior. Copié la clave SHA1 incorrecta incorrecta que estaba caducada. Por lo tanto, asegúrese de que la clave SHA1 que está copiando de la salida anterior sea válida (verifique el valor válido hasta el valor de la clave SHA1)

También asegúrese de que el nombre del paquete (xyz) que ha agregado en firebase sea el mismo que se usó en su código de Android.

También asegúrese de usar AppID correcto

usuario2694064
fuente
0

Después de una larga investigación he encontrado una solución. En realidad este error Error: Status{statusCode=DEVELOPER_ERROR, resolution=null}puntos a SHA-1 incorrectos O nombre del paquete incorrecta o algo más ?. En mi caso, agrego una debugpalabra clave al final de mi nombre de paquete com.sample.app=>com.sample.app.debug

Albert
fuente