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

10 comentarios

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

Método de obtención del identificador de una página de Facebook - Paso 1Método de obtención del identificador de una página de Facebook - Paso 2

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 App2.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 Facebook3. 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 desarrolladores4. 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={app_id}&client_secret={app_secret}&fb_exchange_token={short_lived_token}

Que en nuestro ejemplo quedaría así:

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

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

{"access_token":"EAAUAA6XzH3sBAKty6EU2yZCEmKxJTqOzr3BF5F30ehZA8xxwoWluH6ETjIZAlAcGmtQM3xR4Q9alnzE9osu5kFarHB2avGHHFAMVI2Q0xF62PLeaV8PfrzaMa3YBqMs57a19noZB6s41ziqlbDUImoBWQVDlU3x1msVdsDqulaZsZD","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.


Error: Your Requested widget " ai_widget-6" is not in the widget list.
  • [do_widget_area above-nav-left]
    • [do_widget_area above-nav-right]
      • [do_widget_area footer-1]
        • [do_widget id="wpp-4"]
      • [do_widget_area footer-2]
        • [do_widget id="recent-posts-4"]
      • [do_widget_area footer-3]
        • [do_widget id="recent-comments-3"]
      • [do_widget_area footer-4]
        • [do_widget id="archives-4"]
      • [do_widget_area logo-bar]
        • [do_widget id="oxywidgetwpml-3"]
      • [do_widget_area menu-bar]
        • [do_widget id="search-3"]
      • [do_widget_area sidebar]
        • [do_widget id="search-4"]
        • [do_widget id="ai_widget-2"]
        • [do_widget id="categories-5"]
        • [do_widget id="ai_widget-3"]
        • [do_widget id="ai_widget-4"]
        • [do_widget id="ai_widget-5"]
      • [do_widget_area sub-footer-1]
        • [do_widget id="text-4"]
      • [do_widget_area sub-footer-2]
        • [do_widget_area sub-footer-3]
          • [do_widget_area sub-footer-4]
            • [do_widget_area upper-footer-1]
              • [do_widget id="search-2"]
              • [do_widget id="recent-posts-2"]
              • [do_widget id="recent-comments-2"]
              • [do_widget id="archives-2"]
              • [do_widget id="categories-2"]
              • [do_widget id="meta-2"]
            • [do_widget_area upper-footer-2]
              • [do_widget_area upper-footer-3]
                • [do_widget_area upper-footer-4]
                  • [do_widget_area widgets_for_shortcodes]
                    • [do_widget id="search-5"]
                    • [do_widget id="ai_widget-6"]
                  • [do_widget_area wp_inactive_widgets]
                    • [do_widget id="wpp-2"]
                    • [do_widget id="text-1"]
                    • [do_widget id="recent-posts-3"]
                    • [do_widget id="categories-3"]
                    • [do_widget id="archives-3"]
                    • [do_widget id="icl_lang_sel_widget-3"]

                  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/{page_id}?fields=access_token&access_token={long_lived_token}
                  

                  Que en nuestro ejemplo sería:

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

                  La respuesta que obtendremos tendrá esta forma:

                  {
                     "access_token": "EAAUAA6XzH3sBAByxmePXoivAX8DamdhghHUNWEZBxdXnQZAZAUPbDpBrmS6PexVeka3JTL9Vxn8eQe6wBLnlPbsN06nBPhxQhp0tKNrdZALXIEHgVANOb4U2eIz3BRHqTCAjSoFxqVZBWjc9K3qHyyRcGczccU7NRWjj5OkzxbAZDZD",
                     "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.


                  Error: Your Requested widget " ai_widget-6" is not in the widget list.
                  • [do_widget_area above-nav-left]
                    • [do_widget_area above-nav-right]
                      • [do_widget_area footer-1]
                        • [do_widget id="wpp-4"]
                      • [do_widget_area footer-2]
                        • [do_widget id="recent-posts-4"]
                      • [do_widget_area footer-3]
                        • [do_widget id="recent-comments-3"]
                      • [do_widget_area footer-4]
                        • [do_widget id="archives-4"]
                      • [do_widget_area logo-bar]
                        • [do_widget id="oxywidgetwpml-3"]
                      • [do_widget_area menu-bar]
                        • [do_widget id="search-3"]
                      • [do_widget_area sidebar]
                        • [do_widget id="search-4"]
                        • [do_widget id="ai_widget-2"]
                        • [do_widget id="categories-5"]
                        • [do_widget id="ai_widget-3"]
                        • [do_widget id="ai_widget-4"]
                        • [do_widget id="ai_widget-5"]
                      • [do_widget_area sub-footer-1]
                        • [do_widget id="text-4"]
                      • [do_widget_area sub-footer-2]
                        • [do_widget_area sub-footer-3]
                          • [do_widget_area sub-footer-4]
                            • [do_widget_area upper-footer-1]
                              • [do_widget id="search-2"]
                              • [do_widget id="recent-posts-2"]
                              • [do_widget id="recent-comments-2"]
                              • [do_widget id="archives-2"]
                              • [do_widget id="categories-2"]
                              • [do_widget id="meta-2"]
                            • [do_widget_area upper-footer-2]
                              • [do_widget_area upper-footer-3]
                                • [do_widget_area upper-footer-4]
                                  • [do_widget_area widgets_for_shortcodes]
                                    • [do_widget id="search-5"]
                                    • [do_widget id="ai_widget-6"]
                                  • [do_widget_area wp_inactive_widgets]
                                    • [do_widget id="wpp-2"]
                                    • [do_widget id="text-1"]
                                    • [do_widget id="recent-posts-3"]
                                    • [do_widget id="categories-3"]
                                    • [do_widget id="archives-3"]
                                    • [do_widget id="icl_lang_sel_widget-3"]

                                  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:

                                   

                                  Sobre el autor

                                  Daniel López Azaña
                                  Arquitecto de soluciones Cloud AWS & Linux Sysadmin Freelance

                                  Emprendedor, generador de ideas y mente inquieta. Apasionado de las nuevas tecnologías, especialmente de los sistemas Linux y del software libre. Me gusta escribir además sobre actualidad tecnológica, Cloud Computing, AWSi, DevOps, DevSecOps, seguridad, desarrollo web y programación, SEO, ciencia, innovación, emprendimiento, etc.

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

                                  Artículos relacionados

                                  10 comentarios

                                  Unirte a la conversación
                                  • Mauro - 11/02/2018 responder

                                    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/02/2018 responder

                                    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 - 05/04/2018 responder

                                    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/06/2019 responder

                                    Excelente, me funciona perfecto. Es justo lo que estaba buscando. Gracias.

                                  • Juan - 12/02/2020 responder

                                    Muchas gracias, me ayudo bastante!

                                  • Perdomo24 - 06/04/2020 responder

                                    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/04/2020 responder

                                    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/09/2020 responder

                                    puedes poner el link de la documentacion donde se refieren a ese campo. No la consigo

                                  • Mauro - 15/07/2022 responder

                                    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 - 06/11/2023 responder

                                    Esta es como la cuarta o quinta vez que hago este proceso siguiendo siempre tus pasos. Muchas gracias, excelente tutorial.

                                  Deja una respuesta

                                  Tu dirección de correo electrónico no será publicada.