No se puede acceder a Facebook debido a un error de token de acceso no válido usando el módulo Facebook de Titanium

Estoy trabajando con Titanium Studio 3.2.0 y Titanium SDK 3.2.0.GA, y desplegando en dispositivos Android con o sin la aplicación de Facebook. Para iniciar sesión en Facebook estoy usando el proporcionado por Titanium .

Estoy teniendo el mismo problema descrito en este enlace . Cuando autorizo ​​por primera vez, el evento de inicio de sesión de Facebook se dispara sin ningún problema. Pero si me desconecto y luego intentar autorizar de nuevo (en este momento los permisos de mi aplicación ya han sido aceptados por lo que en teoría debería disparar el evento de inicio de sesión) Tengo el siguiente error en logcat:

E/FacebookModule( 1584): (main) [11631,11631] LoginDialogListener onFacebookError: Invalid access token. E/FacebookModule( 1584): com.facebook.android.FacebookError: Invalid access token. E/FacebookModule( 1584): at com.facebook.android.Facebook.onSessionCallback(Facebook.java:433) E/FacebookModule( 1584): at com.facebook.android.Facebook.access$000(Facebook.java:97) E/FacebookModule( 1584): at com.facebook.android.Facebook$2.call(Facebook.java:379) E/FacebookModule( 1584): at com.facebook.Session$3$1.run(Session.java:1239) E/FacebookModule( 1584): at android.os.Handler.handleCallback(Handler.java:605) E/FacebookModule( 1584): at android.os.Handler.dispatchMessage(Handler.java:92) E/FacebookModule( 1584): at android.os.Looper.loop(Looper.java:154) E/FacebookModule( 1584): at android.app.ActivityThread.main(ActivityThread.java:4624) E/FacebookModule( 1584): at java.lang.reflect.Method.invokeNative(Native Method) E/FacebookModule( 1584): at java.lang.reflect.Method.invoke(Method.java:511) E/FacebookModule( 1584): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:809) E/FacebookModule( 1584): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:576) E/FacebookModule( 1584): at dalvik.system.NativeStart.main(Native Method) E/FacebookModule( 1584): (main) [6,11637] onAuthFail: Invalid access token. 

Incluso traté de capturar este error con un try / catch para manejarlo, pero aunque puse la llamada de autorizar dentro de uno, el código dentro de la captura no se ejecutó. No hay nada inusual en cómo hago la autorización hasta donde yo sé:

 $.LoginButtonHolder.addEventListener('singletap', function(e) { $.activityIndicator.show(); $.LoginButtonLabel.setOpacity(0); try { fb.authorize(); } catch(err) { // if the authorize call fails, show the error on the console and show the controls to try again // but these four lines of code never get executed, an unhandled exception is still thrown Ti.API.info('error in Facebook login'); Ti.API.info(err); $.activityIndicator.hide(); $.LoginButtonLabel.setOpacity(1); } }); 

Después de un poco de excavación me di cuenta de algo, la primera vez que intento autorizar me redireccionan a la aplicación de Facebook y después de aceptar los permisos, el evento de inicio de sesión se dispara como debería (como prueba de que me dan un token de acceso), cuando me cierre la sesión El token de acceso que se utilizó para la sesión se anula (lo revisé en el evento de cierre de sesión), si intento autorizar de nuevo parece que el módulo de Facebook no está buscando un nuevo token de acceso, aunque mi aplicación ya esté Permitido, está intentando utilizar el anulado, por lo tanto lanzando este token de acceso no válido, aunque esto es sólo una suposición de mi parte y no tengo ni idea si esta es la causa .

¿Como puedó resolver esté problema? La solución que estoy utilizando en este momento es eliminar los permisos de mi cuenta de usuario de Facebook a través de una llamada Graph api, que no es la forma correcta, pero es la única manera para mí para disparar el evento de inicio de sesión de Facebook de nuevo.

También he comprobado mis claves hash y parecen estar en orden ya que no tengo ningún mensaje clave hash no válido, el problema aquí es el token de acceso, la llamada autorizar debe devolver un token de acceso con una expiración diferente por lo que sé, o no Tengo la idea equivocada ?.

De acuerdo con este enlace de desarrolladores de Facebook , hay cuatro escenarios cuando un token de acceso caduca, pero para el escenario de cierre de sesión obtengo un mensaje de error diferente, el mensaje de error mostrado allí es Error validating token de acceso: La sesión no es válida porque el usuario desconectado , Mientras que el que obtengo es LoginDialogListener onFacebookError: Token de acceso no válido . ¿Qué está causando el mensaje de error que estoy recibiendo?

Cualquier ayuda será apreciada, gracias de antemano.

Yo uso esto para borrar cualquier resto de datos de usuario de Facebook cuando un usuario se desconecta, No estoy seguro de cómo Titanium utiliza el SDK de Facebook, pero esto es cómo lo hago con stock FB SDK.

  Session.getActiveSession().closeAndClearTokenInformation(); 
  • ¿Cómo subir videos a Facebook usando Facebook Android SDK 4.x?
  • Escuche el cierre de sesión de Facebook con el botón de inicio de sesión. (4.1)
  • NPE en Facebook SDK 4.10: Intenta invocar el método de interfaz 'java.lang.Object com.facebook.inject.Lazy.get ()' en una referencia de objeto nulo
  • Cómo detectar Error al buscar información del proveedor para el error com.facebook.katana.provider.PlatformProvider
  • Cómo construir un comentario de Facebook como pop-up en android?
  • Cómo obtener la foto del perfil de facebook en facebook SDK 3.0 Android
  • Android Facebook Graph api información básica que solicita
  • AccountManager - authToken está establecido pero peekAuthToken devuelve null
  • Subir imagen a facebook desde la unidad
  • Publicar en los amigos del usuario la pared de facebook a través de la aplicación Android
  • Facebook auth dialog return La página que solicitó no fue encontrada en lugar de redireccionar de nuevo a mi actividad?
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.