page obtener app facebook facebook-graph-api oauth-2.0

obtener - ¿Cuál es la forma correcta de actualizar el token de acceso de Facebook OAuth2 una vez que caduque?



obtener access token facebook (6)

Tal como lo entiendo, este es el proceso básico para las nuevas aplicaciones de marcos de marcos de Facebook usando la API OAuth2 en pocas palabras:

  1. Redirigir a (o hacer clic en el enlace del usuario a) URL de autorización de la aplicación
  2. El usuario autoriza y es redirigido a su URL de devolución de llamada
  3. La devolución de llamada usa el parámetro "código" para obtener un token de acceso
  4. El token de acceso se usa con Graph API para extraer o insertar información

El problema es que los tokens de acceso caducan con relativa rapidez y necesitan ser "actualizados", por lo que mis preguntas son 1) ¿cómo se detecta que el token ha caducado además de tratar de usarlo y simplemente obtener un error? y 2) ¿cuál es la mejor práctica para obtener un nuevo token?

Actualmente, solo detecto que hubo un error al tratar de obtener la información del usuario con su token de acceso, luego volví a dirigir a la URL de autorización, ya que ellos ya autorizaron la aplicación, una página en blanco parpadea y son redirigidos a la devolución de mi aplicación donde obtengo una ficha nueva Es tan torpe que no puedo creer que este sea el método adecuado.


  1. La única forma de saber si una cookie es válida es usarla y detectar el error si ha caducado. No hay un método de votación ni nada para verificar si un token es válido.

  2. Para obtener un nuevo token, simplemente redirija al usuario a la página de autenticación nuevamente. Debido a que ya han autorizado su aplicación, serán redirigidos instantáneamente a su aplicación y tendrá un nuevo token. No se les pedirá que permitan, ya que ya lo hicieron.

En resumen, no hay trucos para esto. Ya lo estás haciendo correctamente.


Facebook ha eliminado la función de actualizar el token de acceso en el modo "nombre de". La mejor y más fácil manera es redirigir al usuario a la página de inicio de sesión de facebook para volver a utilizar la aplicación. Encuentra facbook doc aquí


Recientemente, Facebook ha realizado algunos cambios para acceder a los tokens, lo que les permite actualizarse periódicamente.

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

Para obtener más información, consulte aquí: https://developers.facebook.com/docs/roadmap/completed-changes/offline-access-removal


si el usuario ya ha autorizado su aplicación y el token de acceso ha caducado. puede redirigir al usuario a la página de autenticación nuevamente. pero el diálogo de Oauth no se muestra porque el usuario ya autorizó su aplicación. él redirigirá al parámetro redirect_url que usaste.


{"error": {"mensaje": "Falta el parámetro redirect_uri", "tipo": "OAuthException", "código": 191, "fbtrace_id": "BHvng7s53ra"}}


//you just need more step because the access token you are getting will expire in 1 hour //you can overcome this in step 5 1-Redirect to (or have user click link to) app''s authorization URL 2-User authorizes and is redirected to your callback URL 3-Callback uses "code" parameter to get a access token 4-Access token is used with Graph API to pull or push information 5-exchange short-lived access token you just got with 60 day 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 6-after 60 day the user must login again to your app and the steps from 1-5 will be repeated. --the real problem you will face is how to make the user visit your app page again