Daniel López Azaña

Tema

Social Media

Blog

GNU/Linux, Open Source, Cloud Computing, DevOps y más...

Cómo obtener un token o identificador de acceso permanente a una página de Facebook

Mediante las siguientes instrucciones puedes obtener de forma sencilla un access_token permanente para poder conectar de forma automática tus aplicaciones con una página de Facebook y poder así obtener por ejemplo su número de seguidores períodicamente, obtener nuevos likes o comentarios en tiempo real, realizar publicaciones en el timeline, o cualquiera de las posibilidades que nos ofrece la API de páginas de Facebook.

1. Obtener el identificador de nuestra página de Facebook

2. Crear una FB App asociada a tu página

2.1 Ir a Mis aplicaciones.

2.2 Crear nueva aplicación, por ejemplo AppMipagina:

Pasos para la creación de una nueva FB App

2.3 El paso anterior nos llevará a la página de administración de nuestra nueva App. En ella seleccionaremos la opción de Configuración y se nos mostrarán los datos que nos interesan: identificador de la aplicación y su clave secreta , a la cual sólo podremos acceder haciendo clic en el botón «Mostrar» (nº 2 de la siguiente imagen). No olvidar seleccionar la categoría «Aplicaciones para páginas» (nº 3) y guardar los cambios:

Página de administración de app Facebook

3. Obtener token o identificador de acceso de corta duración

3.1 Ir al Explorador de la API Graph de Facebook.

3.2 Seleccionar la página para la que queremos obtener el token o identificador de acceso en el desplegable de la derecha, hacer clic en el botón Enviar y copiar el access_token resultante, que será de corta duración (short_lived_token): 2 horas.

Explorador de la API Graph Facebook para desarrolladores

4. Obtener token o identificador de acceso de larga duración

4.1 Introducir la siguiente URL en la barra de direcciones del navegador:

https://graph.facebook.com/v2.8/oauth/access_token?grant_type=fb_exchange_token&client_id=<strong>{app_id}</strong>&client_secret=<strong>{app_secret}</strong>&fb_exchange_token=<strong>{short_lived_token}
</strong>

Que en nuestro ejemplo quedaría así:

https://graph.facebook.com/v2.8/oauth/access_token?grant_type=fb_exchange_token&client_id=<strong>246766729135031</strong>&client_secret=<strong>7dc9596d6f58cf94bc9e3f6b48decc69</strong>&fb_exchange_token=<strong>EAACEdEose0cBAKPkEP5zf31S7cfbSXZBJEfNLsgZCZBv2q2laGOg2tipmGWHqnwZBICIZAAKK18UVGRK9AWjZAh4eRac8j9VEOfh7m9gZBOPZBXwOGTKyGMdZAnfbWqSbIufzgY2CPgzN45XCDhN9bsPh7I8bwNIvy0oHJh3rL35CcyyPWpI33R5Jknul2NLUpuHMZD
</strong>

El resultado que obtendremos será el que se muestra a continuación:

{"access_token":"<strong>EAAUAA6XzH3sBAKty6EU2yZCEmKxJTqOzr3BF5F30ehZA8xxwoWluH6ETjIZAlAcGmtQM3xR4Q9alnzE9osu5kFarHB2avGHHFAMVI2Q0xF62PLeaV8PfrzaMa3YBqMs57a19noZB6s41ziqlbDUImoBWQVDlU3x1msVdsDqulaZsZD</strong>","token_type":"bearer","expires_in":5184000}

La cadena alfanumérica «access_token» marcada en negrita será el identificador de acceso de larga duración (long_lived_token) que queríamos conseguir, que como indica el atributo «expires_in», caduca 5.184.000 segundos después de ser generado, es decir, 2 meses.

5. Obtener access_token permanente

Pero aun siendo un tiempo considerable, puede resultar bastante tedioso tener que repetir todo este proceso cada 2 meses con el fin de renovar el acceso para nuestras aplicaciones, por lo que aún quedaría un último paso para conseguir el identificador permanente que perseguíamos desde el principio, el cual ya no será necesario renovar más una vez generado.

Para ello accederemos a la siguiente URL desde el navegador:

https://graph.facebook.com/<strong>{page_id}</strong>?fields=access_token&access_token=<strong>{long_lived_token}
</strong>

Que en nuestro ejemplo sería:

https://graph.facebook.com/<strong>315781431851791</strong>?fields=access_token&access_token=<strong>EAAUAA6XzH3sBAKty6EU2yZCEmKxJTqOzr3BF5F30ehZA8xxwoWluH6ETjIZAlAcGmtQM3xR4Q9alnzE9osu5kFarHB2avGHHFAMVI2Q0xF62PLeaV8PfrzaMa3YBqMs57a19noZB6s41ziqlbDUImoBWQVDlU3x1msVdsDqulaZsZD</strong>

La respuesta que obtendremos tendrá esta forma:

{
   "access_token": "<strong>EAAUAA6XzH3sBAByxmePXoivAX8DamdhghHUNWEZBxdXnQZAZAUPbDpBrmS6PexVeka3JTL9Vxn8eQe6wBLnlPbsN06nBPhxQhp0tKNrdZALXIEHgVANOb4U2eIz3BRHqTCAjSoFxqVZBWjc9K3qHyyRcGczccU7NRWjj5OkzxbAZDZD</strong>",
   "id": "315781431851791"
}

Y ahora sí, este token sí es un identificador de acceso permanente asociado a la página con el id que aparece en la respuesta, 315781431851791 en nuestro ejemplo.

6. Verificar que el token generado es permanente

Podemos constatar que el token generado es permanente usando el depurador de identificador de acceso de Facebook:

Depurador access token permanente

Si te resulta más cómodo, puedes seguir estas instrucciones a través del siguiente vídeo:

Facebook
Daniel López Azaña

Sobre el autor

Daniel López Azaña

Emprendedor tecnológico y arquitecto cloud con más de 20 años de experiencia transformando infraestructuras y automatizando procesos.

Especialista en integración de IA/LLM, desarrollo con Rust y Python, y arquitectura AWS & GCP. Mente inquieta, generador de ideas y apasionado por la innovación tecnológica y la IA.

Artículos relacionados

JAMstack Architecture - JavaScript APIs Markup

¿Qué es JAMstack? Arquitectura moderna para sitios web ultra-rápidos

Descubre cómo JAMstack revoluciona el desarrollo web con sitios estáticos pre-generados servidos desde CDN global. Velocidad excepcional, seguridad mejorada, escalabilidad ilimitada y costes mínimos de hosting comparados con CMS tradicionales.

3 de noviembre de 2025
User database icon

ᐈ Cómo crear un usuario en MySQL/MariaDB y concederle permisos para una base de datos desde la línea de comandos

La tarea de crear un usuario en MySQL o en MariaDB y asignarle privilegios para poder acceder a una base de datos específica y poder escribir información en ella es una tarea muy habitual que es necesario realizar cada vez que instalamos una aplicación destinada a correr sobre plataforma LAMP. Ya sea un simple WordPress, o una aplicación más compleja desarrollada a medida, de un modo u otro siempre vas a tener que llevar a cabo estos pasos en algún momento antes de poder ponerla en funcionamiento.

3 de junio de 2017
sugarcrm-logo-100068038-large

Error de SugarCRM en búsquedas de tareas relacionadas con módulos personalizados con guiones bajos en su nombre

Cuando creamos un módulo personalizado en SugarCRM (por ejemplo «grt_Contratos_Proveedores») y creamos una relación entre dicho módulo y uno que emplee el tipo de campo «Relacionado con» o «Related to», como por ejemplo el módulo «Tareas» o «Tasks», querremos probablemente poder buscar todas las tareas relacionadas con nuestro nuevo módulo «grt_Contratos_Proveedores» desde el formulario de búsqueda simple o avanzada de «Tareas».

19 de noviembre de 2012

Comentarios

Mauro 11 de febrero de 2018
Hola como estas?. Ante todo muy buen post. Queria comentarte que me da el siguiente error { "error": { "message": "Invalid Client ID", "type": "OAuthException", "code": 101, "fbtrace_id": "Fnf5diOQsO7" } }
Daniel 18 de febrero de 2018
Gracias Mauro. El identificador de cliente (client_id) debe ser el proporcionado por Facebook al seguir el paso 2.3 del procedimiento, no el identificador de usuario obtenido en el paso 1. Sólo se me ocurre que hayas confundido ambos y por eso dé ese error, o que lo hayas escrito mal en las URL's de los pasos 4 y 5.
Kaori 5 de abril de 2018
Mauro, después de disponer la aplicación activa disponible en forma pública, el problema es que no me permite obtener el token de acceso a la pagina desde la configuración del Messenger del Facebook Developers, debido a que persiste el error de pagina : Platform Access Disabled: Access temporarily disabled due to changes to the Facebook Platform Sin embargo, a travez de Herramientade Tokens de Acceso si permite obtener el referido tokens, el cual lo configure en mi app.js de bluemix de IBM obteniendo el Cannot GET / al desplegar. El asunto, es que al no obtener el tokens desde la configuración del messanger desde el facebook developers no me permite confinuar con la siguiente configuración del Webhooks. ¿ Como se podria superar el incidente que no me permite concretar la utilización del Bot via messanger ?
Abel Sanchez 25 de junio de 2019
Excelente, me funciona perfecto. Es justo lo que estaba buscando. Gracias.
Juan 12 de febrero de 2020
Muchas gracias, me ayudo bastante!
Perdomo24 6 de abril de 2020
Saludos hay un campo que no aparece en tu imagen: que es Caducidad del acceso a datos 1593982446 (en aproximadamente 3 meses) yo intento consumir datos de una fanpage puede que en 3 meses deje de funcionar?
Arauz 21 de abril de 2020
Por lo que entiendo en la documentacion, solo venceria si no se hacen peticiones, quien al final genera el token el usuario, quien debe tener un rol en la pagina para que dicho token no tenga problemas.
Andres 22 de septiembre de 2020
puedes poner el link de la documentacion donde se refieren a ese campo. No la consigo
Mauro 15 de julio de 2022
Hola que tal , en el ultimo paso estoy teniendo este error. Cuando quiero generar el token permanente Object does not exist, cannot be loaded due to missing permission or reviewable feature, or does not support this operation. This endpoint requires the 'pages_read_engagement' permission or the 'Page Public Content Access' feature or the 'Page Public Metadata Access' feature.
Abel 6 de noviembre de 2023
Esta es como la cuarta o quinta vez que hago este proceso siguiendo siempre tus pasos. Muchas gracias, excelente tutorial.

Enviar comentario