Ich versuche, das AuthToken für Facebook (gespeichert von Facebook für Android) mithilfe des folgenden Codeabschnitts zu ermitteln.So rufen Sie ein Facebook-AuthToken von den auf Android gespeicherten Konten ab
AccountManager am = AccountManager.get(this);
Account[] accounts = am.getAccountsByType("com.facebook.auth.login");
if (accounts.length > 0) {
for(int j = 0; j < accounts.length; j++) {
Account account = accounts[j];
if(account.type != null && account.type.equals("com.facebook.auth.login")) {
Log.e(RuntimeVars.MY_NAME, "FACEBOOK-TYPE FOUND");
am.getAuthToken(account, "com.facebook.auth.login", null, ConversationList.this,
new AccountManagerCallback<Bundle>() {
public void run(AccountManagerFuture<Bundle> arg0) {
try {
Bundle b = arg0.getResult();
Log.e(RuntimeVars.MY_NAME, "THIS AUTHTOKEN: " + b.getString(AccountManager.KEY_AUTHTOKEN));
}
catch (Exception e) {
Log.e(RuntimeVars.MY_NAME, "[email protected]");
}
}
}, null);
}
}
}
Die Anmeldedaten werden gefunden und BOOK-TYPE GEFUNDEN in LogCat geschrieben, aber weder THIS authToken: [...] noch AUSNAHME @ authToken angemeldet ist. Also ich nehme an, am.getAuthToken
wird nie aufgerufen.
Was fehlt mir?
Wenn es einen besseren (und zumindest funktionierenden) Ansatz zum Abrufen der Facebook-Authentifizierung von den Android-Konten gibt, lassen Sie es mich wissen.
Vielen Dank für Ihre Hilfe!
Mit freundlichen Grüßen
S.
AFAIK-Benutzer müssen ihre Facebook-Anmeldeinformationen eingeben, wenn das Facebook SDK verwendet wird. Aber diese Anmeldeinformationen sollten bereits über den Kontoanbieter verfügbar sein, dachte ich ... – stpn108
Sie sollten, aber möglicherweise eingeschränkt werden, um Android zu verhindern Apps, die ohne explizite Erlaubnis auf die Daten des Nutzers zugreifen, würde ich definitiv empfehlen Lösung (bei Bedarf zur Eingabe eines Passworts) und zu einem späteren Zeitpunkt ersetzen, wenn Sie eine Möglichkeit finden, den AccountsManager zu verwenden. – Dave
AFAIK - Das Facebook Android SDK gibt ein Authentifizierungs-Token zurück, das nur für 1 Stunde gültig ist. Dies bedeutet, dass sich der Benutzer immer erneut mit seiner SDK OAUth-Schnittstelle anmelden muss, wenn er auf seinen FB-Account zugreifen möchte. – Guy