Publicación de contenido

Puedes usar la API Graph de Instagram para publicar en las cuentas profesionales de Instagram imágenes, videos, reels individuales (es decir, publicaciones con un solo contenido multimedia) o publicaciones con varias imágenes, videos (publicaciones de secuencia).

A partir del 1 de julio de 2023, todos los videos de feed único publicados mediante la API de publicación de contenido de Instagram se compartirán como reels.

Requisitos

Tokens de acceso

Todas las solicitudes deben incluir el token de acceso del usuario de la app.

Permisos

Para la publicación, se usa una combinación de los siguientes permisos. La combinación exacta depende de los puntos de conexión que usa la app. Consulta nuestras referencias de puntos de conexión para determinar qué permisos requieren estos puntos de conexión.

Si los usuarios de la app no tendrán un rol en la app ni en una empresa que haya reclamado la app, debes solicitar la aprobación de cada permiso mediante el proceso de revisión de apps antes de que los usuarios de la app sin roles puedan otorgar dichos permisos en la app.

Servidor público

Aplicamos cURL al contenido multimedia usado en los intentos de publicación. Por este motivo, el contenido multimedia debe estar alojado en un servidor de acceso público al momento de intentar realizar la publicación.

Autorización de publicación en páginas

Las cuentas profesionales de Instagram conectadas a una página que requieran autorización de publicación en páginas (PPA) no se pueden publicar hasta que se haya completado el proceso de PPA.

Es posible que un usuario de la app pueda realizar tareas en una página que inicialmente no requieran PPA, pero más adelante sí. En este caso, el usuario de la app no podrá publicar contenido en su cuenta profesional de Instagram hasta haber completado el proceso de PPA. Como no hay forma de determinar si la página de un usuario de la app requiere PPA, te recomendamos que hagas saber a los usuarios de tu app que es aconsejable que completen el proceso de PPA de manera preventiva.

Limitaciones

  • JPEG es el único formato de imagen admitido. No se admiten los formatos de JPEG extendido, como MPO y JPS.
  • No se admiten las etiquetas de compra.
  • No se admiten las etiquetas de contenido de marca.
  • No se admiten los filtros.
  • No se admiten publicaciones en Instagram TV.

Consulta la referencia de los puntos de conexión para obtener información sobre más limitaciones.

Limitación de frecuencia

Las cuentas de Instagram pueden realizar un máximo de 50 publicaciones mediante la API en de un período de 24 horas. Las secuencias cuentan como una única publicación. Este límite se aplica en el punto de conexión de POST /{ig-user-id}/media_publish al intentar publicar un contenedor de contenido multimedia. Recomendamos que tu app también aplique la limitación de frecuencia de publicación, especialmente si permite a los usuarios programar publicaciones futuras.

Para conocer el uso de la limitación de frecuencia actual de una cuenta profesional de Instagram, haz una consulta al punto de conexión GET /{ig-user-id}/content_publishing_limit.

Puntos de conexión

La API tiene los siguientes puntos de conexión. Consulta los documentos de cada punto de conexión para hallar los requisitos de uso.

Publicaciones solo de contenido multimedia

El proceso de publicación de una imagen, un video, una historia o un reel solos requiere dos pasos:

  1. Usa el punto de conexión POST /{ig-user-id}/media para crear un contenedor de una imagen o video alojados en tu servidor público.
  2. Luego, usa el punto de conexión POST /{ig-user-id}/media_publish para publicar ese contenedor.

Paso 1 de 2: Crear contenedor

Supongamos que tienes una imagen en

https://www.example.com/images/bronz-fonz.jpg

que quieres publicar con el hashtag "#BronzFonz" como leyenda. Envía una solicitud al punto de conexión POST /{ig-user-id}/media:

Ejemplo de solicitud

POST https://graph.facebook.com/v19.0/17841400008460056/media
  ?image_url=https://www.example.com/images/bronz-fonz.jpg
  &caption=#BronzFonz

Devuelve un identificador de contenedor de la imagen.

Ejemplo de respuesta

{
  "id": "17889455560051444"  // IG Container ID
}

Paso 2 de 2: Publicar contenedor

Usa el punto de conexión POST /{ig-user-id}/media_publish para publicar el identificador de contenedor que se devolvió en el paso anterior.

Ejemplo de solicitud

POST https://graph.facebook.com/v19.0/17841400008460056/media_publish ?creation_id=17889455560051444

Ejemplo de respuesta

{
  "id": "17920238422030506" // IG Media ID
}

Publicaciones por secuencia

Puedes publicar un total de 10 imágenes, videos o una mezcla de estos dos elementos en una única publicación (una publicación por secuencia). Realizar publicaciones por secuencia es un proceso de tres pasos:

  1. Usa el punto de conexión POST /{ig-user-id}/media para crear contenedores de elementos individuales para las imágenes y los videos que aparecerán en la secuencia.
  2. Vuelve a usar el punto de conexión POST /{ig-user-id}/media para crear un único contenedor de secuencia para los elementos.
  3. Usa el punto de conexión POST /{ig-user-id}/media_publish para publicar el contenedor de secuencia.

Las publicaciones por secuencia cuentan como publicaciones únicas en relación con la limitación de frecuencia de la cuenta.

Limitaciones

  • No es posible promocionar las secuencias.
  • Las secuencias tienen un límite de 10 imágenes y videos, o bien una combinación de ambos.
  • Todas las imágenes de secuencia se recortan en función de la primera imagen. La primera presenta una relación de aspecto de aspecto de 1:1.

Paso 1 de 3: Crear un contenedor de elementos

Usa el punto de conexión POST /{ig-user-id}/media para crear contenedores de elementos de una imagen o video que aparecerán en una secuencia. Las secuencias pueden tener un total de 10 imágenes y videos, o bien una combinación de ambos.

POST /{ig-user-id}/media

Parámetros

Los siguientes parámetros son obligatorios. Consulta la referencia del punto de conexión POST /{ig-user-id}/media para obtener información sobre otros parámetros admitidos.

  • is_carousel_item: establecido en true. Indica que la imagen o el video aparecerán en una secuencia.
  • image_url: (solo imágenes) La ruta a la imagen. Aplicaremos cURL a la URL pasada para acceder a la imagen, por lo que esta debe estar en un servidor público.
  • media_type: (solo videos) Establecido en VIDEO. Indica que el contenido multimedia es un video.
  • video_url: (solo videos) Ruta al video. Aplicaremos cURL a la URL pasada para acceder al video, por lo que este debe estar en un servidor público.

Si la operación es correcta, la API devolverá un identificador de contenedor de elementos que puede usarse cuando se crea el contenedor de secuencia.

Repite este proceso para todas las imágenes y todos los videos que deben aparecer en la secuencia.

Ejemplo de solicitud

curl -i -X POST \

"https://graph.facebook.com/v19.0/90010177253934/media?image_url=https%3A%2F%2Fsol...&is_carousel_item=true&access_token=EAAOc..."

Ejemplo de respuesta

{
  "id": "17899506308402767"
}

Paso 2 de 3: Crear un contenedor de secuencia

Usa el punto de conexión POST /{ig-user-id}/media para crear un contenedor de secuencia.

POST /{ig-user-id}/media

Parámetros

Los siguientes parámetros son obligatorios. Consulta la referencia del punto de conexión POST /{ig-user-id}/media para obtener información sobre los parámetros adicionales admitidos.

  • media_type: establecido en CAROUSEL. Indica que el contenedor es para una secuencia.
  • children: una matriz de hasta 10 identificadores de contenedor de cada imagen y video, que se espera que aparezca en la secuencia publicada. Las secuencias pueden tener un total de 10 imágenes y videos, o bien una combinación de ambos.

Ejemplo de solicitud

curl -i -X POST \

"https://graph.facebook.com/v19.0/90010177253934/media?caption=Fruit%20candies&media_type=CAROUSEL&children=17899506308402767%2C18193870522147812%2C17853844403701904&access_token=EAAOc..."

Ejemplo de respuesta

{
  "id": "18000748627392977"
}

Paso 3 de 3: Publicar el contenedor de secuencia

Usa el punto de conexión POST /{ig-user-id}/media_publish para publicar el contenedor de secuencia (una publicación por secuencia). Las cuentas pueden realizar un máximo de 50 publicaciones en un período de 24 horas. Publicar una secuencia cuenta como una única publicación.

POST /{ig-user-id}/media_publish

Parámetros

Los siguientes parámetros son obligatorios.

  • creation_id: el identificador del contenedor de secuencia.

Si la operación se realiza correctamente, la API devolverá un identificador del álbum de secuencias de contenido de Instagram.

Ejemplo de solicitud

curl -i -X POST \

"https://graph.facebook.com/v19.0/90010177253934/media_publish?creation_id=18000748627392977&access_token=EAAOc..."

Ejemplo de respuesta

{
  "id": "90010778390276"
}

Publicaciones en Reels

Los reels son videos cortos que pueden aparecer en la pestaña Reels de la app de Instagram si cumplen con determinadas especificaciones y los selecciona nuestro algoritmo. Si quieres publicar un reel, sigue los pasos que se usan para realizar una publicación de contenido multimedia único e incluye el parámetro media_type=REELS junto con la ruta del video y el parámetro video_url.

Si bien configuras media_type=REELS cuando publicas reels, estos no son un tipo de contenido multimedia. Si publicas un reel y luego solicitas el campo media_type de este, se devuelve el valor VIDEO. Para determinar si un video publicado se designó como reel, solicita el campo media_product_type.

Puedes utilizar el ejemplo de código en GitHub (insta_reels_publishing_api_sample) para obtener información sobre cómo publicar reels en Instagram.

Para ofrecer mayor comodidad a los desarrolladores, Meta publicó el conjunto completo de las llamadas a la API Graph de Instagram Reels en la plataforma de la API de Postman. Para obtener más información, consulta Colecciones de Postman para Facebook Reels e Instagram Reels.

Para obtener más información sobre los reels, consulta la documentación de reels para desarrolladores.

Publicaciones en la historia

Por el momento, solo las cuentas comerciales pueden publicar historias con la API de publicación de contenido.

Las historias son videos e imágenes que se publican como historias en Instagram. Si quieres publicar una historia, sigue los mismos pasos que se usan para realizar una publicación de contenido multimedia e incluye el parámetro media_type=STORIES junto con la ruta de la imagen o el video con el parámetro image_url o video_url.

Nota: Ten en cuenta que, si bien configuras media_type=STORIES cuando publicas historias, estas no son un nuevo tipo de contenido multimedia. Si publicas una historia y, luego, solicitas el campo media_type de esta, se devolverá el valor como IMAGE/VIDEO. Para determinar si una imagen o un video que se publicó se designó como historia, solicita el campo media_product_type.

Etiquetas de colaboradores

Puedes agregar usuarios públicos de Instagram como colaboradores a una imagen, una secuencia y un reel, y recibirán una invitación para ser colaboradores de ese contenido multimedia en particular. Para etiquetar usuarios en una imagen, sigue los pasos indicados en publicaciones solo de contenido multimedia, pero, cuando crees el contenedor de contenido multimedia, incluye el parámetro "collaborators" y una matriz de cadenas que indique los nombres de los usuarios de Instagram que quieres invitar a colaborar en el contenido multimedia.

Ejemplo de solicitud

POST graph.facebook.com/17841400008460056/media
?image_url=https://www.example.com/images/bronzed-fonzes.jpg
&caption=#BronzedFonzes!
&collaborators= [‘username1’,’username2’]

Notas

  • El valor de "collaborators" debe ser una matriz de cadenas.
  • Solo puedes etiquetar usuarios que tengan cuentas de Instagram públicas.
  • No puedes agregar más de 3 colaboradores a un contenido multimedia.
  • No es posible agregar colaboradores a contenido multimedia de Historias.

Etiquetas de ubicación

Puedes usar la API de búsqueda de páginas . Asegúrate de incluir el campo "location" en tu consulta para buscar páginas cuyos nombres coincidan con una cadena de búsqueda. Luego, analiza los resultados para identificar todas las páginas que se hayan creado para una ubicación física. Si incluyes un identificador de página cuando publicas una imagen o un video, este elemento se etiquetará con la ubicación asociada a esa página.

Limitaciones

A fin de ser apta para el etiquetado, una página debe tener datos de ubicación de latitud y longitud.

Verifica que la página que deseas utilizar tenga los datos de latitud y longitud en la respuesta. Si intentas crear un contenedor con una página que no tiene datos de ubicación, se producirá un error con la excepción INSTAGRAM_PLATFORM_API__INVALID_LOCATION_ID.

Una vez que tienes el identificador de la página, asígnalo al parámetro location_id cuando publiques el contenido multimedia único o los contenedores de elementos de secuencia.

Etiquetas de productos

Puedes hacer publicaciones de un solo contenido multimedia o publicaciones en secuencia etiquetadas con productos de Comprar en Instagram. Consulta la guía Etiquetado de productos para descubrir cómo hacerlo.

Etiquetas de usuario

Puedes etiquetar en una imagen a usuarios públicos de Instagram, quienes recibirán una notificación en la que se les indica que se los etiquetó.

Para etiquetar usuarios, sigue los pasos indicados en publicaciones solo de contenido multimedia, pero cuando crees el contenedor de contenido multimedia, incluye el parámetro user_tags y una matriz de objetos que indique a los usuarios de Instagram en la foto y sus coordenadas x/y dentro de la foto.

Ejemplo de solicitud

POST graph.facebook.com/17841400008460056/media ?image_url=https://www.example.com/images/bronzed-fonzes.jpg &caption=#BronzedFonzes! &user_tags= [ { username:'kevinhart4real', x: 0.5, y: 0.8 }, { username:'therock', x: 0.3, y: 0.2 } ] 

Devuelve un identificador de contenedor que publicarás luego mediante el punto de conexión Publicación de contenido multimedia de los usuarios de IG.

Notas

  • El valor de user_tags debe ser un conjunto de objetos en formato JSON.
  • Solo puedes etiquetar usuarios que tengan cuentas de Instagram públicas.
  • El objeto debe tener las tres propiedades (username, x e y) para cada usuario.
  • Los valores de x e y deben ser números float que se encuentren en un rango de 0.0 a 1.0. El origen de coordenadas está en la parte superior izquierda de la imagen.
  • Se pueden usar las etiquetas de usuario con las imágenes de las secuencias.

Solución de problemas

Si puedes crear un contenedor para un video, pero el punto de conexión POST /{ig-user-id}/media_publish no devuelve el identificador de contenido multimedia publicado, puedes conocer el estado de publicación del contenedor enviando una consulta al punto de conexión GET /{ig-container-id}?fields=status_code. Este punto de conexión devolverá uno de los siguientes resultados:

  • EXPIRED: el contenedor no se publicó en las últimas 24 horas y caducó.
  • ERROR: el contenedor no completó el proceso de publicación.
  • FINISHED: el contenedor y su objeto multimedia están listos para la publicación.
  • IN_PROGRESS: el contenedor todavía está atravesando el proceso de publicación.
  • PUBLISHED: el objeto multimedia del contenedor se publicó.

Recomendamos hacer consultas del estado de un contenedor una vez por minuto, durante no más de cinco minutos.

Errores

Consulta la referencia Códigos de error.