Insertar una publicación de Instagram

Puedes hacer una consulta al punto de conexión oEmbed de Instagram para obtener los metadatos básicos y el código HTML de inserción de una publicación de Instagram, con el objetivo de mostrar la publicación en otro sitio web o app. Admite publicaciones de fotos, videos, reels y feeds.

Visita el servicio de ayuda de Instagram para informarte sobre cómo obtener el código de inserción de una publicación pública de Instagram o un perfil público.

Usos comunes

  • Insertar una publicación en un blog
  • Insertar una publicación en un sitio web
  • Mostrar una publicación en un sistema de gestión de contenido
  • Mostrar una publicación en una app de mensajes

Requisitos

En esta guía, se asume que eres desarrollador registrado de Meta y que creaste una app de Meta .

Necesitarás lo siguiente:

Niveles de acceso

Tokens de acceso

URL base

Es posible acceder a todos los puntos de conexión mediante el host graph.facebook.com.

Puntos de conexión

Funciones

Limitaciones

  • El punto de conexión oEmbed de Instagram solo está diseñado para insertar contenido de Instagram en sitios web y apps. No se lo puede utilizar con otros fines. Está estrictamente prohibido el uso de los metadatos y el contenido de las páginas, las publicaciones o los videos (o sus derivados) del punto de conexión con cualquier fin que no sea el de ofrecer una visualización final de la página, la publicación o el video. La prohibición incluye el consumo, la manipulación, la extracción o el almacenamiento de metadatos y contenido, por ejemplo, la obtención de información sobre páginas, publicaciones y videos a partir de metadatos con fines de análisis.
  • No se pueden consultar publicaciones en cuentas de Instagram privadas, inactivas o con restricciones por edad.
  • No se admiten las cuentas con inserciones desactivadas.
  • No se admiten las historias.
  • No se admite Shadow DOM.

Límites de frecuencia

Los límites de frecuencia dependen del tipo de token de acceso que tu app incluye en cada solicitud.

Límites de frecuencia de tokens de la app

Las apps que dependen de tokens de acceso a la app pueden hacer hasta 5 millones de solicitudes cada 24 horas.

Límites de frecuencia de tokens de cliente

Los límites de frecuencia de los tokens de cliente son bastante más bajos que los límites de frecuencia de los tokens de la app. No revelamos el límite real porque este varía en función de la actividad de tu app. Sin embargo, puedes confiar en que tu app no alcanzará el límite a menos que tenga un comportamiento similar a un bot, como el procesamiento por lotes de miles de solicitudes o el envío de miles de solicitudes por agente o usuario de app.

Obtener un código HTML de inserción

Puedes obtener un código HTML de inserción mediante programación o en la app de Instagram.

Para obtener código HTML de inserción de una publicación de Instagram, envía una solicitud a:

GET /instagram_oembed?url=<URL_OF_THE_POST>&access_token=<ACCESS_TOKEN>

Reemplaza <URL_OF_THE_POST> por la URL de la publicación de Instagram que quieres consultar y <ACCESS_TOKEN> por el token de acceso del cliente o el token de acceso a la app, o bien envíanoslo en un encabezado HTTP Authorization.

Authorization: Bearer <ACCESS_TOKEN>

Si usas un token de acceso del cliente, recuerda que debes combinarlo con el identificador de la app de Meta mediante un símbolo de barra vertical; de lo contrario, la solicitud no funcionará.

Si la operación se realiza correctamente, la API responderá con un objeto JSON que incluirá el código HTML de inserción de la publicación, entre otros datos. El código HTML de inserción se asignará a la propiedad html.

Consulta la referencia de oEmbed de Instagram a fin de obtener una lista de parámetros de cadena de consulta que puedes incluir para expandir la solicitud. También puedes incluir el parámetro de la cadena de consulta fields para especificar los campos que deseas obtener. Si omites esta información, todos los campos predeterminados se incluirán en la respuesta.

Ejemplos de solicitudes

curl -X GET \
  "https://graph.facebook.com/v21.0/instagram_oembed?url=https://www.instagram.com/p/fA9uwTtkSN/&access_token=IGQVJ..."

curl -i -X GET \
     --header "Authorization: Bearer 96481..." \
     "https://graph.facebook.com/v21.0/instagram_oembed?url=https%3A%2F%2Fwww.instagram.com%2Fp%2FfA9uwTtkSN"

Ejemplo de respuesta

Algunos valores se truncaron y se agregaron puntos suspensivos (...) para facilitar la lectura.

{
  "version": "1.0",
  "author_name": "diegoquinteiro",
  "provider_name": "Instagram",
  "provider_url": "https://www.instagram.com/",
  "type": "rich",
  "width": 658,
  "html": "<blockquote class=\"instagram-media\" data-instgrm-ca...",
  "thumbnail_width": 640,
  "thumbnail_height": 640
}

Formatos de URL

El parámetro de cadena de consulta url acepta los siguientes formatos de URL:

https://www.instagram.com/p/{media-shortcode}/
https://www.instagram.com/tv/{media-shortcode}/https://www.instagram.com/{username}/guide/{slug}/{guide_id}

Código JS de inserción

El código HTML de inserción contiene una referencia a la biblioteca de JavaScript embed.js de Instagram. Cuando la biblioteca se carga, busca el código HTML de la publicación en la página y genera la representación completa de la publicación. Si quieres cargar la biblioteca por separado, incluye el parámetro de cadena de consulta omitscript=true en la solicitud. Para iniciar manualmente el código de inserción de HTML, llama a la función instgrm.Embeds.process() después de cargar la biblioteca.

Tamaño de la publicación

La publicación insertada es ajustable y se adaptará al tamaño del contenedor. Eso significa que la altura variará según el ancho del contenedor y la longitud del texto. Puedes incluir el parámetro de cadena de consulta maxwidth en la solicitud para establecer el ancho máximo.

Obtener imágenes en miniatura

Recomendamos que muestres todo el código HTML de inserción de la publicación siempre que sea posible. De lo contrario, puedes obtener la URL de la imagen en miniatura de una publicación y representar eso en su lugar. Sin embargo, si haces eso, debes proporcionar una atribución clara junto a la imagen, incluida la atribución al autor original y a Instagram, y un enlace a la publicación de Instagram que estás consultando.

Para obtener la URL de una imagen en miniatura de una publicación y la información de atribución, envía una solicitud a:

GET /instagram_oembed
  ?url=<URL_OF_THE_POST>
  &maxwidth=<MAX_WIDTH>
  &fields=thumbnail_url,author_name,provider_name,provider_url
  &access_token=<ACCESS_TOKEN>

Reemplaza <URL_OF_THE_POST> por la URL de la publicación de Instagram que quieres consultar, <MAX_WIDTH> por el tamaño máximo de la imagen en miniatura que quieres mostrar, y <ACCESS_TOKEN> por el token de acceso del cliente o el token de acceso a la app.

Ejemplo de solicitud

curl -i -X GET \
  "https://graph.facebook.com/v21.0/instagram_oembed?url=https%3A%2F%2Fwww.instagram.com%2Fp%2FfA9uwTtkSN&maxwidth=320&fields=thumbnail_url%2Cauthor_name%2Cprovider_name%2Cprovider_url&access_token=96481..."

Ejemplo de respuesta

Algunos valores se truncaron y se agregaron puntos suspensivos (...) para facilitar la lectura.

{
  "thumbnail_url": "https://scontent.cdninstagram.com/v/t51.288...",
  "author_name": "diegoquinteiro",
  "provider_name": "Instagram",
  "provider_url": "https://www.instagram.com/"
}

Solicitud de revisión de la app

Cuando envíes la app para revisión, en el campo del formulario Dinos por qué solicitas oEmbed Read > Proporciona una URL en la que podamos probar lectura oEmbed, usa el punto de conexión oEmbed de Instagram para obtener el código de inserción HTML de cualquier publicación pública en tu página de Facebook o página de Instagram oficial. Luego, agrega el código de inserción HTML devuelto donde mostrarás el contenido oEmbed e inserta la URL de esa página en el campo del formulario.

Una vez que te hayan aprobado la función oEmbed Read, podrás insertar tus páginas, publicaciones o videos propios con las URL respectivas.