Fehler 12501 mit Google-Anmeldung authentifizieren
Ich bin mit google sign-in-Diensteum Benutzer zu authentifizieren, dass die Verwendung meiner app. Ich habe es zu arbeiten, wenn ich nur angeforderte E-Mail-Informationen
GoogleSignInOptions gso = new GoogleSignInOptions.Builder(GoogleSignInOptions.DEFAULT_SIGN_IN)
.requestEmail().build();
Dann, dachte ich, ich muss auch request-ID-token authentifiziert werden können, mit mein backend so habe ich getan:
GoogleSignInOptions gso = new GoogleSignInOptions.Builder(GoogleSignInOptions.DEFAULT_SIGN_IN)
.requestIdToken(String.valueOf(R.string.server_client_id))
.requestEmail().build();
Das problem ist, dass es ließ mich nicht einloggen nach den änderungen. Den status, dass ich immer jedes mal, wenn ich versuche mich einzuloggen ist Status{statusCode=unknown status code: 12501, resolution=null}
.
Ich habe auf der Suche um und ich fand dieser Beitragdas so ziemlich über die gleiche Sache. Ich habe allerdings auch nicht den Fehler benannt, die von den Menschen beantwortet, die oAuth-Client-ID in meiner dev-Konsole ist für die web-Anwendung:
Und R.string.server_client_id
ist die erste client-ID aus dem Bild. die Paketnamen sind natürlich richtig in alle platziert, sonst wäre es ja nicht einmal arbeiten, ohne die token-Anfrage. 2 Leute haben auch vorgeschlagen, dass die app muss signiert werden, für diese zu arbeiten, aber Google Dokumentation sagt, dass die debug-Taste sollte auch funktionieren, und es macht nicht Sinn, dass Leute sich melden die apps, die für das Debuggen.
Ich habe versucht, dies herauszufinden, für Stunden, aber ohne Erfolg. Was könnte das problem sein? Bitte fühlen Sie sich frei, um weitere Informationen anzufordern, die ich vielleicht vergessen habe hier zu setzen.
InformationsquelleAutor der Frage jammaster | 2015-11-21
Du musst angemeldet sein, um einen Kommentar abzugeben.
Gut, das ist sehr peinlich, aber ich fand es heraus:
Ich wurde senden Sie die Ressource-ID statt aufgelöst string-Ressource.
InformationsquelleAutor der Antwort jammaster
Offensichtlich überprüfen Sie zuerst Ihre release-sha1-Schlüssel korrekt ist oder nicht. Aber wenn es immer noch nicht funktioniert und Sie ar mit google play-Dienste 8.4.0 (ich.e.compile 'com.google.android.gms:play-Dienste:8.4.0'), konnte das Problem gelöst werden, indem geändert wird, GoogleSignInOption Objekt.
Statt:
Müssen Sie verwenden :
Löst dies die Fehler der Rückkehr statusCode=INTERNAL_ERROR ODER statusCode=Fehler 12501 ODER statusCode=Fehler 12500.
Dann ist diese gso-Objekt verwendet werden könnten, für die Erstellung GoogleApiClient wie unten gezeigt:
Sehen, detail: Google-signin funktioniert nicht auf der release-version von android
InformationsquelleAutor der Antwort silwalprabin
In meinem Projekt hatte ich eine andere applicationId in meinem gradle-Datei als packagename in meinem manifest.xml und das war die Quelle meines Problems.
Den android-key musste ich erstellt, benötigten die applicationId fqdn und NICHT die Paket-Namen (im Gegensatz zu dem, was google erzählt), damit es funktioniert für mich.
Dachte, ich würde verlassen, dass hier im Fall spart es Zeit, um jemanden.
InformationsquelleAutor der Antwort Simon Avril
Ich hatte dieses Problem als ich versehentlich verwendet die client-ID der app, statt die Webapp als
requestIdToken()
parameter.Sollten Sie die Client-ID der Webapp gibt. Standardmäßig heißt es
Web client (auto created by Google Service)
InformationsquelleAutor der Antwort Daniel Zolnai
1.Geben Sie signingConfigs in Ihrem gradle-Datei
2.Gehen Sie zu Build-Typen in der Struktur des Projektes (in Android Studio), und geben Sie signingConfigs auf "config"
Nun sauber Ihr Projekt und Sie erneut erstellen. Es sollte funktionieren.
Wenn die oben nicht funktioniert, dann unten ist Ihre Letzte Ausweg.
Versuchen Sie es mit Schritt eins und bauen und prüfen. Wenn es nicht funktioniert gehen Sie zum nächsten Schritt und versuchen Sie erneut erstellen.
Edit: Google Hinzugefügt haben, apk Signierung in der Konsole. Wenn Sie bereits unterschrieben Ihre apk, ignorieren ODER, wenn Sie es verwenden möchten, vorsichtig sein, denn es kann brechen Sie Ihre aktuelle google-signin-Einstellungen
InformationsquelleAutor der Antwort Mido Reigh
Haben Sie bereits Ihre
signingConfigs
undbuildTypes
in Ihrem Gradle? Ich habe es behoben, indem Sie explizit angeben, diese Dinge auf gradle. Lesen Sie hier http://developer.android.com/tools/publishing/app-signing.htmlInformationsquelleAutor der Antwort Mochamad Gufron Efendi
Stellen Sie sicher, dass Sie Hinzugefügt der SHA-1-Fingerabdruck für Ihre (release) Schlüssel zum signieren der FB-Konsole
Finden Sie Ihre SHA1-Schlüssel:
keytool -exportcert -list -v -alias <your-key-name> -keystore <path-to-production-keystore>
Fügen Sie es auf der FB-Konsole: gehen Sie zu https://console.firebase.google.comwählen Sie Ihre app, wählen Sie Einstellungen.
InformationsquelleAutor der Antwort Simon Epskamp
Ich hatte das gleiche problem. Das problem war, dass hatte ich irgendwie den falschen "API-Projekt" ausgewählt und daher wählte die falsche web-client-Schlüssel. Offensichtlich gab es zwei OAuth2-server-client-IDs erstellt, in der meine beiden API-Projekte, die während meiner versuche, die demo-app läuft.
InformationsquelleAutor der Antwort Bevor
Erlebte ich ein ähnliches problem. In meinem Fall war es wegen der server-client-ID, die ich mit war, war von einem anderen Projekt als dem client-Schlüssel. Es stellt sich heraus, dass Sie aus dem gleichen Projekt.
InformationsquelleAutor der Antwort Tad
Hallo, ich habe gesehen, über Kommentare, aber wie ich es schon praktisch , seine ganze sha-Problem , d.h. wenn Sie sich registrieren, wird das sha der bestimmten ip-Adresse und google.services, json , wird entweder zu perfektionieren, die Sie verwenden können
bzw.
gso = new GoogleSignInOptions.Generator(GoogleSignInOptions.DEFAULT_SIGN_IN)
.requestIdToken(LoginActivity.diese.getResources().getString(R. string.server_client_id))
.requestEmail().build();
aber wenn Sie wollen, um app erstellen, die auf anderen ip-Adresse mit anderen Maschine sha zeigt Ihnen 12501-Fehler-status-code, so dass Sie brauchen, um zu generieren, wieder sha für die bestimmte Maschine .
Dank
InformationsquelleAutor der Antwort Vishal
Den
<meta-data>
aus Androidmanifest.xml außerhalb der<application></application>
Gehäuse. Das ist, warum Sie bekommen 12501 FehlerInformationsquelleAutor der Antwort Duna