このドキュメントでは、アプリでInstagramグラフAPI呼び出して、Instagramビジネスオブジェクトやクリエイターアカウントのメディアオブジェクトを取得する方法について説明します。グラフAPIとFacebookログインを十分に理解していることと、REST API呼び出しの実行方法を知っていることを前提としています。まだアプリがない場合は、代わりにグラフAPIエクスプローラを使用できます。その場合は、ステップ1と2をスキップできます。
アプリダッシュボードで、アプリにFacebookログイン製品を追加します。
すべての設定はデフォルトのままで問題ありません。Facebookログインを手動で実装している場合(推奨されていません)、自分のredirect_uri
を[有効なOAuthリダイレクトURI]フィールドに入力します。FacebookのいずれかのSDKを使用する場合は、空白のままで問題ありません。
使用しているプラットフォームのFacebookログインドキュメントに従い、Facebookログインをアプリに実装します。実装をセットアップして、以下のアクセス許可をリクエストします。
Facebookログインを実装したら、Facebook開発者アカウントにサインインしていることを確認してから、アプリにアクセスしてFacebookログインモーダルをトリガーします。Facebook開発者アカウントは、クエリ対象のInstagramアカウントにリンクされたFacebookページでタスクを実行できる必要があります。
モーダルをトリガーしたら[OK]をクリックして、instagram_basic
アクセス許可とpages_show_list
アクセス許可をアプリに付与します。
APIによってユーザーアクセストークンが返されます。このトークンをキャプチャして、アプリが次のいくつかのクエリで使用できるようにします。グラフAPIエクスプローラを使用している場合、トークンは自動的にキャプチャされ、参照用に[アクセストークン]フィールドに表示されます。
GET /me/accounts
エンドポイントをクエリします(これはGET /{user-id}/accounts
に変換され、アクセストークンに基づいて、FacebookのユーザーノードにGET
が実行されます)。
curl -i -X GET \
"https://graph.facebook.com/v19.0
/me/accounts?access_token={access-token}"
これにより、現在のFacebookユーザーがMANAGE
、CREATE_CONTENT
、MODERATE
、またはADVERTISE
タスクを実行できるFacebookページのコレクションが返されます。
{ "data": [ { "access_token": "EAAJjmJ...", "category": "App Page", "category_list": [ { "id": "2301", "name": "App Page" } ], "name": "Metricsaurus", "id": "134895793791914", // capture the Page ID "tasks": [ "ANALYZE", "ADVERTISE", "MODERATE", "CREATE_CONTENT", "MANAGE" ] } ] }
クエリ対象のInstagramアカウントにリンクされているFacebookページのIDをキャプチャします。アプリユーザーは複数のページでタスクを実行できる場合があるため、最終的には、キャプチャする正しいページIDを決定できるロジックを導入する(または、アプリユーザーが正しいページを特定できるようなUIを考案する)必要があることに留意してください。
キャプチャしたページIDを使用して、GET /{page-id}?fields=instagram_business_account
エンドポイントをクエリします。
curl -i -X GET \
"https://graph.facebook.com/v19.0
/134895793791914?fields=instagram_business_account&access_token={access-token}"
これは、FacebookページにリンクされているInstagramビジネスアカウントまたはクリエイターアカウントのIGユーザーを返します。
{ "instagram_business_account": { "id": "17841405822304914" // Connected IG User ID }, "id": "134895793791914" // Facebook Page ID }
IGユーザー IDをキャプチャします。
キャプチャしたIGユーザー IDを使ってGET /{ig-user-id}/media
エンドポイントをクエリします。
curl -i -X GET \
"https://graph.facebook.com/v19.0
/17841405822304914/media?access_token={access-token}"
このクエリは、IGユーザーのすべてのIGメディアオブジェクトのIDを返すはずです。
{ "data": [ { "id": "17918195224117851" }, { "id": "17895695668004550" }, { "id": "17899305451014820" }, { "id": "17896450804038745" }, { "id": "17881042411086627" }, { "id": "17869102915168123" } ], "paging": { "cursors": { "before": "QVFIUkdGRXA2eHNNTUs4T1ZAXNGFxQTAtd3U4QjBLd1B2NXRMM1NkcnhqRFdBcEUzSDVJZATFoLWtXMWZAGU2VrRTk2RHVtTVlDckI2NjN0UERFa2JrUk4yMW13", "after": "QVFIUmlwbnFsM3N2cV9lZAFdCa0hDeV9qMVliT0VuMmJyNENxZA180c0t6VjFQVEJaTE9XV085aU92OUFLNFB6Szd2amo5aV9rTlVBcnNlWmEtMzYxcE1HSFR3" } } }
この最後のクエリを正常に実行できれば、任意のInstagramグラフAPIエンドポイントを使用してクエリを実行できるはずです。各エンドポイントでできることと、必要なアクセス許可については、Facebookの各種のガイドとリファレンスを参照してください。
アプリがライブモードになったら、アプリを利用可能にしたすべてのFacebookユーザーは、Instagramビジネスアカウントまたはクリエイターアカウントにリンクされているページでタスクを実行できるFacebookユーザーアカウントを所持している限り、そのInstagramビジネスアカウントまたはクリエイターアカウントのデータにアクセスできます。