Nach dem Lesen der letzten Google + Nachrichten um here und this. Wie erhalte ich Zugangstoken, nachdem ich die Anmeldung abgeschlossen habe?Android: mit Google anmelden, um Zugriffstoken zu erhalten
Antwort
Haben Sie sich die API reference angesehen?
Die Klasse, die Sie wahrscheinlich suchen, ist com.google.android.gms.auth.GoogleAuthUtil
.
Es bietet unter anderem die folgenden Verfahren:
static String getToken(Context context, String accountName, String
Beschreibung:
authentifiziert den Benutzer und gibt einen gültigen Token Google-Authentifizierung oder löst eine Ausnahme aus, wenn ein Fehler war ein Token bekommen .
Verbrauch:
String token;
try {
token = GoogleAuthUtil.getToken(context, accountName, scope);
} catch (GooglePlayServicesAvailabilityException playEx) {
Dialog dialog = GooglePlayServicesUtil.getErrorDialog(
playEx.getConnectionStatusCode(),
Activity.this,
AUTH_REQUEST_CODE);
// Use the dialog to present to the user.
} catch (UserRecoverableAutException recoverableException) {
Intent recoveryIntent = recoverableException.getIntent();
// Use the intent in a custom dialog or just startActivityForResult.
} catch (GoogleAuthException authEx) {
// This is likely unrecoverable.
Log.e(TAG, "Unrecoverable authentication exception: " + authEx.getMesssage(), authEx);
} catch (IOException ioEx) {
Log.i(TAG, "transient error encountered: " + ioEx.getMessage());
doExponentialBackoff();
}
Um Zweifel an oauth Umfang zu beantworten (nur nützlich für die Googler):
vollständig zu verstehen, Google-es einige über Authentifizierungs- und Autorisierungskonzepte.
Überprüfen Sie, ob Benutzer/Passwort existiert über Authentifizierung Teil.
Umfang erforderlich ist Autorisierung Teil: was Sie berechtigt sind, im Auftrag des Benutzers zu tun oder zu erhalten. Eine Liste der zulässigen Bereiche finden Sie in der OAuth-Servicedokumentation.
Von Google und G +, am häufigsten Bereiche finden Sie unter:
„openid Profil E-Mail https://www.googleapis.com/auth/plus.loginhttps://www.googleapis.com/auth/plus.me“: https://developers.google.com/+/api/oauth?hl=pt-ZA
zum Beispiel alle möglichen Informationen vom Benutzer zu erhalten, können Sie den Umfang nutzen können
(die erste Wort-Protokoll beziehen, durch Worte, gefolgt, die für die Felder in Antwort fragen, und die gewünschten Bereiche können mit einem Raum toghether Separator deklariert werden)
Hinweis: Wenn Sie später versuchen, Ihr Zugriffstoken zum Anfordern oder Ausführen von Aufgaben zu verwenden, die Sie zuvor nicht mit einem Bereich angefordert haben, kann der Dienst einen Autorisierungsfehler zurückgeben.
Für Google, ein gutes Werkzeug, um Sie über seinen OAuth Service und Umfang zu lernen, verwenden können, ist der OAuth Spielplatz: https://developers.google.com/oauthplayground/
Sie müssen es holen Asynchron-Aufgabe verwenden.
public void onConnected(Bundle connectionHint) {
// Reaching onConnected means we consider the user signed in.
Log.i(TAG, "onConnected");
// Update the user interface to reflect that the user is signed in.
mSignInButton.setEnabled(false);
mSignOutButton.setEnabled(true);
mRevokeButton.setEnabled(true);
// Retrieve some profile information to personalize our app for the user.
Person currentUser = Plus.PeopleApi.getCurrentPerson(mGoogleApiClient);
AsyncTask<Void, Void, String > task = new AsyncTask<Void, Void, String>() {
@Override
protected String doInBackground(Void... params) {
String token = null;
final String SCOPES = "https://www.googleapis.com/auth/plus.login ";
try {
token = GoogleAuthUtil.getToken(
getApplicationContext(),
Plus.AccountApi.getAccountName(mGoogleApiClient),
"oauth2:" + SCOPES);
} catch (IOException e) {
e.printStackTrace();
} catch (GoogleAuthException e) {
e.printStackTrace();
}
return token;
}
@Override
protected void onPostExecute(String token) {
Log.i(TAG, "Access token retrieved:" + token);
}
};
task.execute();
System.out.print("email" + email);
mStatus.setText(String.format(
getResources().getString(R.string.signed_in_as),
currentUser.getDisplayName()));
Plus.PeopleApi.loadVisible(mGoogleApiClient, null)
.setResultCallback(this);
// Indicate that the sign in process is complete.
mSignInProgress = STATE_DEFAULT;
}
Ihr Zugriffstoken wird in Token-Variable gespeichert.
- 1. FirebaseUI-Android mit Google Anmelden
- 2. Google OAuth2 erhalten Zugriffstoken Fehlende Grant_Type
- 3. (JAVA) Google API-Analyse - kein neues "Zugriffstoken" mit "Aktualisierungstoken" erhalten
- 4. Google Anmelden nicht funktioniert Android?
- 5. Bereich kann nicht festgelegt werden Google Anmelden unter Android
- 6. Google Domain API für iOS mit Zugriffstoken
- 7. Silent Google Anmelden in Android-Hintergrund-Service
- 8. Firebase Google Anmelden Implementierung
- 9. Wie kann ich Benutzerprofil mit Google Zugriffstoken
- 10. OAuth 2: Probleme, Zugriffstoken zu erhalten
- 11. Mit Google Auth anmelden - cURL
- 12. Winkel Post Zugriffstoken zu erhalten, gescheitert
- 13. Android Google Auth Anmelden handleSignInResult: false
- 14. Android google Anmelden immer zeigt handleSignInResult: false
- 15. Google Anmelden Fehler - Firebase android codelab
- 16. Wie langlebiges Zugriffstoken Google API
- 17. Siehe autorisierte Bereiche mit einem Google-Zugriffstoken
- 18. Erhalten Zugriffstoken mit appid und userid
- 19. Bei sqlite anmelden Android
- 20. Google-Konto anmelden und abmelden
- 21. Stille anmelden, um Token mit GoogleApiClient abzurufen
- 22. Google Anmelden API - erhalten Foto Uri ist null
- 23. Google Identity Toolkit Verbundanmeldung und OAuth-Zugriffstoken
- 24. Mit Google Anmelden Schaltfläche mit reagieren 2
- 25. Failing OAuth 2.0 Zugriffstoken auf Android-Emulator
- 26. Mit Google anmelden Schaltfläche mit reagieren
- 27. Google Anmelden Abrufen zusätzlicher Daten
- 28. Google Anmelden Flow mit mehreren Aktivitäten
- 29. Wie lade ich Videos auf Youtube mit dem Zugriffstoken und API in Android hoch?
- 30. Google Anmelden API
Was ist der Umfang? – Sameer
Diese [link] (https://gist.github.com/ianbarber/9607551) erklärt, wie genau Token abgerufen werden sollte. Wickeln Sie diesen Code in eine asynchrone Aufgabe ein. – Arefin
@arefin ist Kontoname bezieht sich auf E-Mail-ID in dem angegebenen Link? –