Neu Google Anmelden in Android
Ich versuche, einen Benutzer-token-ID mit der neuen Google play-Dienste 8.3
und dokumentiert, wie gebe ich die server-ID:
GoogleSignInOptions gso = new GoogleSignInOptions.Builder(GoogleSignInOptions.DEFAULT_SIGN_IN)
.requestIdToken(getString(R.string.server_client_id))
.requestEmail()
.build();
aber ich bin noch immer un erfolgreiches Ergebnis wie folgt:
{statusCode=unknown status code: 12501, resolution=null}
dokumentiert und hier GoogleSignInStatusCodes
Den sign-in wurde vom Benutzer abgebrochen. d.h. der Benutzer abgebrochen, einige sign-in Resolutionen, z.B. Konto-picking-oder OAuth-Genehmigung.
Konstanter Wert: 12501
Dass ist nicht mein Fall, wie ich bereits abgeholt, ein Konto. Jede Idee, was könnte der Grund sein?
InformationsquelleAutor der Frage Jamal | 2015-11-07
Du musst angemeldet sein, um einen Kommentar abzugeben.
Ich hatte genau das gleiche problem und habe die Lösung gefunden.
Wenn Sie Folgen Sie der Dokumentation finden Sie hier:
https://developers.google.com/identity/sign-in/android/start-integrating
Der erste Schritt, sagt Sie erstellen die Konfigurations-Datei (die erstellt eine OAuth 2.0-client-ID für Sie und fügt Sie in die google-Dienste.json)
Dann später, sagt er wieder zum erstellen eines OAuth-2.0-client-ID, aber dieses mal heißt es, Sie haben es zu tun für Web-Anwendung
- Und das ist der verwirrende Teil! (zumindest für mich), da war ich gerade dabei die client-id erstellt, die für die android OAuth und nicht eine neue zu erstellen, die für Web-Anwendung (ich dachte, die Dokumentation war nur redundante oder so)
Als es sagt, dann ist es dieser, und nur dieser eine, den Sie haben, zu verwenden als parameter der Methoden requestIdToken oder requestServerAuthCode.
Vergessen, über die Verwendung der Android-OAuth-ID in diesem Verfahren, denn dann bekommen Sie alle Zeit der hässlichen status-code der Antwort 12501.
Ich denke, das Hauptproblem ist, dass die Dokumentation etwas verwirrend ist, über diese. Oder vielleicht, weil es ist ein bisschen seltsam ist die Tatsache, dass Sie haben, um zwei OAuth-IDs.
Also als Zusammenfassung, benötigen Sie ZWEI OAuth-IDs, eine für android und eine für die web-Anwendung, und setzen Sie jeweils an der richtigen Stelle.
InformationsquelleAutor der Antwort Kaizie
War ich mit diesen zu kämpfen und verlor fast eine Woche.
Dies ist, wie ich es gearbeitet.
Letzten drei die Schritte 6, 7 und 8sind das, was Sie wirklich brauchen, zu kümmern. Wenn Sie direkt führen Sie das Projekt, dann die APK ist nicht tatsächlich unterzeichnet mit dem debug-keystore und google nicht erkennen, es überhaupt.
InformationsquelleAutor der Antwort Master
Ich hatte das gleiche problem, nach Forschungs-Lösung wieder aufgenommen, server_client_id enthielt einige falsche Wert oder Ihre google_services.json nicht enthalten oauth_client mit client_id, registriert mit Ihrem keystore.
R.string.server_client_id
Verwendung von OAuth 2.0-client-ID für Web-Anwendung. Und OAuth-Client-ID für Android Einsatz in google_services.jsonIn der Regel verwenden wir 2-keystore, 1 mit debug-keystore und 1 mit unterzeichnet keystore für veröffentlicht. Wenn wir also wollen, müssen im debug & veröffentlichen-Modus, registrieren Sie die OAuth-Client-ID für Android-zweimal, 1 mit SHA1 vom debug-keystore und 1 von signierten keystore für veröffentlicht.
kleines Beispiel in meiner google_services.json
InformationsquelleAutor der Antwort RaditzLawliet
War ich immer das gleiche Problem, es war, weil ich erstellte client-ID der Anwendung Art Android
Stattdessen habe ich es gelöscht und erstellt die client-ID vom Typ web-Anwendung, und ich bekam die Befreiung von diesem Problem.
InformationsquelleAutor der Antwort shekar
Nur herausfinden, wie man dieses Problem lösen... ich wurde immer diese Fehlermeldung beim ausführen der debug-version meiner app... um es Zu beheben, fügen Sie eine Berechtigung für Ihre debug-app über die Entwickler-Konsole und auch auf die google-Dienste.json.
diese Feste für mich!
InformationsquelleAutor der Antwort Ramon Canales
Ich hatte das gleiche problem, und ich gelöst mit folgender Lösung:
requestIdToken
Methode.InformationsquelleAutor der Antwort Maziar Manouchehry
In meinem Fall, ich hatte auch zu prüfen, dass die debug-SHA-1 wurde Hinzugefügt, wie ein Gültiger OAuth-Android-client.
InformationsquelleAutor der Antwort willy
Verwenden Web-Anwendung als server_client_id nicht Android Anwendung
InformationsquelleAutor der Antwort Ketan Keshri
Ich hatte das gleiche problem, und ich bemerkte, dass 12501-code zurückgegeben wurde, wenn meine
server_client_id
enthielt einige falsche Wert.Da es keine detaillierte Meldung und die Dokumentation dieser Fehler code ist eher schlecht ich weiß nicht, ob dein problem hat die gleiche Ursache wie bei mir.
Meine Anwendung basiert auf der Android-code von dieses Beispiel (Klasse IdTokenActivity).
Damit es funktioniert, ich musste auch die Einbindung von Google-sign-in in meine app:
server_client_id
InformationsquelleAutor der Antwort Usy
Ist deine apk im debug-Modus? Ich denke, es funktioniert nur mit einer signierten apk.
InformationsquelleAutor der Antwort jacoplane
Stellen Sie Ihre gradle als https://stackoverflow.com/a/35216421/5886475
Set server_client_id in string.xml .Es ist Ihre web-client-id nicht android client
InformationsquelleAutor der Antwort Peter Kao
Einem problem, das ich hatte, ist, dass der SHA-1 generiert ich da mit den falschen alias.
Der alias MUSS androiddebugkey .
Also ich habe die Android-OAuth-ID in meiner google-service.json - Datei. Ich habe die Web-Client-Id zu requestIdToken().
Und in meinem konkreten Fall, den ich erzeugt der SHA-1 mit androiddebugkey alias.
google-Dienste.json:
Unterzeichnung Teil:
InformationsquelleAutor der Antwort Vitor Braga
Statt
R.string.server_client_id
, verwenden Sie einfachR.string.default_web_client_id
.Beim kopieren der google-Dienste.json - Datei in die app schafft es dieser string-Wert automatisch. Sie nicht brauchen, um den Schlüssel zu kopieren von google-services.json zu string.xml
Es funktionierte für mich.
InformationsquelleAutor der Antwort Chaitanya Wagle
Ich löste dieses Problem, indem Sie auf Firebase Support in Android Studio, die möglicherweise nicht relevant für nicht-FB Benutzer.
HINWEIS: Haben Sie riesige Liste von Antworten in diesem definitiv bestätigen eine Sache. Google benötigt, um zu aktualisieren und halten Sie die Dokumentation Narr Beweis.
InformationsquelleAutor der Antwort Gayan Pathirage
Jetzt habe ich es.
Also zuerst müssen Sie die oberen Antworten, die sagen:
requestIdToken()
(loszuwerden status code 12501)
(loszuwerden status code 12500)
Nicht mehr gültig
Und hier kommt der Letzte Teil:
3. kann man das nicht nennen
requestIdToken()
undrequestEmail()
auf einmal. Zumindest in meinem Fall habe ich Sie LosResult: Status{statusCode=INTERNAL_ERROR, resolution=null}
durch löschenrequestEmail()
.Also viel Glück...
InformationsquelleAutor der Antwort cybergen
Wenn keine der obigen Optionen funktioniert, prüfen Sie, ob Sie applicationId in-app bauen.gradle ist dieselbe, wie Sie package name.
InformationsquelleAutor der Antwort aashish
Oviously ü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:
InformationsquelleAutor der Antwort silwalprabin
Weiß nicht warum, aber die SHA1-im android-studio wird automatisch geändert, und das ist, warum ich immer diese Fehlermeldung. Um dieses Problem zu lösen habe ich aktualisiert und die SHA1 meiner FB-Projekt-Einstellungen mit der neuen SHA1-Hash von meinem android studio und es begann wieder zu arbeiten.
InformationsquelleAutor der Antwort Rahul Sonone
In meinem Fall, meine Anmeldeinformationen für
Client ID for Android
auf Google APIs-Konsole enthielt lediglich SHA-1 für meine release signierte APK -. Android Studio wurde mit der Standard-debug-keystore anmelden meine debug-builds, und in diesem Fall die debug-keystore SHA-1 hat nicht entsprechen den Android-client SHA-1 online. Meine Lösung war, einfach die Zeichen der debug-builds mit der Veröffentlichung keystore.In Android Studio
Build/Edit Build Types...
dann wählen Sie Ihre debug-build-Typ und stellen Sie sicher, dass die Unterzeichnung Config ist die freigabeerklärung.InformationsquelleAutor der Antwort aardvarkk
Ich hatte das gleiche problem und Fehler 12501 und nicht von der oben genannten funktionieren bei mir nicht.
Mein problem war ich mit google Standard-web-api - das generiert für mich. nach der Erstellung meiner eigenen web-api-Fehler verschwunden und fein gearbeitet!
dies sind die Arbeitsschritte:
google-service.json
aus FB Konsole und setzen Sie den in-app-Ordner.GoogleSignnOption
wie diese:
Tipp 1: ich finde, dass sollten Sie beide android und web-app-Client-Id zu arbeiten.
Tipp 2:wenn Sie aus dem Iran wie mich, die Sie bekommen können die Benutzer von google, aber Sie können nicht
AuthWithGoogle
und Ergebnisfail
imauth.signInWithCredential(credential)
und Sie hatten einige proxy für true zurückgeben.dies ist die voll berufstätig Quelle FireBaseAuthDemo in github:
hoffe, dass hilft voll
InformationsquelleAutor der Antwort Kenji
Wenn Sie die debug-keystore um das Projekt zu erstellen, müssen Sie die SHA-1-Fingerabdruck des Debuggen.keystore auf FB-Konsole.
Zu erhalten, SHA-1 debug.keystore :
Mac/Linux :
Windows :
https://developers.google.com/android/guides/client-auth
Das ist alles !
InformationsquelleAutor der Antwort Dany Poplawec
Ich hatte auch dieses problem, nachdem Sie den Google-Anweisungen für Automatisch signieren Ihrer app. Wenn Sie mit dieser Methode melden Sie Ihre apps, die Sie müssen die generierten keystore Fingerabdruck in Ihren API-Anmeldeinformationen.
Fand ich es weniger verwirrend, um die
.jks
- Datei in mein Projekt/app
- Verzeichnis. In jedem Fall führen diese Linie auf.Werden Sie aufgefordert, ein Kennwort einzugeben. Nicht sicher, ob es das
Key Password
oderStore Password
weil meine sind die gleichen. 😐Die Konsole spuckt eine Reihe von Zertifikat-fingerprints. Nehmen Sie den SHA1-Hash ein und HAU es in Ihre API-Zugangsdaten an der Google API Developer ' s Console. Müssen Sie es für den Android-client
OAuth 2.0 client IDs
obwohl Sie gar nicht verwenden, client_id in Ihrer app. Wenn Sie mit anderen APIs für android, die gleiche SHA1 in den entsprechenden key-Anmeldeinformationen, unterAPI keys
zu.InformationsquelleAutor der Antwort Keith
Hier ist eine neue. Ich habe versucht, für 6 Stunden, um Anmeldung auf dem emulator mit der id von meinem corporate Google Apps-domain, ohne Erfolg, immer 12501 Fehler. Auf eine Ahnung, habe ich versucht, meine persönlichen Google Mail-id, und es funktionierte. Dito, wenn ich versuchte, auf meinem Handy mit meiner corporate id. Es stellt sich heraus, das der emulator nicht die entsprechenden Mobile-Device-Management-Einstellungen, damit mein Firmen-id anmelden.
Also, Wenn ich testen will, auf dem emulator mit dieser corporate-id, ich habe die Installation von Google Play Store, dann ist die MDM-software, und konfigurieren Sie es.
InformationsquelleAutor der Antwort Tony BenBrahim
Aus meine seltsame Erfahrung mit diesem Fehler kann ich sagen, dass Sie müssen auch versuchen, starten Sie Ihr Telefon neu, um loszuwerden, diese Fehler 🙂
Ich wurde implementiert, Google Anmelden mit G-Suite-Konten, die über ein Gerät verfügen-Richtlinie zugewiesen ist über die Google Admin. Also auf das erste Zeichen in war es erforderlich, installieren Sie die Device Policy-app. Nachdem sich später alle Schritte abgeschlossen, es war nur werfen 12501 Fehler. Gleichen Zeit die gleiche app, die gut funktioniert auf anderen Handys. Also nur Neustart half. Aber geholfen
InformationsquelleAutor der Antwort serggl
Obwohl bereits viele von Ihnen positiv bewertet werden die Antworten gibt es in dieser Frage, ich kämpfte um die Logik zu verstehen.
Also, ich komme mit meiner Forschung.
Bekommen, SHA-1, führen Sie diese in Klemme:
Über
OAuth 2.0 client IDs
server_client_id
)Können Sie erstellen oder Bearbeiten Sie Ihre
OAuth 2.0 client IDs
hier https://console.developers.google.com/apis/credentials?project=Können wir den keystore für beide debug & release durch speichern der keystore-details in global(lokal, nicht im Projekt)
gradle.properties
& bekommen es inbuild.gradle
als unten.Können Sie unten snippet
InformationsquelleAutor der Antwort Vignesh Sundar
Versuchen Sie die folgenden Schritte:
Clone das folgende Projekt https://github.com/googlesamples/google-services
Folgen Sie der Anleitung auf https://developers.google.com/identity/sign-in/android/start
Verwenden Web-client (automatisch erstellt durch Google-Dienst) und fügen Sie es in requestIdToken(...)
Stellen Sie sicher, dass Sie mit dem keystore verwendet, wird Hinzugefügt, um Google-Projekt. Zum Beispiel, wenn Sie verwendet haben, den folgenden Befehl zum generieren von SHA-1-Schlüssel
Dann fügen Sie den folgenden code in app/build.gradle-Datei im android - { ... } [mein problem Gelöst]
Hinweis: Ihre keyPassword und keyAlias sollten die gleichen sein, verwendet bei der Erzeugung von SHA-1-Zertifikat.
InformationsquelleAutor der Antwort Ashwin
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.
InformationsquelleAutor der Antwort Mido Reigh
Da die app fordert Google anmelden von web-Ansicht wir brauchen zum erstellen von web-application-auth-client-id v2.0
Gehen Google-API-Anmeldeinformationen
Wählen Sie Ihr Android-Projekt aus der Linken Oberen Ecke
Zwei
Klicken Sie auf Anmeldeinformationen Erstellen --> OAuth-Client-Id --> Wählen Sie " Web
Anwendung
Klicken Sie Auf Ok,
Nun , wenn Sie haben, synchronisiert Android Studio mit FB (angemeldet)
nur das Projekt neu erstellen Sonst Download aktualisiert
google-Dienste.json - Datei und ersetzen Sie die vorhandene.
Sollte es funktionieren.
InformationsquelleAutor der Antwort Prateek
Gleiche problem habe ich auch, Wurde wie folgt gelöst:
als Zusammenfassung, löschen Sie alte sha1 und neue sha1 und herunterladen neuer google-services.json
InformationsquelleAutor der Antwort Richi
Ich Stand vor der gleichen
12501 status
Fehler. Dies ist durch SHA-1 mismatch release APK und debug-APK./.android/debug.keystore
InformationsquelleAutor der Antwort Shailesh Diwakar