2013-02-22 13 views
15

Ich bekomme eine GoogleAuthException: Unknown error, während Sie eine GoogleAuthUtil.getToken tun.Google Api und android Oauth INVALID_AUDIENCE Fehler

Kurz vor der Ausnahme sehe ich

GLSUser: GLS error: INVALID_AUDIENCE <email> audience:server:client_id:xxx.apps.googleusercontent.com 

ich die SHA1 von meinem Freigabeschlüssel festgelegt habe, der Namen des Pakets, mit dem api Projekt Google. (Was übrigens erfolgreich für GCM verwendet wird.)

Antwort

16

Sieht so aus, als ob das funktionieren sollte; Hier ist der Scope-Init-Code von meiner App, der funktioniert.

private static final String SCOPE = "audience:server:client_id:" + SERVER_CLIENT_ID; 

So riecht es für mich wie es ein Problem mit der Client-ID ist. Denken Sie daran, dass

  1. Sie haben müssen, um ein Projekt mit zwei Client-IDs
  2. Einer für Ihren Android-App ist, mit dem SHA & Paket & so auf
  3. Der andere ist für die Server-Seite, die Sie sind geht das Token aus

Es ist die Client-ID von # 3, das nach dem geht zu senden ...: client_id:

+0

Danke das war es. – Alok

+3

@Alok .... Ich bin in das gleiche Problem gerannt. Ich benutze Web client_id in der Zielgruppe in Endpunkten api und auch in androider Zielweite. Sehen Sie immer noch denselben Auth-Fehler.Wie haben Sie das Web client_id generiert? Ich ging zur Google APIs-Konsole, generierte eine Client-ID für Web-Anwendungen mit Umleitung uri & Javascript Ursprung als leer. Ist das korrekt? – plspl

+0

Eine andere häufige Ursache ist die Registrierung des Debug-Zertifikats-Hash und das Testen mit Release (oder umgekehrt). –

0

einem in meinem Team ein Happened Obwohl es auf meinem Gerät in Ordnung war. Es stellte sich heraus, dass eine andere debug.keystore auf unseren Eclipse-Installationen.

es zu lösen wir das Unternehmen debug.keystore Datei auf ~/.android/ kopiert haben (dies ist die dir auf einem Mac, ist es anders auf Linux und Windows)

0

das Lösen von Ihrem debug.keystore in Ihrem gefunden zu löschen. Android-Ordner, führen Sie das neue Projekt erneut aus, um eine neue debug.keystore-Datei zu generieren. Dann generieren Sie schließlich ein neues SHA-1-Signaturzertifikat für Google API.

0

Außerdem müssen Sie in Ihrer Google API-Konsole den oAuth-Autorisierungsbildschirm einrichten.

Das war, warum ich diesen Fehler bekam hatte

0

Im Interesse meiner Ausgabe dokumentieren,

ich die gleichen INVALID_AUDIENCE Fehler von einer Google-Anmeldung über einen AWS Mobile Hub erzeugte Beispielanwendung zurückkommen. Ein paar Dinge zu überprüfen,

Wie Tim Bray Notizen oben, machen Sie Ihre Client-ID eine gültige Web-Client-ID (nicht Android). Aber haben Sie auch eine Android-Client-ID, die sowohl den richtigen SHA-1-Fingerabdruck (gefunden in debug.keystore, die Android Studio verwendet, um Debug-Builds zu signieren, wenn Sie auf Ausführen klicken) und Paketname hat.

HINWEIS: Der Paketname in der AndroidManifest.xml ist nicht immer der tatsächliche Paketname. Um den endgültigen Paketnamen zu finden, gehen Sie zur Datei build.gradle und sehen Sie sich das Feld applicationId an. Stellen Sie sicher, dass Sie den richtigen Paketnamen in der Entwicklerkonsole eingeben, wenn Sie die Android-Client-ID konfigurieren.