Join FlipAndroid.COM Telegram Group: https://t.me/joinchat/F_aqThGkhwcLzmI49vKAiw


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

Creo que esto podría afectar a un montón de desarrolladores de Facebook / Android y, sin embargo, no parece haber mucha discusión sobre el tema …

Mi pregunta

¿Alguien ha actualizado con éxito un token mediante la función extendAccessTokenIfNeeded? Si tuviste éxito, ¿en qué versión funcionaba el dispositivo (o el emulador)?

Fondo

Recibí un correo electrónico de Facebook diciendo que el permiso offline_access quedará obsoleto a partir del 1 de mayo de 2012 y que Facebook recomienda la actualización a su último SDK. Multa.

He actualizado a la última SDK, la aplicación oficial de Facebook está instalado en mi dispositivo y (eventualmente!) Single Sign On parece estar funcionando bien. Estoy recibiendo fichas de 60 días que de nuevo está bien.

Los problemas comenzaron cuando intenté utilizar el extendAccessTokenIfNeeded (Contexto contexto, ServiceListener serviceListener). No pude conseguirlo para refrescar mis fichas por un tiempo de expiración más largo. Esperé 24 horas entre los intentos pero el símbolo no actualizar. La única forma en la que puedo obtener un token actualizado es desconectarse y 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, un reporte de error fue enviado a Facebook diciendo que … "shouldExtendAccessToken casi siempre devolverá false." Este informe se ha dado la prioridad "lista de deseos".

Alternativas al método extendAccessTokenAsNeeded ()

En la documentación de Facebook se pueden ampliar los tokens de depreciación offline_access mediante Graph API. Sin embargo, esto tiene la desventaja de necesitar el "secreto de la aplicación" que se incluye en la URL. Una ventaja es que el usuario no necesitaría 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 volver siempre true, creo que tengo que actualizar una vez. (La razón por la que digo "pienso" es porque no repetirá el comportamiento y sospecho que tengo que esperar otras 24 horas antes de cualquier oportunidad de otro éxito)

  • Me doy cuenta de que Hackbook requiere AndroidHttpClient para ser importados. Esto sólo está disponible para la API 8 en adelante. ¿Significa esto que Facebook SSO (en particular la actualización de token) sólo es probable que funcione en dispositivos con API 8 y versiones posteriores?

  • El Facebook.apk incluido en el SDK es bastante antiguo. Tal vez por eso los tokens no se actualizan en los emuladores que ejecutan API 8 y posteriores?

  • Y, por último, todo esto sólo se refiere a las personas que tienen la aplicación oficial de Facebook instalado! Otro método tiene que ser completado para aquellas personas sin la aplicación oficial de Facebook (quejándose ahora!)

Enlaces relevantes de Facebook

Facebook-Android-SDK en GitHub

Tutorial para Android de Facebook

Aprobación del permiso de Facebook offline_access

Informe de error de Facebook

Preguntas relacionadas con el desbordamiento de pila

Token de acceso de 60 días de Facebook y acceso descatalogado descatalogado

No se puede ampliar el token de acceso a Facebook

¿Cómo funciona offline_access después de la depreciación después del 1 de mayo?

No se puede ampliar el token de acceso a Facebook

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

  • La aplicación se bloquea después del primer inicio de sesión en Facebook
  • Cómo obtener el ID de usuario de FB mediante el botón de inicio de sesión de Facebook en la aplicación de Android
  • Creación de Android Gradle con subproyectos
  • Recuperar foto de perfil con Facebook SDK 3.0 para Android
  • Error al inflacionar la clase com.facebook.widget.LoginButton
  • Facebook android shareDialog se cierra después de abrir
  • Obtener el permiso de publish_action después de obtener permisos de lectura de Facebook
  • Cómo obtener la foto de Facebook, el nombre completo, el género usando Facebook SDK android
  • 2 Solutions collect form web for “¿Es posible extender los tokens de Facebook con extendAccessTokenIfNeeded en una aplicación para Android?”

    No conozco el desarrollo de Android, pero si tienes problemas con esa función, tal vez hay una función similar de CURL dentro de Android que te permitirá llamar a https://graph.facebook.com/oauth/access_token?
    client_id=APP_ID& client_secret=APP_SECRET& grant_type=fb_exchange_token& fb_exchange_token=EXISTING_ACCESS_TOKEN
    https://graph.facebook.com/oauth/access_token?
    client_id=APP_ID& client_secret=APP_SECRET& grant_type=fb_exchange_token& fb_exchange_token=EXISTING_ACCESS_TOKEN

    (Google reveló: http://thesoftwarerogue.blogspot.com/2010/05/porting-of-libcurl-to-android-os-using.html sobre cómo CURL de Android)

    Intente cambiar la hora de REFRESH_TOKEN_BARRIER , para que no tenga que esperar 24 horas cada vez que desee probar. Cambié la mía a unos 2 minutos, y pude ver que el token de acceso estaba siendo ampliado cuando volví a lanzar la aplicación después de 2 minutos.

    FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.