2014-01-21 11 views
15

In meiner Android-Anwendung versuche ich Google-Token auf meinem Google App Engine-Backend-Server zu überprüfen. Aber ich bekomme immer diese Ausnahme:com.google.android.gms.auth.GoogleAuthException: getToken (Unbekannte Quelle) Ausnahme

com.google.android.gms.auth.GoogleAuthException: getToken(Unknown Source) exception 

Mein Code:

private Account mAccount = AccountManager.get(this).getAccountsByType(GoogleAuthUtil.GOOGLE_ACCOUNT_TYPE)[0]; 
    private static final String SCOPE = "audience:server:client_id:" +Constants.WED_CLIENT_ID; 
    String token = GoogleAuthUtil.getToken(LoginActivity.this, mAccount.name, SCOPE); 

ich jede Lösung in Stackoverflow vorgeschlagen versucht haben.

Antwort

15

Nach 2 Tagen der Forschung fand ich, dass Sie zu der Zeit registrieren Sie Ihre Android-Anwendung in Google Cloud Console -> Ihr Projekt -> API und Auth, fragt Sie nach Fingerabdruck um ClientID zu generieren und irgendwie war mein Fingerabdruck falsch (ich habe aus Versehen ~$ vor diesem cmd keytool -exportcert -alias androiddebugkey -keystore ~/.android/debug.keystore | openssl sha1) und aufgrund dieser es mir falsch Fingerabdrucks gab und war die Ursache:

com.google.android.gms.auth.GoogleAuthException: getToken(Unknown Source) exception. 
+0

können Sie mir bitte bei diesem Fehler helfen http://stackoverflow.com/questions/21445265/google-coordinate-authentification –

+0

können Sie bitte den Code hier teilen? –

+0

@SmitPatel Ich verstehe nicht .. Sie wollen Code für Fingerabdruck? –

16

nach mehreren Stunden, fand ich, dass in Ihrem Umfang string ("audience:server:client_id:...") Sie muss die Client-ID der Webanwendung verwenden, nicht die von Android.

Die Client-ID der Android-App wird nicht verwendet. Nur hier können Sie den Paketnamen Ihrer Android-App mit Ihrer Web-App verknüpfen.

+2

Aber ich benutze WEB CLIENT ID..ich benutze nicht Android ID sowieso..Problem war etwas anderes, was ich bereits beantwortet habe .. Danke! ! –

+0

ahhh, das hat geklappt! – iBabur

+0

Hallo! das gleiche Problem, obwohl noch nicht die Lösung erhalten. In meinem Bereich verwende ich die Client-ID im Web Client, der in der Google Developer Console erstellt wurde, funktioniert aber nicht :( –

2

Nach der Lektüre einige Beiträge über das Internet generiert ich SHA1-Fingerabdruck Wert meiner Schlüsselspeicher als

keytool -exportcert -alias android_keystore -keystore android_keystore -Liste -v | openssl sha1

aufgrund der ich diesen Fehler bekam. Wenn Sie die Anmeldeinformationen siehe Bildschirm in Ihnen Entwicklerkonsole Google es sagt, Sie

keytool -exportcert -alias android_keystore -keystore android_keystore -Liste -v

dh verwenden müssen Sie die Ausgabe nicht über die Pipeline an openssl sha1. Nicht sicher, was der Unterschied ist, aber beide Befehle geben unterschiedliche Werte.

Sie erhalten mehrere Fingerabdrücke wie MD5, SHA1, SHA256 usw. Verwenden Sie SHA1-Wert.