Após sua aquisição de alto perfil pelo Facebook em 2012, o Instagram adotou dois conjuntos de APIs para uso de terceiros. Estas são a API de gráfico do Instagram e a API de exibição básica do Instagram.
Como um desenvolvedor que cria um aplicativo que requer informações da conta autorizada do usuário no Instagram, sua escolha das duas APIs depende do escopo das informações que você deseja sobre o usuário.
Se você deseja apenas informações básicas de perfil sobre o usuário ou uma coleção de suas mídias (fotos, vídeos e álbuns) em sua conta, a API de exibição básica será suficiente.
No entanto, se você quiser obter dados, métricas e insights de interações de mídia social mais complexos sobre as contas de empresas e criadores do Instagram, precisará da API de gráfico do Instagram.
Neste tutorial, apresentarei uma ampla visão geral do que você pode fazer com os dois conjuntos de APIs e como começar.
Antes de você começar
Para usar a API do Instagram, você precisará primeiro criar e configurar um aplicativo OAuth no painel do aplicativo em sua conta de desenvolvedor do Facebook. Esse processo deve resultar na obtenção de um token de acesso à API que você usará em todas as solicitações à API.
Lembre-se de que existem dois guias diferentes para configurar as coisas:
- Se você quiser permissão para chamar a API do Instagram Graph com seu aplicativo, siga este guia
- Se você deseja permissão para ler informações básicas de perfil em uma conta do Instagram (também conhecida como API de exibição básica do Instagram), siga este guia.
Você também deve observar que sua capacidade de usar determinadas APIs pode depender das permissões definidas para cada token no painel do aplicativo. Por esse motivo, sugiro que você leia primeiro este artigo para ver qual permissão é necessária para cada tarefa.
Usando o token de acesso do seu aplicativo, você pode consultar a API com qualquer cliente HTTP de sua escolha.
API de exibição básica
Com a API de exibição básica do Instagram, você pode instruir os usuários do seu aplicativo a conceder permissão para obter informações básicas de perfil, fotos e vídeos em suas contas do Instagram. A API foi criada para usuários do Instagram não comerciais e não criadores.
O ponto final do usuário
O endpoint do usuário permite que você procure informações básicas sobre um usuário do Instagram com base em seu ID de usuário. Para usar essa API, sua solicitação deve incluir um token de acesso de usuário do Instagram e as seguintes permissões devem estar habilitadas em seu aplicativo Instagram OAuth:
instagram_graph_user_profile
-
instagram_graph_user_media
(isso é necessário apenas se você quiser que o usuáriomedia_count
incluído no objeto de resposta)
A sintaxe de solicitação para este endpoint é a seguinte.
GET https://graph.instagram.com/{api-version}/{user-id} ?fields={fields} &access_token={access-token}
-
api-version
(opcional): A versão da API, por exemplo, v14.0 (saiba mais sobre as versões aqui). O valor deve ser uma string. -
user-id
(obrigatório): O ID do usuário sobre o qual você deseja obter informações. O valor deve ser uma string. -
fields
(opcional): Uma lista delimitada por vírgulas dos campos e arestas que você deseja que sejam retornados pela API. Se omitido, os campos padrão serão retornados. -
access_token
(obrigatório): seu token de acesso à API. O valor deve ser uma string.
Observe que os campos com suporte para este endpoint são account_type
, id
, media_count
e username
. A imagem abaixo descreve o que cada um desses campos retorna.
Por exemplo, aqui está um exemplo de solicitação cURL:
curl -X GET 'https://graph.instagram.com/v14.0/10218560180051171?fields=id,username,media_count,account_type&access_token=IGQVJ...'
E aqui está o exemplo de resposta:
{ "id": "17841405793187218", "username": "ubahthebuilder", "media_count": 12, "account_type": "PERSONAL", }
O ponto final eu
O endpoint Me é um endpoint de atalho, pois permite que o usuário do Instagram que concedeu o token acesse diretamente sua conta. A API faz isso examinando primeiro o token de acesso do usuário do Instagram incluído na solicitação para determinar o ID do usuário do Instagram que concedeu o token e, em seguida, usando o ID para consultar o endpoint do usuário.
Aqui está a sintaxe da solicitação:
GET https://graph.instagram.com/v14.0/me ?fields={fields} &access_token={access-token}
Ele suporta os mesmos campos que o endpoint do usuário:
Sob o capô /me
é mapeado para /{user-id}
e o ID do usuário identificado pelo token de acesso será usado para concluir a consulta.
Em resumo, esse endpoint requer os mesmos escopos que o endpoint User, oferece suporte aos mesmos campos e retorna um objeto semelhante à resposta da API.
O ponto final da mídia
Com o endpoint de mídia, você pode recuperar informações sobre uma foto, vídeo ou álbum do Instagram por seu ID de mídia.
Aqui está a sintaxe da solicitação:
GET https://graph.instagram.com/{media-id} ?fields={fields} &access_token={access-token}
Os campos suportados para este endpoint são caption
, id
, media_type
, media_url
, username
, timestamp
, permalink
e thumbnail_url
. A imagem a seguir descreve o que cada um desses campos retorna.
Observe que este endpoint requer apenas o instagram_graph_user_media
permissão e retorna uma única mídia por seu ID de mídia (ou seja, retorna um objeto)
Por exemplo, aqui está um exemplo de solicitação cURL:
curl -X GET 'https://graph.instagram.com/13445686989093505?fields=id,media_type,media_url,username,timestamp&access_token=IGQVJ...'
E aqui está um exemplo de resposta:
{ "id": "13445686989093505", "media_type": "IMAGE", "media_url": "https://fb-s-b-a.akamaihd.net/...", "username": "ubahthebuilder" "timestamp": "2022-07-20T18:10:00+0000" }
Pontos de extremidade da borda
As bordas permitem que você obtenha informações adicionais para um usuário ou mídia do Instagram. Você pode solicitar uma borda como um parâmetro de caminho ou usando o parâmetro de string de consulta de campos.
A sintaxe para usar um parâmetro de caminho:
// Request an edge on User endpoint GET https://graph.instagram.com/{user-id}/{edge} ?fields={fields} &access_token={access-token} OR: // Request an edge on Media endpoint GET https://graph.instagram.com/{media-id}/{edge} ?fields={fields} &access_token={access-token}
Os endpoints de usuário e de mídia suportam uma borda cada.
A borda da mídia do usuário
Além das informações básicas do perfil, você também pode obter uma coleção de mídia em um usuário por meio do endpoint de borda User Media. No entanto, existem algumas limitações para isso que você deve ter em mente:
- O endpoint não oferece suporte a histórias.
- Também não suporta mídia usada em postagens promovidas.
- A API retorna no máximo 10K da mídia criada mais recentemente.
A sintaxe geral para este endpoint é a seguinte.
GET https://graph.instagram.com/{api-version}/{user-id}/media ?fields={fields}&access_token={access-token}
Em adição ao fields
e access_token
esse endpoint aceita os seguintes parâmetros de string de consulta:
Com esse conjunto de informações, você tem tudo o que precisa para encontrar uma mídia postada em um período específico em seu aplicativo.
Os campos suportados para este endpoint são caption
, id
, media_type
, media_url
, username
, timestamp
, permalink
e thumbnail_url
. A imagem a seguir descreve o que cada um desses campos retorna.
Aqui está um exemplo de solicitação cURL:
curl -X GET 'https://graph.instagram.com/v14.0/13445686989093505/media?fields=id,media_type,media_url,username,timestamp&access_token=IGQVJ...'
E aqui está o exemplo de resposta:
"data": [ { "id": "13445686989093505", "media_type": "IMAGE", "media_url": "https://fb-s-b-a.akamaihd.net/...", "username": "ubahthebuilder" "timestamp": "2022-07-20T18:10:00+0000" }, // other media items on the user account ], "paging": { "cursors": { "after": "MTAxN...", "before": "NDMyN..." }, "next": "https://graph.faceb..." } }
A borda das crianças da mídia
O endpoint de borda Media Children permite que você recupere uma coleção de imagens e mídia de vídeo em uma mídia de álbum.
Aqui está a sintaxe da solicitação:
GET https://graph.instagram.com/{media-id}/children ?access_token={access-token}
O ID de mídia representa o álbum cujos filhos você deseja recuperar. Esse endpoint usa o mesmo escopo OAuth que o endpoint de mídia e usa os mesmos campos. Os campos são descritos na imagem a seguir.
Aqui está um exemplo de solicitação cURL mesmo:
curl -X GET 'https://graph.instagram.com/17896450804038745/children?access_token=IGQVJ...'
E aqui está um exemplo de resposta:
"data": [ { "id": "13445686989093505", "media_type": "IMAGE", "media_url": "https://fb-s-b-a.akamaihd.net/...", "username": "ubahthebuilder" "timestamp": "2022-07-20T18:10:00+0000" }, // other media items on the user account ], "paging": { "cursors": { "after": "MTAxN...", "before": "NDMyN..." }, "next": "https://graph.faceb..." } }
A API de gráficos do Instagram
Com a API de exibição básica do Instagram, você pode instruir os usuários do seu aplicativo a conceder a você permissão para acessar dados em suas contas do Instagram Business e Creator. Isso inclui permissão para obter e publicar suas mídias, gerenciar e responder a comentários em suas mídias, identificar mídias nas quais foram @mencionados por outros usuários do Instagram, encontrar mídias com hashtags e obter metadados e métricas básicas.
Usuário do IG
O endpoint de usuário do IG permite que você procure informações detalhadas sobre uma conta comercial do Instagram ou usuário da conta de criador do Instagram.
Para usar a API de usuário do IG, você precisa incluir um token de acesso de usuário do Instagram na solicitação e ter os seguintes escopos OAuth ativados em seu aplicativo OAuth do Instagram:
- instagram_basic
- pages_read_engagement
- pages_show_list
- ads_management ou business_management (Se o usuário do aplicativo recebeu uma função na Página por meio do Gerenciador de Negócios)
-
catalog_management (caso pretenda solicitar o
shopping_product_tag_eligibility
campo para marcação de produtos) - instagram_shopping_tag_products (igual ao anterior)
A API também exige o seguinte por parte do usuário do aplicativo sobre o qual você pretende recuperar informações (Observação: isso só é necessário se você pretende solicitar o shopping_product_tag_eligibility
campo):
- Uma função de administrador no gerente de negócios que possui a loja do Instagram do usuário do IG
- Uma loja do Instagram aprovada com um catálogo de produtos contendo produtos
A sintaxe geral para isso é a seguinte.
GET https://graph.facebook.com/{api-version}/{ig-user-id} ?fields={fields} &access_token={access-token}
-
api-version
(opcional): A versão da API, por exemplo. v14. O valor deve ser uma string. -
user-id
(obrigatório): O ID de usuário do IG do usuário sobre o qual você deseja obter informações. O valor deve ser uma string. -
fields
(opcional): uma lista separada por vírgulas dos campos e arestas que você deseja que sejam retornados pela API. Se omitido, os campos padrão serão retornados. -
access_token
(obrigatório): seu token de acesso à API. O valor deve ser uma string.
Os campos suportados para este endpoint são biography
, id
, followers_count
, ig_id
, follows_count
, media_count
, name
, profile_picture_url
, shopping_product_tag_eligibility
, username
e website
. A imagem a seguir descreve o que cada um desses campos retorna.
Por exemplo, aqui está um exemplo de solicitação cURL dos documentos:
curl -X GET 'https://graph.facebook.com/v14.0/17841405822304914?fields=biography%2Cid%2Cusername%2Cwebsite&access_token=EAACwX...'
E aqui está o exemplo de resposta:
{ "biography": "Dino data crunching app", "id": "17841405822304914", "username": "metricsaurus", "website": "https://www.metricsaurus.com/" }
Além disso, o endpoint do usuário do IG oferece suporte a várias bordas que permitem que o aplicativo obtenha informações adicionais sobre a conta Business ou Creator. Essas arestas são descritas na imagem a seguir.
Para obter qualquer um desses dados, basta incluir o Edge correspondente como um parâmetro de caminho adicional para o endpoint do usuário do IG. Por exemplo, o seguinte endpoint obtém uma coleção de mídia em um usuário do IG:
GET https://graph.facebook.com/{api-version}/{ig-user-id}/media ?fields={fields} &access_token={access-token}
Outros endpoints na API de gráfico do Instagram
As APIs restantes para trabalhar com contas Business e Creator são:
-
IG Media: Isso permite que você recupere informações sobre uma foto, vídeo ou álbum do Instagram pelo ID de mídia do Instagram.
-
IG Hashtag: Isso permite que você recupere informações sobre uma determinada hashtag do Instagram.
-
IG Hashtag Search: Esta borda raiz permite que você obtenha IDs de hashtag do Instagram.
-
Contêiner IG: permite que você recupere informações sobre o status de publicação de um contêiner de mídia. Um contêiner de mídia é usado para publicar uma postagem no Instagram.
-
Comentários IG: Isso permite que você recupere comentários em uma mídia pelo ID de comentário do Instagram. As informações retornadas da API incluem respostas ao comentário, contagem de curtidas e texto do comentário.
Observe que cada um desses endpoints de API pode exigir diferentes permissões de escopo OAuth em seu aplicativo do Instagram, oferecer suporte a uma combinação diferente de campos e bordas ou ter certas limitações impostas ao seu uso. Como tal, certifique-se de ler a documentação completa para maior clareza.
Quais plataformas a API do Instagram suporta?
Você pode acessar a API do Instagram com qualquer plataforma ou linguagem de programação usando seus endpoints REST.
A maioria das linguagens de programação vem com uma API de cliente HTTP integrada ou uma biblioteca de terceiros para fazer solicitações de API. Exemplos são axios (Node.js), Net:HTTP (Ruby), solicitações (Python) e guzzlehttp/guzzle (PHP).
Qual é o próximo?
Espero que você esteja curioso para começar a usar a API do Instagram. Para começar, basta criar uma conta de desenvolvedor do Facebook, consultar o guia de introdução para obter instruções sobre como recuperar seu token de API e começar a consultar a API!