InstagramグラフAPIでインスタグラムのアクセストークンとJSONデータを取得。
InstagramのアクセストークンとJSONデータを取得する方法のメモ。
各パラメーターなどは、InstagramグラフAPIの公式ドキュメントで確認。
- Instagramのアカウントをビジネスアカウントに変更。
- Facebookページ(無ければ作成)でInstagramアカウントをリンク。
- Facebook開発者ツールでアプリ作成。
- Facebook開発者ツールでFacebookページの短期アクセストークンを取得。
- 短期アクセストークンから長期アクセストークンを取得。
- 長期アクセストークンから無期限アクセストークンを取得。
- 無期限アクセストークンでInstagramのJSONデータを取得。
FacebookページとInstagramアカウントをリンク
Instagramのアカウントをビジネスアカウントに変更してから、FacebookページでInstagramアカウントをリンクさせる。
- Instagramのアカウントをビジネスアカウントに変更
Instagramアプリのプロフィールページ右上のメニューボタン > 「Settings」 > 「Account」 > 下の方にある「Switch Account Type」 > 「Switch to Business Account」を選択。
(アカウントタイプの変更はInstagramアプリ版からのみ可能。公式ヘルプ。) - FacebookページでInstagramアカウントをリンク
Facebookページ > 「ページを管理メニュー」内の「設定」 > 「Instagram」 > 「アカウントをリンク」でInstagramアカウントを指定してリンク。
Facebook開発者ツールでアプリ作成
Facebook開発者ツールの「マイアプリ」 > 「アプリを作成」でInstagram Graph API用のアプリを新規で作成する。
(作成したアプリのダッシュボードを開き、左メニューの「設定」 > 「詳細設定」でAPIバージョンが確認できる。)
グラフAPIエクスプローラでアクセストークンを取得
短期アクセストークンから長期アクセストークンを取得して、長期アクセストークンから無期限アクセストークンを取得する。
短期アクセストークンを取得
- 開発者ツールの「ツール」 > 「グラフAPIエクスプローラ」に行き、「Facebookアプリ」のプルダウンから該当のアプリ名を選択。
- 「ユーザーまたはページ」の項目の「トークンを取得」のプルダウンから「ユーザーアクセストークンを取得」を選択。
- 「アクセス許可」の項目で以下を選択。
(必要なアクセス許可はグラフAPI公式のアクセス許可のリファレンスを参照。)- 「public_profile」(デフォルト固定)
- 「business_management」
- 「pages_manage_metadata」
- 「pages_read_engagement」(デフォルト)
- 「pages_read_user_content」
- 「pages_show_list」(デフォルト)
- 「instagram_basic」
- 「instagram_manage_comments」
- 「instagram_manage_insights」
- 「Generate Access Token」をクリック。
- ポップアップの認証を許可して、「アクセストークン」のフォームにトークン (= 短期アクセストークン)が表示される。
長期アクセストークンを取得
- 表示された短期アクセストークンの左にある「i」をクリックして「アクセストークン情報」を開く。
- 下部の「アクセルトークンツールで開く」でアクセストークンデバッガーを開く。
- ブラウザの別タブで開かれたデバッガーページの下部へ行き、「アクセストークンを延長」をクリック。(パスワード認証が必要。)
- 長期アクセストークンが表示されるが、途中で表示が切れているので、すぐ右の「デバッグ」をクリック。
- ブラウザの別タブで更新されたデバッガーページが開き、フォーム内にトークン (= 長期アクセストークン)が全て表示される。
開発者ツールのアクセストークンデバッガーに行き、短期アクセストークンを直接コピペしてデバッグしても同じことが行える。
無期限アクセストークンを取得
- 開発者ツールの「グラフAPIエクスプローラ」に戻り、「アクセストークン」のフォームに長期アクセストークンを入力。
- HTTPメソッド「GET」、バージョン(最新バージョンを選択)「v9.0」、フォームに「me/accounts」と入力して「送信」ボタンをクリック。
- メインカラムに表示されたJSONデータのキー「”access_token”」の値が無期限アクセストークン。
- アクセストークンデバッガーで無期限アクセストークンをデバッグして「有効期限」が「 受け取らない」になっていることを確認。
JSONデータが表示されるカラムの下部にある「デバッグ情報をコピー」ボタンでコピーしてテキストエディターに貼り付ければ、リクエスト送信しているURLやパラメーター、レスポンスなどの詳細が確認できる。
※ 「https://graph.facebook.com/v9.0/me/accounts?access_token=長期アクセストークン」をブラウザで直接確認しても同じJSONデータが取得できる。
無期限アクセストークンでインスタグラムのアカウント情報を取得
「FacebookページのID」と「無期限アクセストークン」が必要。
アカウント情報で取得できる「fields」のパラメーターの公式リファレンス。
- 「グラフAPIエクスプローラ」で、「アクセストークン」のフォームに無期限アクセストークンを入力。
- HTTPメソッド「GET」、バージョン(最新バージョンを選択)「v9.0」、フォームに「me?fields=instagram_business_account{id,username,profile_picture_url,media_count,followers_count,follows_count,name,biography,website,ig_id}」と入力して「送信」ボタンをクリック。
- メインカラムに表示されたJSONデータのInstagramアカウント情報に間違いがなければ無期限アクセストークンを控えて作業終了。
PHPでアカウント情報のJSONデータを取得する場合。
$graphapi_url = 'https://graph.facebook.com/v9.0/'//バージョンに合わせて変更
$facebook_id = 'FacebookページのID';
$access_token = '無期限アクセストークン';
$data_url = $graphapi_url.$facebook_id.'?fields=instagram_business_account{id,ig_id,username,profile_picture_url,media_count,followers_count,follows_count,name,biography,website}&access_token='.$access_token;
id : インスタグラムビジネスアカウントのID。(instagram_business_id)
ig_id : インスタグラムアカウントのID。(instagram_id)
username : インスタグラムアカウント名のスラッグ。
name : インスタグラムアカウントの表示名。