¿Cómo obtener el token de acceso actual en Facebook Android SDK V4?

Quiero comprobar si el usuario está conectado o no dentro de la FragmentActivity principal, pero aunque el usuario ha iniciado sesión

AccessToken.getCurrentAccessToken ()

Devuelve null. ¿Qué estoy haciendo mal en el código de abajo?

public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); context = this; FacebookSdk.sdkInitialize(context); callbackManager = CallbackManager.Factory.create(); AccessToken accessToken = AccessToken.getCurrentAccessToken(); if (accessToken != null) { if (!accessToken.isExpired()) { } } } 

3 Solutions collect form web for “¿Cómo obtener el token de acceso actual en Facebook Android SDK V4?”

¿Cómo se registra el usuario a través del LoginButton? Si es así, sucederá después de que chascan el botón de la conexión, así que donde usted está comprobando es demasiado temprano.

Si ya han iniciado sesión, el token de acceso se va a deserializar desde el disco, sin embargo, se trata de una operación asíncrona para que el subproceso de interfaz de usuario no se bloquee. Lo comprueba justo después de inicializar el Sdk, y la operación asíncrona probablemente no se ha completado todavía. Le sugiero que use AccessTokenTracker para responder cuando se carga el AccessToken. Aquí hay un ejemplo que utiliza AccessTokenTracker para su referencia: https://github.com/facebook/facebook-android-sdk/blob/b384c0655fe96db71229bfdcb981a522f3f1e675/samples/Scrumptious/src/com/facebook/scrumptious/usersettings/UserSettingsFragment.java#L75

¿Has llamado a la actividad onActivityResult() del SDK de Facebook de tu actividad? También encontré el mismo problema y resuelto añadiendo este onActivityResult() devolución de llamada.

Android Facebook sdk Inicialización es tomar algún tiempo Inicializar. Por lo que necesita esperar sólo 100 milisegundos antes de llamar a AccessToken.getCurrentAccessToken ()

Una vez que intente esta solución está funcionando para mí

  public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); context = this; FacebookSdk.sdkInitialize(context); new Handler().postDelayed(new Runnable() { @Override public void run() { callbackManager = CallbackManager.Factory.create(); AccessToken accessToken = AccessToken.getCurrentAccessToken(); if (accessToken != null) { if (!accessToken.isExpired()) { } } } }, 100); } 
  • Inicio de sesión de Facebook con la aplicación no instalada redirecciona a la página de inicio de sesión
  • "Argumento 'contexto' no puede ser nulo"
  • Esta aplicación no tiene hashes de clave de Android configurados. - Inicie sesión con Facebook SDK
  • Error al inflar la clase com.facebook.widget.LoginButton con Facebook SDK 4.0.1
  • Facebook SDK importar en Android Studio y añadirlo en mi aplicación
  • SessionState es CLOSED_LOGIN_FAILED en el inicio de sesión nativo de FB
  • Analizar con inicio de sesión de Facebook - Posiblemente desde APK v42 o Graph API v2.4
  • "Argumento 'contexto' no puede ser nulo"
  • Facebook onCompleted Email java.lang.NullPointerException
  • Facebook Login / Google Login - ¿La misma actividad?
  • Actividad de Facebook no se carga correctamente en facebook-sdk 4.4.0
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.