Próbuję użyć Facebook SDK 3.0, aby odzyskać token dostępu po naciśnięciu przycisku w mojej aplikacji na Androida. Mam rodzajowe przycisk w mojej działalności, które są w następujący sposób:Android Facebook SDK3.0, stan sesji OTWARCIE
Button facebook = (Button)findViewById(R.id.facebookLoginButton);
facebook.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
Session session = new Session(getApplicationContext());
Session.setActiveSession(session);
session.openForRead(new Session.OpenRequest(SignInActivity.this).setCallback(statusCallback));
}
});
a następnie callback:
private class FacebookSessionStatusCallback implements Session.StatusCallback {
@Override
public void call(Session session, SessionState state, Exception exception) {
String s=session.getAccessToken();
}
}
Kliknięcie przycisku skłania mnie do mojego pozwolenia na dostęp do mojego profilu zgodnie z oczekiwaniami, ale ten callback jest zawsze wywoływany tylko raz z SessionState jako "OPENING". Stan nie zmienia się po tym.
Czego mi tu brakuje? Moim celem końcowym jest uzyskanie jednorazowego tokena dostępu i nie zależy mi na utrzymywaniu sesji ani używaniu jej do logowania do mojej aplikacji.
To była szybka naprawa, dzięki! Szybkie pytanie kontrolne - jak ustawić kod żądania, aby sprawdzić, czy pochodzi on z Facebooka, czy nie w onActivityResult? –
Zobacz https://developers.facebook.com/docs/reference/android/3.0/Session.OpenRequest, ale możesz zrobić coś takiego: session.openForRead (new Session.OpenRequest (SignInActivity.this) .setCallback (statusCallback) .setRequestCode (200)); następnie sprawdź kod 200 w tym przykładzie. –
@CAbernathy: Zaoszczędziłem mój dzień ... +1 za to. – Anukool