Incorporar uma publicação do Instagram

Consulte o ponto de extremidade oEmbed do Instagram para obter um HTML incorporado de uma publicação do Instagram e os metadados básicos para exibi-la em outro site ou app. Compatível com publicações de foto, vídeo, reel e feed.

Visite a Central de Ajuda do Instagram para saber como obter o código de incorporação de uma publicação ou perfil público do Instagram.

Usos comuns

  • Incorporar uma publicação em um blog
  • Incorporar uma publicação em um site
  • Renderizar uma publicação em um sistema de gerenciamento de conteúdo
  • Renderizar uma publicação em um app de mensagens

Requisitos

Este guia presume que você seja um desenvolvedor registrado da Meta e tenha criado um app da Meta.

Você precisará do seguinte:

Níveis de acesso

Tokens de acesso

URL de base

Todos os pontos de extremidade podem ser acessados por meio do host graph.facebook.com.

Pontos de extremidade

Recursos

Limitações

  • O ponto de extremidade oEmbed do Instagram deve ser usado somente para incorporar conteúdo do Instagram em sites e apps. Ele não deve ser usado para nenhum outro propósito. O uso de metadados e conteúdo de páginas, publicações ou vídeos (ou derivados) do ponto de extremidade para qualquer propósito que não o fornecimento de visualização de front-end da página, da publicação ou do vídeo em questão é estritamente proibido. Essa proibição engloba o consumo, a manipulação, a extração ou a persistência de metadados e conteúdo, incluindo, entre outros, obter informações sobre Páginas, publicações e vídeos a partir dos metadados para fins de análise.
  • As publicações em contas do Instagram privadas, inativas e com restrição de idade não são compatíveis.
  • As contas com incorporações desabilitadas não são compatíveis.
  • Não há suporte para stories.
  • Não há compatibilidade com Shadow DOM.

Limites de volume

Os limites de volume dependem do tipo de token de acesso que seu app inclui em cada solicitação.

Limites de volume do token do app

Os apps que dependem de tokens de acesso do app podem fazer até 5 milhões de solicitações em 24 horas.

Limites de volume do token de cliente

Os limites de volume do token de cliente são mais baixos do que os do token do app. Não revelamos o limite real, pois ele muda dependendo da atividade do app. Contudo, você pode supor que seu app não alcançará o limite a menos que ele apresente comportamento similar a um bot, como fazer milhares de solicitações em lote ou enviar milhares de solicitações por agente ou usuário.

Obter um HTML incorporado

É possível obter um HTML incorporado de forma programática ou no app do Instagram.

Para obter o HTML incorporado de uma publicação do Instagram de forma programática, envie uma solicitação para:

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

Substitua <URL_OF_THE_POST> pelo URL da publicação do Instagram que você deseja consultar e <ACCESS_TOKEN> pelo token de acesso do cliente ou app ou transmita-o em um cabeçalho HTTP Authorization.

Authorization: Bearer <ACCESS_TOKEN>

Caso esteja usando um token de acesso do cliente, combine esse token com o ID do app da Meta usando um símbolo de barra. Se isso não for feito, a solicitação resultará em falha.

Caso a solicitação seja bem-sucedida, a API responderá com um objeto JSON contendo o HTML incorporado da publicação e dados adicionais. O HTML incorporado será atribuído à propriedade html.

Consulte a referência do oEmbed do Instagram para ver uma lista dos parâmetros da string de consulta que você pode incluir para aumentar a solicitação. Além disso, é possível incluir o parâmetro da string de consulta fields para especificar os campos a serem retornados. Caso ele seja omitido, todos os campos padrão serão incluídos na resposta.

Exemplos de solicitação

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"

Exemplo de resposta

Alguns valores foram reduzidos com reticências (...) para facilitar a leitura.

{
  "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

O parâmetro da string de consulta url aceita os seguintes 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}

Incorporar JS

O HTML incorporado contém uma referência à biblioteca de JavaScript embed.js do Instagram. Quando carregar, a biblioteca buscará o HTML da publicação na página e gerará a publicação renderizada. Se você quiser carregar a biblioteca separadamente, inclua o parâmetro da string de consulta omitscript=true na solicitação. Para inicializar manualmente o HTML incorporado, chame a função instgrm.Embeds.process() depois de carregar a biblioteca.

Tamanho da publicação

A publicação incorporada é responsiva e se adapta ao tamanho do contêiner. Isso significa que a altura variará dependendo da largura do contêiner e do comprimento da legenda. Você pode definir a largura máxima incluindo o parâmetro da string de consulta maxwidth na solicitação.

Obter miniaturas

Recomendamos que você renderize todo o HTML incorporado da publicação sempre que possível. Se você não conseguir fazer isso, pode obter a URL da imagem de miniatura de uma publicação e renderizá-la. No entanto, se fizer isso, você precisará informar a atribuição de modo claro próxima à imagem, incluindo a atribuição ao autor original e ao Instagram, além de um link para a publicação do Instagram que está consultando.

Para obter o URL da miniatura e a atribuição de uma publicação, envie uma solicitação para:

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

Substitua <URL_OF_THE_POST> pelo URL da publicação do Instagram que deseja consultar, <MAX_WIDTH> pelo tamanho máximo da miniatura que deseja renderizar e <ACCESS_TOKEN> pelo token de acesso do cliente ou app.

Exemplo de solicitação

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..."

Exemplo de resposta

Alguns valores foram reduzidos com reticências (...) para facilitar a leitura.

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

Envio para análise do app

Quando você envia seu app para análise, no campo do formulário Diga-nos por qual motivo você está solicitando Oembed Read > Forneça uma URL onde possamos testar o Oembed Read, use o ponto de extremidade do oEmbed do Instagram para obter o HTML incorporado para qualquer publicação aberta nas páginas do Página do Facebook ou Instagram oficiais. Depois, adicione o HTML incorporado retornado ao local onde o conteúdo do oEmbed será exibido e insira o URL dessa página no campo de formulário.

Depois de receber a aprovação para o recurso oEmbed Read, você poderá incorporar páginas, publicações ou vídeos usando os respectivos URLs.