📚

【令和最新版】InstagramグラフAPIの使い方と複雑怪奇なアクセス手段について解説します

2023/12/14に公開

はじめに

はるか昔、年末年始に全世界で多くのユーザーにご利用いただいたサービス「2015bestnine」を開発していました。簡単に説明すると、2015年にInstagramに投稿した画像の中でもっともいいねがついた画像を9個取り出して、その9枚を並べて1つの画像にするというサービスです。
めちゃバズったわけですが、APIの利用に際して厳しい審査が必要になったり諸々の事情によりInstagram APIの仕様が変わり、今となってはこのサービスを運営することは出来ません。

そのような自分の経験から、Instagram APIを気軽に使えることはなくなったんだなーというイメージだけ持って今まで来てしまったのですが、最近ちょっと触る機会があり全然違うじゃん…!と反省したこともあり、、同じようなイメージを持たれている方に向けて書いてみたいと思います。
違うポイントはいくつかあるのですが、その中でもアクセストークンの取得方法が複雑怪奇でしたので、この記事が参考になると幸いです。

ちなみに令和最新版と冠を付けていますが、今回ご紹介する変更自体は令和2年に施行されたものであり、情報としてはほぼ正しいです。(情報としては!
令和5年12月現在で、特筆すべき変更が発生したわけではないことはご承知おきください。

Instagram APIに係る全体像

Instagramアプリ開発に取り掛かるにあたり、まず押さえておきたい全体像を理解していきましょう。
登場人物は主にこの御三方。

  • Facebookアプリ
  • アカウントタイプ
  • API

Facebookアプリ

まず大前提として、InstagramはFacebookによって提供されているため、Facebookがベースとなります。
そのため、Instagramを操作するにあたってはまずFacebookアプリの理解が必須となります。

Facebookアプリは、次の5+1種類に分類されます。

  • 消費者
  • ビジネス
  • インスタントゲーム
  • ゲームサービス
  • Workplace
  • なし(消費者+ビジネス)

Facebookアプリ、Facebook Graph APIについての説明は本記事では省略しますが、重要なのが「消費者」と「ビジネス」の違いになります。
消費者アプリは、Facebookログインのようなユーザー統合型のアプリを提供する目的で、ビジネスアプリは企業や組織が自身が管理するページなどを管理する目的で提供されます。
Instagramとしては、消費者アプリではInstagram基本表示API、ビジネスアプリではInstagramグラフAPIを利用可能となるため、まずここを正しく理解する必要があります。(APIについては後述)

アプリタイプ

アカウントタイプ

Instagramでは、一般ユーザーが使用する「個人アカウント」と企業やクリエイターが使用する「プロアカウント」に分類されます。更にプロアカウントはクリエイターとビジネスに分類されます。

クリエイターアカウントに対しては、インサイトで分析することが出来たり、広告やショップ、ビジネスアカウントとのタイアップ投稿が出来るなど、クリエイターとして収益を得るための仕組みが揃っています。また、アカウントを非公開にすることが出来ないという制約もあります。

Instagramでビジネスアカウントを設定する

API

最後にAPIですが、Instagramには2種類のAPIが存在します。

  • Instagram基本表示API
  • InstagramグラフAPI

これらはいずれもInstagramに対する操作を提供するものであり、Facebookアプリの項で示しているように、認証ソリューションとしてはFacebook Graph APIに依るものとなります。
すなわちこれらのAPIを用いてログインをすることは出来ず、Facebookログインにより認証情報を取得し、そのアプリタイプによって認可されるAPIが決まります。

Instagram基本表示API

Instagram基本表示APIは昔から存在するInstagram API(の一部)と同様です。
認証したユーザーのアクセストークンを使用して、プロフィール情報や、画像、動画、アルバムを取得する事ができます。
ユーザーに紐づく情報を取得するだけなので、このAPIを利用して投稿したり検索したりは出来ません。

Instagram基本表示API

InstagramグラフAPI

InstagramグラフAPIはFacebookグラフAPIをベースに構築されているため、Facebookアプリを開発したことがある方にとっては馴染みの深い形式で、実はこちらの方が使いやすい(使い慣れている)という方は多いのではないでしょうか。
ただし用途は限定的であり、Facebookアプリのユーザーが、 自身のInstagramプロアカウント にアクセスすることを許可します。
このAPIでは、自身のプロアカウントに対するメディアの取得や検索、他者のプロアカウントに関する基本メタデータと指標の取得や、スコープによっては投稿機能も提供されるものとなっており、個人アカウントに対しては使用することが出来ません。
ユーザー自身の基本プロフィール情報、写真等を取得する用途とは全くの別物となります。(その用途では基本表示APIを利用する)

InstagramグラフAPI

全体像まとめ

ここまで、Facebookアプリ、アカウントタイプ、APIの御三方に登場していただき全体像を紹介してきました。
ここからはInstagramグラフAPIを題材に、実際にどのようにアクセストークンを取得するのか、アクセストークンを用いてどのような情報を取得できるのか、実践的な内容を紹介していきます。
特にアクセストークンを入手するために複雑な手続きを必要としますが、全体像を把握することで、すんなりと理解することが出来ました。

InstagramグラフAPIの利用方法

それでは実際にInstagramグラフAPIを利用していきましょう。

取得可能な情報の種類

ここまで説明してきたように、InstagramグラフAPIは、クリエイターアカウントなどのプロアカウント専用ツールです。
InstagramグラフAPIを使用すると、以下のような機能にアクセスできます。

  • ビジネスディスカバリ: 他のビジネスアカウントやクリエイターアカウントに関する重要なメタデータや統計情報を取得できます。
  • コンテンツの公開: 写真やビデオを投稿できます。
  • コメントのモデレーション: コメントの返信や、無効化/有効化、削除、非表示を操作出来ます。
  • ハッシュタグ検索: 特定のハッシュタグが付けられた写真やビデオを検索できます。
  • ページインサイト: 自身のアカウントの各種指標を確認できます。

アクセストークンの取得方法

簡単に説明すると、次のステップを踏む必要があります。

  1. Instagramビジネスまたはクリエイターアカウントの所有
  2. 所有者が管理するFacebookページとの連携
  3. Facebookデベロッパーアカウントの作成と、Facebookアプリの登録
  4. Facebookログインの設定と、必要な許可の取得
  5. ユーザーアクセストークンの生成

具体的に見ていきましょう。

1~3については他の記事を参考に設定してみてください。
クリエイターアカウントとビジネスタイプのFacebookアプリを作成することが大事です。
Meta Business Suite (Facebook Business Manager)で管理すると楽です。

4と5に関しては、スタートガイドを読みつつ、Graph API Explorerで実行していきましょう。
スタートガイド
Graph API Explorer

最後に、スクリーンショットを参考に適切な権限を設定しつつ、ユーザーアクセストークンを取得します。

InstagramグラフAPIでハッシュタグからメディアリストを取得してみる

  1. FBページIDを取得(/me/accounts)
  2. FBページIDから紐づいているインスタグラムプロアカウントのIDを取得 (/{fb_page_id}?fields=instagram_business_account)
  3. インスタグラムプロアカウントIDを使って取得したいハッシュタグ(nature)のIDを取得 (/ig_hashtag_search?user_id={ig_user_id}q=nature)
  4. 取得したハッシュタグIDを用いてメディアリストを取得 (/{hashtag_id}/recent_media?user_id={ig_user_id}&fields=xxxx)

このように、インスタグラムプロアカウントのID (ig_user_id)を取得することで、InstagramグラフAPIにアクセスすることが出来ました。




おわりに

Instagramに触れなくなってから8年ぐらい経過していたのですが、以前と大きく変わっているものの、全体像としてはFacebook Graph APIを踏襲しておりスムーズに理解することが出来ました。
個人的に昔からGraph APIの思想は好きで自身の設計の際にも参照していたりしたのですが、Instagramも同様になっていたことで、本当に個人的に好感度が上がりました😆

ゲームエイトテックブログ

Discussion