instagramのAPIって結局何ができるのか
instagramには執筆時点でbasic display apiとgraph apiの二種類のAPIが存在する。デートスポットの情報を自分に代わって収集してくれるアプリを作成する中でinstagramのAPIでできること、できないことが分かったので整理しておく。
■instagram basic display api(基本表示API)
ビジネスアカウント(やクリエーターアカウント)、消費者アカウント(一般のアカウントのこと)問わず、認証が完了したユーザ自身が投稿した画像やcaption(投稿の際に記載する文字)の情報を取得できる。
ユーザごとにアクセストークンが紐づく形であり、アクセストークンベースで取得を行うため、認証が完了したユーザがフォローしているユーザの投稿等は取得不可。
※例えばAさんが芸能人のBさんをフォローしており、Aさんのアクセストークンを取得してAさんのタイムラインに流れている投稿を取得するということはできない。あくまでAさん自身が投稿した情報にしかアクセスできない。
つまり取得したいユーザには逐一認証してもらう必要があるという何とも不便な仕様である。
※アプリのステータスがライブ・開発に問わず共通である。
またハッシュタグ検索もできない。
利用にはfacebook開発者アカウントの登録、アプリの登録が必要。下記公式ドキュメントに従って行うのが最もわかりやすい。
https://developers.facebook.com/docs/instagram-basic-display-api
■instagram graph api(グラフAPI)
ビジネスアカウント(やクリエーターアカウント)に限るが、ユーザ自身が投稿した画像やcaption(投稿の際に記載する文字)の情報をbasic diplay apiのように取得できる。
またinstagramの通常のアプリで行うようなハッシュタグの文言で検索をかけることができ、自身がフォローしているかに問わずハッシュタグ検索でヒットした画像や投稿の情報を取得できる。
ただしgraph apiは消費者アカウント(一般のアカウント)の情報に一切アクセスできない。つまりハッシュタグ検索でヒットする情報はビジネスアカウント(やクリエーターアカウント)の投稿のみである。
またハッシュタグ検索によりヒットした投稿の投稿者に関する情報も取得することはできない。
利用にはinstagramのビジネスアカウント、facebookページの登録、facebook開発者アカウントの登録、アプリの登録が必要である。graph apiの利用開始方法はインターネット上に情報が多数あるので、検索してほしい。
<おまけ>
デートスポットの収集には一般ユーザの投稿が最適であったが、不特定多数のユーザの投稿を収集することはできなかった。
また不適切な投稿を行うユーザをフィルタリングしようと試みたが、ハッシュタグ検索にてユーザ情報を収集することはできなかった。
最終的にはgraph apiを用いてビジネスアカウントの投稿を収集し、エクセルに集計するアプリとなった(当初の期待と比較して残念な結果となりましたが、成果物のリンクを記載しておきます)。
https://github.com/Shintaro-lab/instagram-hash-search-download.git