Instagramの投稿をAPIで取得する方法

はじめに

WebサイトにInstagramの投稿を表示したい、というケースはよくあります。

例えば「最新投稿をトップページに出したい」「投稿内容の取得を自動化したい」といった要望です。

今回は、Instagram Graph APIを使って投稿を取得する方法を、アカウント準備から実際のAPI実行までを一通りまとめました。

少し手順が多いですが、一度構築すれば安定して運用できるのでぜひ参考にしてください。

前提条件

まず、この仕組みを使うにはいくつか前提があります。

  • Instagramアカウントは「ビジネス」または「クリエイター」であること。
  • Facebookアカウントを持っていること。
  • Facebookページを作成済みであること。

InstagramとFacebookのページを連携

FacbookのMeta Business Suiteを開いて、連携の設定をします。

アカウント>Instagramアカウントからアカウントを追加してください。

アカウント>ページでInstagramアカウントが含まれていれば連携ができています。

Meta for Developersでアプリ作成

次に、開発用のアプリを作成します。

1. Meta for Developersにアクセス

2. アプリ作成(ビジネス用途)

3. ユースケースでの「Instagramでメッセージとコンテンツ管理」で必要な権限(アクセス許可)を付与します。

  • instagram_business_basic
  • instagram_manage_comments
  • instagram_business_manage_messages

短期アクセストークンを取得

Graph API Explorerを使って、まずは短期トークンを取得します。

1.ユーザートークンを選択

2. 必要な権限にチェック

  • pages_show_list
  • business_management
  • instagram_basic
  • instagram_manage_comments
  • instagram_content_publish
  • instagram_manage_messages
  • pages_read_engagement

長期トークン(60日)を取得

短期トークンを長期トークンに変換します。

curl -i -X GET "https://graph.facebook.com/v24.0/oauth/access_token?grant_type=fb_exchange_token&client_id={アプリID}&client_secret={app secret}&fb_exchange_token={短期トークン}"

レスポンス例:

{
    "access_token": "EAAjV4c4Nzd4BQt0ULZBSgKPfd2DOZBOIWZCP41HInmvPcjEHXuH00ZA7HEGSddMvMtQ8mLEIsqWs6RBEk5T...",
    "token_type": "bearer",
    "expires_in": 5115019
}

レスポンスのaccess_tokenが長期トークンです。

無期限トークン(ページトークン)を取得

さらに、長期トークンから無期限トークンを取得します。

curl -i -X GET "https://graph.facebook.com/v24.0/me/accounts?access_token={長期トークン}"

レスポンスのaccess_tokenが無期限トークンです。

InstagramビジネスアカウントIDの取得

curl -i -X GET "https://graph.facebook.com/v24.0/me/accounts?fields=instagram_business_account&access_token={無期限トークン}"

レスポンス例:

{
  "data": [
    {
      "instagram_business_account": {
        "id": "178XXXXXXXXXXXXXX"
      }
    }
  ]
}

レスポンスのinstagram_business_accountのidがInstagramビジネスアカウントIDです。

Instagram投稿を取得

いよいよ投稿取得です。

curl -i -X GET "https://graph.facebook.com/v24.0/{InstagramビジネスアカウントID}/media?fields=id,caption,media_type,media_url,permalink,timestamp&access_token={無期限トークン}""

レスポンス例:

{
  "data": [
    {
      "id": "1810030XXXXXXXXXXX",
      "caption": "春のイベント",
      "media_type": "IMAGE",
      "media_url": "画像URL",
      "permalink": "投稿URL",
      "timestamp": "2026-04-17T06:17:48+0000"
    }
  ]
}

おわりに

手順が多く、特に最初のアカウント作成から連携は少し面倒です。
ただ、一度構築してしまえば安定して投稿を取得できるので、
WebサイトでのSNS投稿取得を自動化したい場合にはかなり有効です。
同じようにInstagram連携を考えている方の参考になれば嬉しいです。

 

記事を読んで興味を持った方はぜひコチラから↓