Ich versuche, einen Google+ Authentifizierungscode basierend auf diesem Artikel zu erhalten: Server-side access for your app. Jedes Mal, wenn ich meine app laufen und versuchen, den Code zu bekommen ich folgendes in LogCat erhalten:Android Google+ kann keinen Autorisierungscode erhalten
07-23 23:42:31.760: E/getAccessToken()(11114): [ERROR] GoogleAuthException: com.google.android.gms.auth.GoogleAuthException: Unknown
geblättert ich eine Menge Sachen und von dem, was ich sagen kann, ich habe alles richtig eingerichtet in dem folgenden Code haben. Irgendwelche Ideen, warum es kein Authentifizierungs-Token bekommt?
FYI, Ich habe ein Projekt-Setup in der API-Konsole, die App und Web-Anwendungen für oauth konfiguriert ist, und ich benutze die Server-ID (nicht die App) für die Bereiche Zeichenfolge. Ich habe auch die Beispiele aus dem obigen Link gefolgt und die App funktioniert gut und erlaubt Ihnen, sich anzumelden, aber ich kann den Auth-Code nicht bekommen.
private String getAccessToken() {
String scopesString = Scopes.PLUS_LOGIN + " " + Scopes.PLUS_PROFILE;
String scope = "oauth2:server:client_id:" + SERVER_CLIENT_ID + ":api_scope:" + scopesString;
Bundle appActivities = new Bundle();
appActivities.putString(GoogleAuthUtil.KEY_REQUEST_VISIBLE_ACTIVITIES,
"http://schemas.google.com/AddActivity");
String code = null;
try {
code = GoogleAuthUtil.getToken(
this, // Context context
mPlusClient.getAccountName(), // String accountName
scopes, // String scope
appActivities // Bundle bundle
);
} catch (IOException transientEx) {
// network or server error, the call is expected to succeed if you try again later.
// Don't attempt to call again immediately - the request is likely to
// fail, you'll hit quotas or back-off.
Log.e("getAccessToken()", "[ERROR] IOException: " + transientEx);
return null;
} catch (UserRecoverableAuthException e) {
// Recover
Log.e("getAccessToken()", "[ERROR] UserRecoverableAuthException: " + e);
code = null;
} catch (GoogleAuthException authEx) {
// Failure. The call is not expected to ever succeed so it should not be
// retried.
Log.e("getAccessToken()", "[ERROR] GoogleAuthException: " + authEx);
return null;
} catch (Exception e) {
Log.e("getAccessToken()", "[ERROR] Exception: " + e);
throw new RuntimeException(e);
}
return code;
}
Entschuldigung, mein Schlechter. Sieht so aus, als hätte ich diesen Teil entfernt, als ich ihn gepostet habe. Ich habe ": api_scope:" in meinem Code. Ich habe den Beitrag aktualisiert, um das zu zeigen. – Jason
Ahhh ... Ich habe es vermisst, den scopeString am Ende zu trennen. Ich habe diese Änderung vorgenommen und erhalte jetzt einen Fehler "UserRecoverableAuthException: NeedPermission". Ich habe versucht, das zu handhaben, aber jetzt habe ich im Grunde [dieses Problem] (http://stackoverflow.com/questions/17713435/android-google-integration-repeated-uservrecurableauthexception). Ich werde dies als richtig markieren, da es das anfängliche Problem gelöst hat, das ich hatte ... blöder Spätnachtfehler ;-) – Jason
Seit wann hat die GoogleAuthUtil.getToken() Methode begonnen, eine GoogleAuthException mit Nachricht "BadUsername" für eine E-Mail zu werfen das ist nicht auf einem Gerät registriert, anstelle der vorherigen Ausnahme IllegalArgumentException mit der Nachricht "Nicht existierendes Konto 'email_address'"? http://developer.android.com/reference/com/google/android/gms/auth/GoogleAuthUtil.html#getToken(android.content.Context, java.lang.String, java.lang.String) – toobsco42