Facebook Graph API を使用して Instagram の投稿を取得する方法の概要
Instagram の投稿情報は、Facebook の提供するグラフ API を用いて取得することができます。 Instagram 基本表示 API という、別の API を使用する方法もありますが、こちらはできることがグラフ API よりも絞られています。
今回紹介する方法は、こちらの公式ドキュメント Instagram グラフ API に記載されている内容を、ざっくり解釈したものです。詳細な内容ではなく、大筋をお伝えできればと思います。
API から値を取得の事前準備
各種アカウントの用意
- Facebook アカウント
- Facebook ページ (Instagram と紐付けるためのページ)
- Instagram プロアカウント (ビジネスアカウントとクリエイターアカウントのどちらでもよい)
Instagram の投稿を、Facebook Graph API 経由で取得するために、Facebook のアカウントと Instagram のアカウントを紐付けた状態にしておく必要があります。
Instagram アカウントはプロアカウントである必要があり、紐付ける先は Facebook ページであることに注意が必要です。
Meta For Developers への登録とアプリの作成
- Meta For Developers への登録
- Meta For Developers でアプリの作成
グラフ API を使用するためには、Meta For Developers への登録が必要になります。登録後に新しいアプリを作成し、用意されている Instagram グラフ API の製品追加することで API が使用できるようになります。
この後の工程の、ユーザーアクセストークンの延長を API で行う場合には、「app-id, app-secret」の値を使用するので、控えておく必要があります。
Instagram の投稿を取得するためのアクセストークンについて
グラフ API には複数種類のトークンが用意されています。有効期間も短期と長期があります。
今回は、取得したい Instagram の投稿は FB ページに紐付けされていますので、ページアクセストークンの短期、または長期トークンのいずれかが必要です。詳細は アクセストークンガイド を参照してください。
ページアクセストークンの取得の流れ
目的となる ページアクセストークン は、ユーザーアクセストークンを使用して取得します。
ユーザーアクセストークン は、Meta For Developers の グラフ API エクスプローラ 上で得ることができます。
ページアクセストークンの有効期間が長期のものが必要な場合、長期ユーザーアクセストークンが必要となります。ページトークンの有効期限は、取得の際の、ユーザーアクセストークンの期限によって変わります。
1. ユーザーアクセストークンを取得する
- Meta For Developers で作成したアプリのツールから、グラフ API エクスプローラを開く
- 作成したアプリを指定する
- アクセス許可に必要な許可を追加する
- 設定を確認し、トークンを生成すると、ユーザーアクセストークン(短期)が取得できる
必要なアクセス許可については、Instagram グラフ API で使用したい API によって違います。Instagram の投稿が取得したい場合、IG メディア の API リファレンスで確認ができます。
2. 長期ユーザーアクセストークンを取得する
- ページアクセストークンの期限が、短期で良い場合には不要
- エクスプローラ、もしくは API の呼び出しによって取得できる
エクスプローラから延長する場合、アクセストークンツールから操作します。エクスプローラの、トークンが表示されている入力欄付近にあるインフォメーションマークから、ツールの画面に遷移できます。
API を使用する場合は、長期アクセストークンを取得する(長期ユーザーアクセストークンの取得) に記載の通りです。
3. ページアクセストークンを取得する
この工程では、エクスプローラを使用すると設定をミスしやすいので、API の使用が良いと思います。 手順は次の通り。
- 下記 URL の
{long-lived-user-access-token}
を、2 で取得したトークンに置き換える。 - ブラウザで URL にアクセスする。(curl コマンドで GET してもよい)
https://graph.facebook.com/{graph-api-version}/{app-scoped-user-id}/accounts?access_token={long-lived-user-access-token}
詳細は長期アクセストークンを取得する(長期ページアクセストークンの取得) を参照のこと。
おわりに
簡潔にまとめたかったのですが、ずいぶんと長くなってしまいました。 Facebook Graph API は、かなりややこしく感じますが、はじめにトークンから理解するとすんなり進めるような気がします。