page obtener facebook facebook-graph-api access-token facebook-page

page - obtener access token facebook



Tokens de acceso a la página de Facebook: ¿caducan? (8)

Estoy construyendo una aplicación que permite a los usuarios administrar sus páginas de fans de Facebook. Esto requiere los siguientes dos tokens de acceso:

  1. Un token de acceso de usuario
  2. Un token de acceso a la página

Estoy bastante familiarizado con los tokens de acceso de usuario, pero no con los tokens de acceso a la página.

¿Alguien sabe por cuánto tiempo el token de acceso a la página sigue siendo válido? Todo lo que puedo encontrar en el sitio web de Facebook es este breve párrafo , que no menciona nada sobre su vencimiento.

¿Puedo asumir que si offline_access el token de acceso de usuario con el permiso de acceso sin offline_access el token de acceso a la página también durará indefinidamente (a menos que el usuario cambie su contraseña o desautorice mi aplicación manualmente)?

Pregunto porque quiero saber con qué frecuencia debo consultar la API Graph de Facebook y adquirir tokens de acceso a la página. ¿Debería simplemente solicitarlos una vez cuando el usuario se registra? ¿O debería solicitarlos en cada Llamada API en caso de que cambien continuamente? ¡El último es obviamente más agotador!


El token de acceso a la página de Facebook es muy similar al token de acceso del usuario, excepto que "suplanta al usuario" como el administrador de la página y permite administrarlo [se requiere el permiso manage_page].

Si se concede el permiso Offline_access a la aplicación, la página access_token NO caducará (a menos que el usuario cambie su contraseña o desautorice manualmente la aplicación)

Use el siguiente enlace para verificar los detalles de un token de acceso emitido.

https://developers.facebook.com/tools/debug/


La documentación de Facebook sobre el tema (tokens de acceso a página de larga duración) no coincide con lo que sucede en la realidad. La documentación afirma que los tokens de acceso a la página adquiridos a través de tokens de acceso de usuario extendidos / de larga duración nunca caducarán. Sin embargo, en realidad, estos tokens de acceso a la página caducan en 60 días.

Vea la falla de Facebook: http://developers.facebook.com/bugs/461517520524921


Los tokens de acceso a la página han caducado cuando expiró el token de acceso del usuario. Puede extender el token de acceso de usuario para que dure hasta 60 días para que el token de acceso a la página dure mucho tiempo.

Echa un vistazo a mi blog y sigue las instrucciones paso a paso para obtener un token de acceso ampliado y obtener los tokens de acceso a la fanpage también.


Los tokens de página caducan cuando el token de acceso caduca para el usuario desde el que se generó el token de página. Editar 6.28.2013: si extiende el token de acceso de usuario y obtiene un nuevo token de acceso a la página para el usuario, ese token de página no caducará a menos que el usuario lo desautorice.

El acceso fuera de línea ahora se ha desaprobado, pero se le permite extender un token de acceso para que dure 60 días. Si extiende el token de acceso del usuario, los tokens de página generados a partir de esa cuenta de usuario también tendrán su vencimiento extendido para que coincida con la fecha de vencimiento (editado el 6.28.2013). El valor de los tokens de página puede cambiar después de la extensión, así que asegúrese de obtener nuevos tokens de página de la conexión del gráfico de /accounts usuario después de extender el token de usuario.

Puede continuar ampliando estos tokens de acceso una vez por día. Por lo tanto, debe regenerar los tokens de acceso cada día que el usuario interactúa con su aplicación.

Consulte https://developers.facebook.com/docs/facebook-login/access-tokens/#pagetokens https://developers.facebook.com/docs/facebook-login/access-tokens/#extending https://developers.facebook.com/docs/facebook-login/
https://developers.facebook.com/roadmap/offline-access-removal/ https://developers.facebook.com/blog/post/2011/05/13/how-to--handle-expired-access-tokens/



No estoy seguro de si Facebook ha realizado cambios para corregir estos errores o no, pero parece que los tokens de acceso de los usuarios no caducan una vez que se otorgan los tokens de acceso a la página para el usuario. De acuerdo con mis pruebas, el flujo es más o menos así:

  1. Token de acceso de usuario solicitado -> token de usuario de 60 días se emite
  2. Se solicitaron tokens de acceso a la página -> tokens de acceso a la página emitidos que nunca caducaron y el token inicial de acceso del usuario se actualiza para que nunca caduque también.

Espero que esto aclare algo de la confusión aquí. He probado esto con muchos usuarios diferentes en nuestra aplicación y veo lo mismo cada vez.

Si nunca se solicitan tokens de acceso a la página, el token de acceso de usuario original caducará después de 60 días.


Puede extender un token de acceso a la página para que nunca caduque. La documentación está un poco embarrada, pero las siguientes páginas contienen información pertinente, y obviamente deberá ser un administrador de la página. Preste mucha atención al escenario 4 y 5 en el segundo enlace.

https://developers.facebook.com/docs/reference/api/page/#page_access_tokens https://developers.facebook.com/roadmap/offline-access-removal/#page_access_token

Es simple usar el explorador de gráficos para recuperar los tokens de Facebook. El explorador de gráficos también le permite depurar el token que mostrará la fecha de vencimiento, por lo que puede verificar que nunca caduque. Graph Explorer: https://developers.facebook.com/tools/explorer

Haga clic en el botón Obtener token de acceso para recuperar su token. Guardando su identificación en la barra de consulta, simplemente agregue / cuentas a su identificación, para que se vea así: /123456789101112/accounts . Asegúrese de que sea una solicitud GET (El menú desplegable a la izquierda de la barra de consulta).

Esto recuperará todas las páginas con las que está configurado para trabajar. Luego necesita hacer una solicitud GET para:

/oauth/access_token?client_id=APP_ID&client_secret=APP_SECRET&grant_type=fb_exchange_token&fb_exchange_token=EXISTING_ACCESS_TOKEN

Su APP_ID y APP_SECRET se pueden encontrar en la configuración de administración de sus aplicaciones. Use su token de acceso personal como el parámetro final (EXISTING_ACCESS_TOKEN). Esto devolverá un token de acceso personal de 60 días. Copie este token en la barra de tokens de acceso, que está encima de la barra de consultas. Ahora haga una solicitud GET a USER_ID / accounts como hicimos al principio. Esto devolverá nuevamente una lista de páginas con las que está configurado para trabajar.

Pero esta vez los tokens de página que se enumeran con las páginas no caducan. Puede verificar esto copiando un token de página en la barra de tokens de acceso y haciendo clic en el botón Depurar. Esto le dará detalles sobre ese token de acceso, incluido el tiempo de caducidad, que nunca debería ser en este caso.

ACTUALIZAR

También descubrí que el explorador de gráficos de Facebook a veces se confunde con el contexto del usuario, y puede que no sea confiable en todo momento. Las alternativas son Fiddler o Postman .


  • El token de acceso a la página predeterminado tiene una vida corta, por lo que caducan en 1 o 2 horas. Si desea que dure más tiempo, debe extender el token de acceso de corta vida a uno de larga duración, de modo que dure aproximadamente 2 meses.
  • El permiso offline_access ahora está en desuso.
  • El token de acceso no caduca cuando un usuario cambia es una contraseña.

En otra pregunta, explico cómo ampliar el token de acceso a la página .