Siguiendo las instrucciones expuestas en la documentación de tokens de página extendida de Facebook, pude obtener un token de acceso a la página que no caduca.
Sugiero usar Graph API Explorer para todos estos pasos, excepto donde se indique lo contrario.
0. Crear aplicación de Facebook
Si ya tiene una aplicación , vaya al paso 1.
- Ve a Mis aplicaciones .
- Haga clic en "+ Agregar una nueva aplicación".
- Configurar una aplicación de sitio web.
No necesita cambiar sus permisos ni nada. Solo necesita una aplicación que no desaparezca antes de que haya terminado con su token de acceso.
1. Obtenga el token de acceso de corta duración del usuario
- Vaya al Graph API Explorer .
- Seleccione la aplicación para la que desea obtener el token de acceso (en el menú desplegable "Aplicación", no en el menú "Mis aplicaciones").
- Haga clic en "Obtener token"> "Obtener token de acceso de usuario".
- En la ventana emergente, en la pestaña "Permisos extendidos", marque "manage_pages".
- Haga clic en "Obtener token de acceso".
- Otorgue acceso desde una cuenta de Facebook que tenga acceso para administrar la página de destino. Tenga en cuenta que si este usuario pierde el acceso, el token de acceso final que nunca caducará probablemente dejará de funcionar.
El token que aparece en el campo "Token de acceso" es su token de acceso de corta duración.
2. Generar token de acceso de larga duración
Siguiendo estas instrucciones de los documentos de Facebook, haga una solicitud GET para
https://graph.facebook.com/v2.10/oauth/access_token?grant_type=fb_exchange_token&client_id= {app_id} & client_secret = {app_secret} & fb_exchange_token = {short_lived_token}
ingresando el ID y el secreto de su aplicación y el token de corta duración generado en el paso anterior.
No puede usar Graph API Explorer . Por alguna razón, se atasca en esta solicitud. Creo que es porque la respuesta no es JSON, sino una cadena de consulta. Como se trata de una solicitud GET, puede ir a la URL en su navegador.
La respuesta debería verse así:
{"access_token": " ABC123 ", "token_type": "bearer", "expires_in": 5183791}
"ABC123" será su token de acceso de larga duración. Puede ponerlo en el depurador de tokens de acceso para verificar. En "Caduca" debería tener algo así como "2 meses".
3. Obtener ID de usuario
Usando el token de acceso de larga duración, haga una solicitud GET para
https://graph.facebook.com/v2.10/me?access_token= {long_lived_access_token}
El id
campo es su ID de cuenta. Lo necesitará para el siguiente paso.
4. Obtenga un token de acceso a la página permanente
Haga una solicitud GET para
https://graph.facebook.com/v2.10/ {account_id} / accounts? access_token = {long_lived_access_token}
La respuesta JSON debe tener un data
campo bajo el cual hay una matriz de elementos a los que el usuario tiene acceso. Encuentre el elemento para la página desde la que desea el token de acceso permanente. El access_token
campo debe tener su token de acceso permanente. Cópielo y pruébelo en el depurador de tokens de acceso . En "Caduca" debería decir "Nunca".