Erreur: Status {statusCode = DEVELOPER_ERROR, resolution = null}

104

Je me connecte à gplus et j'obtiens cette erreur au moment où je suis dans 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();
        }
    }
}

Et j'appelle pour la connexion gplus en cliquant sur le bouton. En cliquant sur le bouton, le code suivant est exécuté ...

 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);

Et je reçois cette erreur ...

Status{statusCode=DEVELOPER_ERROR, resolution=null}

sur cette ligne ...

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

Veuillez suggérer la solution.

Gurvinder Singh
la source
1
L'application est mal configurée. Vérifiez la configuration de l'API google.
1'hafs
6
Oui, mais je ne suis pas en mesure de découvrir ce qui ne va pas.
Gurvinder Singh
Je n'utilise pas Firebase. Voir ma solution ici: stackoverflow.com/a/46828895/1160216
Mike Miller

Réponses:

215

Vous devez ajouter votre clé SHA1 à la configuration de la console Firebase. Vous pouvez le faire de cette manière:

Console Firebase ( https://console.firebase.google.com ) -> votre projet -> configuration -> faites défiler jusqu'à

entrez la description de l'image ici

Vous pouvez trouver votre clé SHA1 exécutant le "Rapport de signature" depuis Android Studio:

entrez la description de l'image ici

Ensuite, regardez "l'onglet Exécuter" et cliquez sur le bouton:

entrez la description de l'image ici

Je pense que c'est le moyen le plus simple. J'espère que cette aide.

SolArabehety
la source
1
voici le moyen le plus simple d'obtenir la version SHA-1 de la console des développeurs Google: stackoverflow.com/a/50124038/4923891
eren130
J'ai eu du mal à comprendre où mettre cette clé SHA dans Firebase Console. Enfin trouvé. Ouvrez les paramètres du projet> Faites défiler vers le bas, ajoutez une empreinte digitale, mettez votre clé SHA là> Téléchargez le nouveau google-services.json et placez-le android-app \ app
paakjis
1
Remarque! Même si la console Firebase dispose d'un espace pour le hachage de clé SHA-256, vous DEVEZ entrer la clé SHA-1. Le SHA-256 vous donnera toujours des erreurs
f.khantsis
Utile. Merci!
Pooja
30

Vous avez probablement créé le fichier de configuration en utilisant le SHA1 de votre jeton de production , utilisez l' androiddebugkeyalias pour rassembler le SHA1 correspondant à la version de débogage de votre application et copiez le fichier de configuration dans le répertoire 'app', vous devriez avoir les deux fichiers de configuration (un pour à des fins de débogage et un autre pour l'environnement de production).

Basé sur la procédure pas à pas publiée dans https://developers.google.com/identity/sign-in/android/start

Mario
la source
5
Mon erreur a été corrigée lorsque je suis passé aux informations d'identification du client Web au lieu du client Android pour les ID client OAuth 2.0. Le libellé me ​​trouble encore car je développe une application Android qui parle à un serveur Web ... mais l'erreur a au moins disparu
Burrito
12

J'ai eu le même problème et je l'ai fait fonctionner en suivant ces étapes:

1.Ajoutez l'empreinte digitale DEBUG_KEYSTORE SHA1 au projet Firebase. utilisez la commande suivante (MAC / LINUX)

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

2. Maintenant, générez un apk signé de votre projet. Le processus comprend la génération d'un fichier de clés pour la version finale de votre application.

  Copy the path of the newly generated .jks file.

3. maintenant générer l'empreinte digitale RELEASE_KEYSTORE SHA1 à l'aide de la commande suivante

  keytool -list -v -keystore FULL_PATH_TOJKS_FILE -alias ALIAS_NAME

Copiez le nouveau SHA1 à partir de la sortie et ajoutez-le comme autre empreinte SHA1 dans votre console d'application Firebase.

Maintenant, vous êtes prêt à partir! ---- Espérer! ça aide.

Udit Kapahi
la source
qui a publié sha1 seulement je place puis obtient également cette erreur, génère google_services.xml pour la connexion google, les analyses et gcm, fichier unique
Harsha
assurez-vous que votre sha1 est de la version 'release' de l'application et non de la version 'debug'
Udit Kapahi
Ha Oui, je génère un apk signé et publié dans l'Appstore également, que les mots de passe jks et keystore n'utilisent que
Harsha
mon ssl ouvert est openssl-0.9.8k_WIN32 am en utilisant previos pour le développement un
Harsha
keytool nécessite un mot de passe : "android"
Guglie
11

entrez la description de l'image ici

La façon dont je l'ai corrigé était en prenant la clé correspondant au texte en surbrillance. En raison de l'utilisation confuse du mot «serveur» dans la page de documentation de Firebase, je prenais leServer key . Quelle était la raison du problème.

Vous pouvez trouver la clé ici .

4127157
la source
Merci! A travaillé dans mon cas. Je pense qu'il est en quelque sorte lié à l'utilisation de son propre serveur backend (et à l'appel de "requestServerAuthCode" dans GoogleSignIn)
ITurchenko
5

J'avais le même problème, comment je l'ai résolu, c'est que j'avais un ID d'application différent dans mon fichier gradle que le nom du package dans mon fichier manifeste. Et j'ai utilisé applicationId pour créer le fichier json. J'ai dû changer le nom de mon package en ce qu'était mon applicationId et cela l'a corrigé pour moi.

Renégat
la source
1
J'ai toujours pensé que le package du Manifest était remplacé par l'ApplicationId défini dans gradle. Ce n'est pas le cas?
Flo We
3

Alternativement aux réponses fournies ici, vous pouvez utiliser l'assistant Firebase d'Android Studio pour ajouter automatiquement votre SHA-1 à votre projet en cliquant sur certains boutons.

Dans Android Studio, accédez à Tools > Firebase > Select 'Authentication'et cliquez sur le lien qui dit'Email and password authentication' .

Cela vous apportera un petit tutoriel sur la façon d'intégrer l'authentification à votre projet, mais puisque vous avez probablement fait tout cela, cliquez simplement 'Connect to Firebase'et vous avez terminé.

Renan Aguiar
la source
3

C'est une vieille question, mais j'ai été bloqué avec l'erreur 10 (DEVELOPER_ERROR) ces derniers temps, car j'utilisais l'ID client Android, que j'ai créé dans la console des développeurs Google.

La solution pour moi était d'utiliser les informations d'identification Android dans la console des développeurs Google uniquement pour indiquer la clé SHA de mon apk et d'utiliser l'ID client de l'application Web (!) Les informations d'identification de la console des développeurs Google dans mon application 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>

code:

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

Je n'utilise pas Firebase.

tobik
la source
Merci beaucoup, cela m'a fait gagner beaucoup de temps. En effet, l'utilisation du Web généré automatiquement a client idrésolu le problème DEVELOPER_ERROR. Même si pour moi cela n'a pas de sens et il n'est pas évident que différents identifiants de client doivent être utilisés.
Myroslav Kolodii le
3

Vous avez peut-être généré et ajouté une clé SHA1 incorrecte. Utilisez les étapes suivantes pour générer la clé SHA1 dans le studio Android:

  1. Cliquez sur Gradle (à partir du panneau latéral droit, vous verrez Gradle Bar)
  2. Cliquez sur Refresh (Cliquez sur Refresh from Gradle Bar, vous verrez List Gradle scripts de votre projet)
  3. Cliquez sur Your Project (Your Project Name form List (root))
  4. Cliquez sur Tâches
  5. Cliquez sur Android
  6. Double-cliquez sur SigningReport (Vous obtiendrez SHA1 et MD5 dans Run Bar (Parfois, ce sera dans Gradle Console))

Ajoutez maintenant cette clé SHA1 dans votre projet Android Firebase.

Sanjay Sharma
la source
1

L'erreur est due au fait que la somme de contrôle SHA-1 de la clé de débogage ou de version n'est pas incluse dans la console firebase / google.

Générez d'abord la clé à l'aide de la commande suivante:

keytool -list -v -keystore KEYSTORE_PATH -alias ALIAS_NAME

Copiez ensuite la somme de contrôle SHA-1 et accédez à:

Firebase Console> Votre projet> Paramètres de l'application> Ajouter une empreinte digitale

Nabin Bhandari
la source
1

Pour moi, cela fonctionnait lorsque je l'ai implémenté pour la première fois, mais il s'est arrêté après quelques jours de développement, avec le message d'erreur mentionné.

J'ai résolu le problème avec ces étapes:

  1. J'ai ajouté l'empreinte digitale sha-256 au-dessus de l'empreinte digitale sha-1 que j'avais déjà dans la console Firebase. (Je ne sais pas si cette étape est nécessaire)
  2. J'ai de nouveau téléchargé le fichier google-services.json et remplacé l'ancien fichier.
  3. réinstallé l'application

et ça a marché

Mantoska
la source
0

Je suis tombé sur cette erreur dans mon application Firebase. Il a été corrigé lorsque j'ai ajouté la requestIdToken(activity.getString(R.string.default_web_client_id))partie ci-dessous.

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
la source
qu'est-ce que default_web_client_id? d'où je peux l'obtenir?
Ayman Al-Absi
@ AymanAl-Absi Avez-vous correctement configuré votre projet pour les services Google? voir: developer.google.com/android/guides/google-services-plugin
Dan Brough
1
@ AymanAl-Absi vous obtenez également le "default_web_client_id" de votre fichier google-service.json dans ce fichier, vous pouvez voir la balise Client_ID dans cette balise que vous copiez uniquement ce texte (client_ID) <[Client_ID] .app.etc>.
Prince
0

J'ai eu cette erreur lorsque j'ai mis à jour mon fichier de configuration json avec un nouveau compte Google.

La désinstallation manuelle de l'application et la réinstallation de l'application ont fonctionné pour moi.

sanath_p
la source
0

Assurez-vous d'activer la connexion à Google sous Authentification dans la console Firebase.

hellowill89
la source
0

J'ai résolu mon problème en utilisant le droit server_client_id dans cette ligne:

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

J'ai utilisé le mauvais code.

Le MJ
la source
0

Certains services tels que la connexion Google nécessitent l'ajout d'une empreinte digitale SHA1 à votre console Firebase.

J'ai manqué d'ajouter l'empreinte digitale SHA dans la console Firebase. Vous pouvez le faire en accédant à FireBase Console> Paramètres du projet> Option Ajouter une empreinte digitale.

Vous pouvez générer l'empreinte SHA1 d'une manière très simple https://www.youtube.com/watch?v=FczARQ244GE

Après cela, je faisais une autre erreur

Après génération de la clé SHA1 de la méthode ci-dessus. J'ai copié la mauvaise clé SHA1 invalide qui était une clé expirée. Assurez-vous donc que la clé SHA1 que vous copiez à partir de la sortie ci-dessus est valide (vérifiez également la valeur valide jusqu'à la clé SHA1)

Assurez-vous également que le nom du package (xyz) que vous avez ajouté dans Firebase est le même que celui utilisé dans votre code Android.

Assurez-vous également d'utiliser le bon AppID

user2694064
la source
0

Après une longue enquête, j'ai trouvé une solution. En fait cette erreur des Error: Status{statusCode=DEVELOPER_ERROR, resolution=null}points à incorrect SHA-1 OU nom de package incorrect OU autre chose ?. Dans mon cas, j'ajoute un debugmot-clé à la fin de mon nom de package com.sample.app=>com.sample.app.debug

Albert
la source