¿Es posible extender tokens de Facebook con extendAccessTokenIfNeeded en una aplicación de Android?

Creo que esto podría afectar a muchos desarrolladores de Facebook / Android y, sin embargo, no parece haber tanta discusión sobre el tema ...

Mi pregunta

¿Alguien ha actualizado correctamente un token con la función extendAccessTokenIfNeeded? Si tuvo éxito, ¿qué versión estaba ejecutando el dispositivo (o emulador)?

Fondo

Recibí un correo electrónico de Facebook que dice que el permiso offline_access quedará en desuso desde el 1 de mayo de 2012 y Facebook recomendó la actualización a su último SDK. Multa.

Actualicé el último SDK, la aplicación oficial de Facebook está instalada en mi dispositivo y (¡eventualmente!) El inicio de sesión único parece funcionar bien. Estoy recibiendo tokens de 60 días, que de nuevo está bien.

Los problemas empezaron cuando intenté usar extendAccessTokenIfNeeded (contexto de contexto, ServiceListener serviceListener). No pude actualizar mis fichas por un tiempo de caducidad más largo. Esperé 24 horas entre intentos pero el token no se actualizó. La única manera de obtener un token actualizado es cerrar sesión e iniciar sesión. Esto también sucedió cuando utilicé el proyecto de ejemplo "Hackbook".

La respuesta más obvia es que estoy haciendo algo mal, pero, uninforme de error se envió a Facebook diciendo que ... "shouldExtendAccessToken prácticamente casi siempre devolverá false". Este informe ha recibido la prioridad "lista de deseos".

Alternativas al extendAccessTokenAsNeeded ()

En elDocumentación de Facebook sobre la eliminación de offline_access Los tokens se pueden extender usando la API Graph. Sin embargo, esto tiene laDesventaja de necesitar la "App Secret" siendo incluido en la URL. Una ventaja es que el usuario no necesita tener la aplicación oficial de Facebook instalada en su dispositivo.

Otras ideas y preocupaciones.

Al cambiar la función extendAccessTokenIfNeeded en Facebook.java para devolver siempre el valor verdadero, creo que lo actualicé una vez. (La razón por la que digo "pensar" es porque no repetirá el comportamiento y sospecho que tengo que esperar otras 24 horas antes de cualquier posibilidad de otro éxito)

Me doy cuenta de que Hackbook requiereAndroidHttpClient para ser importado Esto solo está disponible para API 8 en adelante. ¿Esto significa que es probable que el SSO de Facebook (en particular la actualización de token) funcione en dispositivos con API 8 y posteriores?

losFacebook.apk incluido en el SDK es bastante viejo Tal vez es por esto que los tokens no se actualizan en emuladores que ejecutan API 8 y posteriores.

Y, por último, todo esto solo se relaciona con aquellas personas que tienen instalada la aplicación oficial de Facebook. Se debe completar otro método para aquellas personas sin la aplicación oficial de Facebook (¡solo quejarse ahora!)

Enlaces relevantes de Facebook

Facebook-Android-SDK en GitHub

Facebook Android Tutorial

Facebook offline_access permiso de desaprobación

Informe de error de Facebook

Preguntas relacionadas sobre el desbordamiento de pila

Facebook token de acceso de 60 días y acceso desconectado fuera de línea

El token de acceso a Facebook no puede ser extendido

¿Cómo funcionaría offline_access después de la desaprobación después del 1 de mayo?

El token de acceso a Facebook no puede ser extendido

Protección de la aplicación secreta para el uso de extendAccessToken (Java / Android)

Respuestas a la pregunta(2)

Su respuesta a la pregunta