【24年最新】Instagram基本表示API(Basic Display API)の実装方法!

今回はInstagram基本表示API(Instagram Basic Display API)について、詳しく解説をしていきます。

  • Instagramの基本表示APIで何ができるか知りたい
  • 基本表示APIの実装方法が知りたい

といった方向けの記事になっています。

実際に使用しているソースコード付きで、注意点を踏まえて説明していきます。

このサイトではInstagramのAPIについて、網羅的に解説しています。
(ぜひブックマークなどして必要な時にみてください)

ページ 概要
InstagramAPIとは 基本的な情報やできること・できないこと(まず見てほしい)
APIセットアップ Instagram APIのセットアップ方法(実装するなら必須)
基本表示APIの実装方法(当記事) 自分のアカウントの投稿やプロフィール情報の取得方法
ビジネスディスカバリーAPIの実装方法 他人のアカウントの投稿やプロフィール情報の取得方法
ハッシュタグ検索する実装方法 特定のハッシュタグの投稿情報の取得方法
自動投稿をする方法 APIを使ってInstagram投稿をする方法

Instagram基本表示API(Instagram Basic Display API)について

Instagram基本表示APIは、自分のアカウントのプロフィール情報、投稿情報(画像・投稿文・いいね数など)を取得する際に使うAPIです。

自分のアカウントとは厳密には、APIを使う際に使うビジネスIDとトークンを取得したアカウントをさします。

行いたいことが、他人のアカウントの情報を取得したい・DM(メッセージ)情報を使いたい場合、他のAPIを使うことになるので注意が必要です。

InstagramのAPIの種類やそれぞれのできることは、下記の記事を参考にしてください。

【最新情報】InstagramのAPIとは?11個のできることを詳しく解説

2023年6月4日

Instagram基本表示APIを使ってみる

Instagram基本表示APIで、プロフィール情報と投稿情報を取得してみました。

なお実装イメージはApp Scriptで行ったものを添付しております。

アカウントプロフィール情報取得

自アカウントのプロフィール情報を取得するAPI、エンドポイント/{user-id}を使います。

公式ドキュメント

const instaBusinessId = 'みなさんのビジネスアカウントID';
const accessToken = 'みなさんのアクセストークン';


// InstagramAPIでハッシュタグIDを取得する
function instagramBasicDisplayApiProfile() {
 const url = `https://graph.facebook.com/v17.0/${instaBusinessId}/?fields=name,media_count,username,id,profile_picture_url&access_token=${accessToken}`;
 const response = instagramApi(url, 'GET', '');


 try {
  if (response) {
   const data = JSON.parse(response.getContentText());
   console.log(data);
   return data;
  } else {
   console.error('Instagram APIのリクエストでエラーが発生しました。');
   return null;
  }
 } catch (error) {
  console.error('Instagram APIのレスポンスの解析中にエラーが発生しました:', error);
  return null;
 }
}


// APIを叩く関数
function instagramApi(url, method, payload, accessToken) {
 try {
  const headers = {
  'Authorization': 'Bearer ' + accessToken
 };
 const options = {
  'method': method,
  'headers': headers,
  'payload': payload
 };

  const response = UrlFetchApp.fetch(url, options);
  return response;
 } catch (error) {
  console.error('Instagram APIのリクエスト中にエラーが発生しました:', error);
  return null;
 }
}
返却値のイメージは下記の通りです(データは加工してあります)。
{ name: 'アトリーチビズ', media_count: 2, username: 'atoreachbiz', id: '178437391636428', profile_picture_url: 'https://scontent-dfw5-2.xx.fbcdn.net/v/t51.2885-15/352412e47328479823749_n.jpg?_nc_cat=100&ccb=1-7&_nc_sid=86c713&_nc_ohc=DraIaYHslIEAX84a6zF&_nc_ht=scon' }

アカウントプロフィール情報取得

アカウントプロフィール情報取得APIでは、下記データが手に入ります。

  • account_type: ビジネス・クリエイター・個人アカウントどれかが分かる
  • id: 一意のアカウントID
  • media_count: 何投稿しているか
  • username: アカウントID
  • name: アカウント名(日本語でも付けられる方)※
  • profile_picture_url: プロフィール画像のURL ※

※公式ドキュメントに取得可能情報として載っていないため、今後取れなくなる可能性がございます。

InstagramAPIはドキュメントにない情報が取れる…

InstagramAPIでは、ドキュメントには書かれていない情報が取れたりもします。

添付したソースコードで取得可能なname と profile_picture_urlは、公式ドキュメントに載っていません。

この情報取れそうだな、この情報ならこんな変数だろうな〜と、取得情報に感で入れてみると情報が取れたりします。

ただいつ取れなくなるかはわからないので、注意は必要です。

投稿情報の取得

自分のアカウントの投稿情報(画像、投稿文、いいね数など)は、2ステップで取得ができます。

  1. 投稿ID一覧を取得する
  2. 投稿IDを使って投稿情報(画像、投稿文、いいね数など)を取得する

投稿にはそれぞれ一意のIDが振られており、まずはこのIDを取得することから始まります

投稿IDを取得

自アカウント投稿の投稿ID一覧を取得するAPI、エンドポイント/meを使います。

公式ドキュメント

const instaBusinessId = 'みなさんのビジネスアカウントID';
const accessToken = 'みなさんのアクセストークン';


// 投稿IDを取得する
function instagramBasicDisplayApiPostId() {

 const url = `https://graph.facebook.com/v17.0/${instaBusinessId}/media?fields=id&access_token=${accessToken}`;
 const response = instagramApi(url, 'GET', '');

 try {
  if (response) {
   const data = JSON.parse(response.getContentText());
   console.log(data);
   return data;
  } else {
   console.error('Instagram APIのリクエストでエラーが発生しました。');
   return null;
  }
 } catch (error) {
  console.error('Instagram APIのレスポンスの解析中にエラーが発生しました:', error);
  return null;
 }
}


// APIを叩く関数
function instagramApi(url, method, payload, accessToken) {
 try {
  const headers = {
  'Authorization': 'Bearer ' + accessToken
 };
 const options = {
 'method': method,
 'headers': headers,
 'payload': payload
 };

 const response = UrlFetchApp.fetch(url, options);
 return response;
 
 } catch (error) {
  console.error('Instagram APIのリクエスト中にエラーが発生しました:', error);
  return null;
 }
}

返却されるデータのイメージも添付しておきます。(データは加工してあります)

{ data: [ { id: '17347242374829' }, { id: '17185757384753' } ]  }

data内に該当のアカウントの全投稿idが入っています。(上記アカウントは2投稿しているので2つです。)

次の投稿情報取得には、このIDを使います。

メディア情報を取得

投稿IDを使って、メディア情報を取得して行きます。

const instaBusinessId = 'みなさんのビジネスアカウントID';
const accessToken = 'みなさんのアクセストークン';

function instagramBasicDisplayApiMediaInfo() {

 const mediaId = '17908718279703019'; //皆さんの投稿のIDを入れてください。もしくは連続処理をしてください。
 const url = `https://graph.facebook.com/v17.0/${mediaId}?fields=id,media_type,media_url,username,timestamp&access_token=${accessToken}`;
 const response = instagramApi(url, 'GET', '');

 try {
  if (response) {
   const data = JSON.parse(response.getContentText());
   console.log(data);
   return data;
  } else {
   console.error('Instagram APIのリクエストでエラーが発生しました。');
   return null;
  }
 } catch (error) {
  console.error('Instagram APIのレスポンスの解析中にエラーが発生しました:', error);
  return null;
 }
}

// APIを叩く関数
function instagramApi(url, method, payload, accessToken) {
 try {
  const headers = {
  'Authorization': 'Bearer ' + accessToken
 };
 const options = {
  'method': method,
  'headers': headers,
  'payload': payload
 };

  const response = UrlFetchApp.fetch(url, options);
  return response;
 } catch (error) {
  console.error('Instagram APIのリクエスト中にエラーが発生しました:', error);
  return null;
 }
}

投稿データとして取得できる情報

投稿データとして、取得できる情報は下記の通りです。

  • caption: 投稿文
  • id: メディアID
  • media_type: IMAGE(画像1枚の投稿)、VIDEO(動画1個の投稿)、CAROUSEL_ALBUM(2つ以上の画像か動画がある投稿)
  • permalink: 投稿URL(WEB上の投稿URL)
  • thumbnail_url: media_typeがVIDEOの時のみあるサムネ画像のURL
  • timestamp: 投稿日時
  • username: 投稿者(自アカウント)
  • media_url: 画像・動画のURL
  • children: 2枚目以降の画像・動画のURL(media_typeがIMAGE・VIDEOの時なし)

上記の中からほしい情報を、fieldsに入れていくことでデータが取得できます。

Instagram基本表示APIを使ってみよう!

Instagram基本表示APIでは、プロフィール系の情報と、投稿に関する情報が取得できます。

ただしビジネスIDとトークンを取得したアカウントでないと、使えないことに注意が必要です。

自分の投稿を取得して、HPに表示したいなどといった要望にぴったりなAPIなのでぜひ使ってみてください。

旅アトリーチでお客様の投稿を掲載!

弊社サービス、旅アトリーチを使うと、お客様のSNS投稿を簡単・安全に掲載できます

  • お客様のSNS投稿をHPで掲載したい
  • お客様のSNS投稿を増やしたい
  • 公式HPからの直予約率を上げたい

といった施設様、HP制作会社様などは、ぜひ一度ご連絡をください!

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

CAPTCHA