Configurar un token de aplicación para las previsualizaciones de Instagram

:warning: Actualizaciones importantes desde que se escribió esta guía:

  1. La Revisión de la Aplicación ahora es obligatoria. Desde septiembre de 2021, Meta requiere que su aplicación pase la Revisión de la Aplicación y sea aprobada para el permiso oEmbed Read (ahora llamado Meta oEmbed Read para aplicaciones creadas después del 8 de abril de 2025). Sin esto, las llamadas a la API oEmbed fallarán. Consulte la guía de envío de Revisión de la Aplicación de Meta para obtener consejos sobre cómo ser aprobado.

  2. Es posible que los oneboxes de Instagram no se muestren correctamente. A partir del 3 de noviembre de 2025, Meta eliminó los campos thumbnail_url, thumbnail_width, thumbnail_height y author_name de las respuestas oEmbed de Instagram. El código del onebox de Instagram de Discourse depende actualmente de estos campos (lib/onebox/engine/instagram_onebox.rb), lo que puede resultar en embeds rotos o vacíos.

  3. Solo se admiten las URL de publicaciones e IGTV. Actualmente, Discourse solo convierte a onebox las URL de Instagram /p/ (publicación) y /tv/ (IGTV). Las URL de Reels (/reel/) no son compatibles.

  4. La interfaz de usuario de la Consola de Desarrolladores de Facebook ha cambiado significativamente desde que se tomaron las capturas de pantalla a continuación en diciembre de 2020. Los pasos generales siguen siendo similares, pero las pantallas y opciones exactas pueden verse diferentes.


Si ya tiene una Aplicación de Facebook asociada con su sitio de Discourse, desplácese hasta Añadir oEmbed a su Aplicación de Facebook.

Si no tiene una cuenta de Desarrollador de Facebook ni una Aplicación de Facebook:

Vaya a https://developers.facebook.com/. Se le pedirá que inicie sesión en su cuenta de Facebook si no ha iniciado sesión. Se le puede pedir que ‘convierta’ su cuenta de Facebook en una cuenta de desarrollador si no lo ha hecho antes. Se le puede pedir que verifique su cuenta con Facebook añadiendo un número de teléfono o completando otros pasos. Solo tendrá que seguir las indicaciones y hacer lo que Facebook le exija.

Una vez que tenga una cuenta de Desarrollador de Facebook, haga clic en ‘Mis Aplicaciones’ desde la pantalla de inicio de Desarrollador de Facebook:

…y en ‘Crear Aplicación’:

Seleccione un tipo de aplicación de ‘Otra cosa’ (‘Something Else’) y haga clic en ‘Continuar’ (‘Continue’):

Introduzca un ‘Nombre de visualización de la aplicación’ (‘App Display Name’) y un ‘Correo electrónico de contacto de la aplicación’ (‘App Contact Email’). Una vez que haya leído sus Términos y Políticas, puede hacer clic en ‘Crear Aplicación’ (‘Create App’):

Si es un robot: nada que ver aquí. Bip bop boop. :robot:

Si no es un robot: haga clic en “No soy un robot”, siga las indicaciones y haga clic en ‘Enviar’ (‘Submit’).

¡Felicidades! ¡Tiene una Aplicación de Facebook!

Añadir oEmbed a su Aplicación de Facebook:

Desplácese hasta la parte inferior de la lista de Productos, encuentre ‘oEmbed’ y haga clic en ‘Configurar’ (‘Set Up’):

Si está de acuerdo con el uso que se le dará al producto oEmbed, marque la casilla y luego haga clic en ‘Confirmar’ (‘Confirm’):

El producto oEmbed se ha añadido. Haga clic en ‘Configuración’ (‘Settings’):

El ‘Nombre de visualización’ (‘Display Name’) y el ‘Correo electrónico de contacto’ (‘Contact Email’) ya deberían estar rellenados. Deberá introducir las URL de su ‘Política de Privacidad’ (‘Privacy Policy’) y ‘Términos de Servicio’ (‘Terms of Service’). Seleccione una ‘Categoría’ (‘Category’) de la lista de opciones disponibles. Haga clic en ‘Guardar cambios’ (‘Save Changes’) cuando esté satisfecho con todo:

Haga clic en el interruptor en la parte superior de la pantalla para cambiar de modo ‘En desarrollo’ (‘In development’) a modo ‘Activo’ (‘Live’):

Haga clic en ‘Cambiar modo’ (‘Switch Mode’):

Enviar su aplicación para la Revisión de la Aplicación (obligatorio desde 2021):

Antes de que su aplicación pueda acceder a la API oEmbed en producción, debe enviarla para Revisión de la Aplicación y solicitar el permiso oEmbed Read (o Meta oEmbed Read para aplicaciones creadas después del 8 de abril de 2025).

  1. En el panel de control de su aplicación, vaya a Revisión de la AplicaciónPermisos y Características.
  2. Busque oEmbed Read (o Meta oEmbed Read) y haga clic en Solicitar (‘Request’).
  3. Es posible que primero deba realizar una llamada de prueba exitosa a la API antes de que el botón de solicitud esté activo. Puede tardar hasta 24 horas después de su primera llamada a la API.
  4. Al enviar, proporcione una URL en su sitio de Discourse que contenga una inserción de Instagram y explique que su sitio utiliza el software de foro Discourse para insertar publicaciones de Instagram mediante la API oEmbed.

Consulte la documentación de oEmbed de Meta para obtener orientación detallada sobre el envío.

Generar su Token de Acceso de Aplicación:

Habiendo hecho todo eso, podemos generar un Token de Aplicación siguiendo las instrucciones de Facebook sobre Tokens de Acceso de Aplicación. Necesitará el valor del campo ‘ID de la Aplicación’ (‘App ID’) y el valor del campo ‘Secreto de la Aplicación’ (‘App Secret’). Para obtener el Secreto de la Aplicación, haga clic en ‘Mostrar’ (‘Show’). Se le puede pedir que se reautentique o similar, pero debería obtener un valor hexadecimal largo que pueda copiar:

Según la documentación de Facebook, debe enviar esos valores a Facebook para generar un token. ¿Está familiarizado con el uso de curl? ¡Genial! Sugieren lo siguiente (reemplazando {your-app-id} y {your-app-secret}) con los valores que copió de la pantalla anterior.

curl -X GET "https://graph.facebook.com/oauth/access_token?client_id={your-app-id}&client_secret={your-app-secret}&grant_type=client_credentials"

Alternativamente, copiar solo la URL (después de reemplazar esos dos valores) en su navegador también debería funcionar:

https://graph.facebook.com/oauth/access_token?client_id={your-app-id}&client_secret={your-app-secret}&grant_type=client_credentials

Facebook responderá con un pequeño fragmento de JSON, que debería parecerse a este ejemplo:

{"access_token":"1234567890654321|c3bd55c09fc5e561552ad7a8717","token_type":"bearer"}

Copie el valor de su access_token, excluyendo las comillas (es decir, en mi ejemplo sería 1234567890654321|c3bd55c09fc5e561552ad7a8717), y vaya a la Configuración de su sitio de Discourse. Busque la configuración del sitio llamada facebook_app_access_token en la configuración de Onebox. Pegue el valor ‘access_token’ en este campo:

Haga clic en el :white_check_mark: … ¡y ya está!

Pegar una URL como https://www.instagram.com/p/CIRhYzFM7Lu/ en una publicación de su sitio debería dar como resultado un onebox encantador, ¡como este!

https://www.instagram.com/p/CIRhYzFM7Lu/

17 Me gusta

Nueva función de lectura de oEmbed y requisitos de revisión de aplicaciones

Hoy, 8 de junio de 2021, anunciamos v11.0 de las API de Graph y de Marketing. Con esta actualización, existen nuevos requisitos para poder acceder a las API de oEmbed . Algunas de sus aplicaciones acceden actualmente a las API de oEmbed y podrían verse afectadas por estos cambios.

Para continuar accediendo a las API de oEmbed, deberá enviar sus aplicaciones para revisión antes del 6 de septiembre de 2021. Si desea solicitar nuevo acceso a las API de oEmbed, también necesitará enviar sus aplicaciones para revisión.

Para obtener más información, revise los requisitos actualizados. Si sus aplicaciones no han sido revisadas para la función de API de oEmbed antes del 6 de septiembre de 2021, perderán el acceso a esta función. Para evitar interrupciones en el acceso a oEmbed de sus aplicaciones, envíelas para revisión de aplicaciones lo antes posible.

Nuevas reglas de nuestros señores de Facebook; acabo de enviar ambas aplicaciones para revisión. Encontré una publicación pública con una inserción de Instagram y enlazé directamente para mostrar cómo funciona la integración. Espero que esto sea suficiente.

8 Me gusta


¡Qué pena, la revisión falló!

Esto es lo que envié:

Detalles de tu envío

¿Puede un revisor de Facebook acceder o iniciar sesión en tu aplicación para verificar que estás utilizando los permisos o funciones de acuerdo con la Política de la Plataforma de Facebook?

Configuración de la plataforma

Escritorio

URL del sitio: https://fixed.org.au/

No se requiere cuenta

  1. Visita The 'what you've done to your bike today' thread - #10218 by jaseyjase - Post your ride - FOA
  2. La publicación de Instagram está incrustada en la página. El sitio ejecuta el software del foro Discourse (https://discourse.org/).

Lectura de Oembed

Cuéntanos cómo estás utilizando este permiso o función

Discourse (https://discourse.org/) puede incrustar publicaciones de Instagram y Facebook en los mensajes de la comunidad, manteniendo a las personas en nuestro sitio web mientras se incrusta contenido de manera enriquecida.

URL de Oembed

The 'what you've done to your bike today' thread - #10218 by jaseyjase - Post your ride - FOA

¡Acabo de volver a enviarlo (había texto extra en la URL de Oembed) y ha sido aprobado!!! :smiley: esperando que mi segunda aplicación sea…

3 Me gusta

El texto parece ser el mismo que en tu envío inicial de revisión. ¿Puedes ampliar información sobre qué datos adicionales proporcionaste en comparación con la revisión fallida?

Además: ¿Pasaste o no los datos de inicio de sesión de Facebook al foro?

1 me gusta

@znedw mi pregunta sigue en pie, ¿puedes ayudar a todos con alguna información sobre esto?

La primera revisión falló porque tenía algo de texto adicional en el campo Oembed URL y el formulario elimina los espacios al enviar, por lo que la URL no funcionó… Esa es la única diferencia entre los intentos.

No. En la sección de Plataforma (tuve que agregar una plataforma en el asistente), simplemente escribí:

No se necesita cuenta

Realmente no quería configurar una cuenta de Discourse solo para la revisión de Facebook, así que encontré una publicación en nuestro foro que era pública y tenía una imagen de Instagram incrustada. Pensé que esto mostraría cómo funciona la integración lo suficientemente bien. Supongo que Facebook podría leer el código fuente de Discourse y resolverlo por sí mismo :man_shrugging:

Perdón por haber pasado esto por alto. Literalmente no hice ningún cambio en ninguno de los foros; simplemente encontré una publicación del foro con una imagen de Instagram incrustada, como se mencionó anteriormente, y luego seguí el asistente de revisión de la aplicación en Facebook.

3 Me gusta

Hola @znedw, seguí tu guía y nuestra revisión de la aplicación fue aprobada 24 horas después.

Sin embargo, tuve que ingresar el enlace directo a la publicación de Instagram incrustada en el campo oEmbed-URL, ya que el formulario no aceptaba el enlace al tema en nuestro dominio en ese campo. Quizás hayan cambiado esa parte.

Por lo demás, seguí exactamente tu redacción. Y funcionó.

1 me gusta

Pregunta rápida: ¿El proceso cambió a ser “Instagram Basic Display” o estoy muy, muy ciego? Porque no veo la opción oEmbed, lo más cercano por definición que supongo que es Instagram Basic Display.

Citando:

Instagram Basic Display permite a las aplicaciones acceder a la API de Instagram Basic Display, que proporciona acceso de solo lectura a datos básicos en las cuentas de Instagram de los usuarios de la aplicación.

Utilice esta pestaña para configurar la ventana de autorización de la API para que pueda obtener permisos de los usuarios, y para enviar su aplicación a Revisión de aplicaciones cuando esté listo para cambiarla al modo en vivo.

Tenga en cuenta que Basic Display no es una herramienta de autenticación. Los datos devueltos por la API no se pueden utilizar para autenticar a los usuarios de su aplicación ni para iniciar sesión en su aplicación. Si su aplicación utiliza datos de la API para autenticar usuarios, será rechazada durante la Revisión de aplicaciones. Si necesita una solución de autenticación, utilice Inicio de sesión con Facebook en su lugar.

Sin embargo, requiere otras URL que no están listadas aquí, así que no estoy seguro, por ejemplo:

Configuración OAuth del cliente

URL de devolución de llamada de desautorización


(¿Quizás también cambió algo porque creo que aquí no funciona?)

https://www.instagram.com/p/CIRhYzFM7Lu

3 Me gusta

hasta donde puedo decir, sigue siendo oEmbed read con advanced access

1 me gusta

Ya veo. Hay una diferencia con el tutorial, entonces.

En lugar de agregarse como cualquier otra función (llamada “Productos” en la interfaz de usuario) desde el Panel, ahora se solicita desde la sección “Solicitud” del menú “Revisión de la aplicación”. Selecciona la función y la envía a revisión.

Lo que hace que el proceso sea un poco irregular porque solicitan un enlace con un oEmbed válido para aprobarlo… pero no funciona porque la función no está aprobada… :sweat:

4 Me gusta

Ahora funciona en mi cuenta. Intentaré resumir lo que necesitas. No soy particularmente técnico, así que no estoy seguro de poder responder muchas preguntas, pero supongo que solo copia mi configuración lo más fielmente posible para comprobar que todo funciona.

Necesitas el inicio de sesión de Facebook (no sé si la API de gráficos de Instagram es realmente necesaria). Comprueba que el inicio de sesión de Facebook funciona en tu instalación de Discourse.

Configuración de inicio de sesión de Facebook:

Configuración básica:

Configuración avanzada:

3 Me gusta

Hola a todos, quería informarles que a partir de hoy, la descripción de @Iceman sigue siendo precisa.

Algunos diseños de página se han modificado con respecto a la guía (:point_up:), pero la principal diferencia es que oEmbed debe solicitarse después de que su aplicación haya pasado la Revisión de la aplicación.

Desde el menú “Revisión de la aplicación”, puede realizar solicitudes:

Mi aplicación no ha pasado la Revisión de la aplicación, pero @undasein pudo hacer que funcionara recientemente, con la ayuda de esta guía y consejos de https://stackoverflow.com/questions/67998234/starting-using-instagram-oembed-feature.


¡Buena suerte compartiendo sus `grams, gente! :slight_smile:

3 Me gusta

En mi solicitud, no hice nada elaborado. Simplemente escribí “Me gustaría incrustar publicaciones de Instagram en mi foro” y fue aprobado en un día.

1 me gusta

¿Cómo puedo acceder a la lectura avanzada de oembed? Ni siquiera puedo solicitarla porque el botón está deshabilitado. Hice algunas llamadas a la API en el gráfico, pero no sucede nada incluso después de 24 horas.

Algunos usuarios han logrado solucionar esto enviando la aplicación para su revisión por otro motivo (como el inicio de sesión de Facebook) y, una vez aprobada, se pueden solicitar algunas funciones, como “Oembed Read”.

Es posible que desees ponerte en contacto con los canales de soporte de la plataforma para comprender qué está sucediendo con tu cuenta. :+1:

1 me gusta

[quote=“Jamie Wilson, post:1, topic:223548, username:jamie.wilson”]noEmbed
[/quote]

oEmbed ya no existe, ¿qué pongo en su lugar?

[quote=“Iceman, post:10, topic:223548, username:Iceman”]Instagram Basic Display
[/quote]

No veo la opción Oembed, ¿cuál elegiste?

¿Tu aplicación ha pasado la revisión de la aplicación todavía @danielabc?

1 me gusta

cuando voy a la opción, el botón está desactivado y no puedo hacer clic

cuando voy a la opción, el botón está desactivado y no puedo hacer clic

Se revocó mi acceso porque no se utilizó durante 90 días. Lo que significa, creo, que nadie en mi foro ha publicado un enlace de Instagram recientemente.

Así que, este es el estado actual del permiso de lectura de oEmbed:

Para solicitar acceso avanzado a este permiso, necesitas hacer una llamada API de prueba exitosa. Puede tardar hasta 24 horas después de la primera llamada API para que este botón se active. Aprende sobre las pruebas

¿Cómo hacemos en la práctica una llamada API con Discourse en este contexto para solicitar acceso avanzado nuevamente? :thinking:

2 Me gusta