#019
posted on 2021.01.15

InstagramグラフAPIでインスタグラムのアクセストークンとJSONデータを取得。

InstagramのアクセストークンとJSONデータを取得する方法のメモ。

 

各パラメーターなどは、InstagramグラフAPIの公式ドキュメントで確認。

 

  1. Instagramのアカウントをビジネスアカウントに変更。
  2. Facebookページ(無ければ作成)でInstagramアカウントをリンク。
  3. Facebook開発者ツールでアプリ作成。
  4. Facebook開発者ツールでFacebookページの短期アクセストークンを取得。
  5. 短期アクセストークンから長期アクセストークンを取得。
  6. 長期アクセストークンから無期限アクセストークンを取得。
  7. 無期限アクセストークンでInstagramのJSONデータを取得。

 

グラフAPIバージョン v9.0で検証。(グラフAPIのバージョン情報。)

 

 

FacebookページとInstagramアカウントをリンク

Instagramのアカウントをビジネスアカウントに変更してから、FacebookページでInstagramアカウントをリンクさせる。

  1. Instagramのアカウントをビジネスアカウントに変更
    Instagramアプリのプロフィールページ右上のメニューボタン > 「Settings」 > 「Account」 > 下の方にある「Switch Account Type」 > 「Switch to Business Account」を選択。
    (アカウントタイプの変更はInstagramアプリ版からのみ可能。公式ヘルプ。)
  2. FacebookページでInstagramアカウントをリンク
    Facebookページ > 「ページを管理メニュー」内の「設定」 > 「Instagram」 > 「アカウントをリンク」でInstagramアカウントを指定してリンク。

 

Facebook開発者ツールでアプリ作成

Facebook開発者ツールの「マイアプリ」 > 「アプリを作成」でInstagram Graph API用のアプリを新規で作成する。

(作成したアプリのダッシュボードを開き、左メニューの「設定」 > 「詳細設定」でAPIバージョンが確認できる。)

 

 

グラフAPIエクスプローラでアクセストークンを取得

短期アクセストークンから長期アクセストークンを取得して、長期アクセストークンから無期限アクセストークンを取得する。

 

短期アクセストークンを取得
  1. 開発者ツールの「ツール」 > 「グラフAPIエクスプローラ」に行き、「Facebookアプリ」のプルダウンから該当のアプリ名を選択。
  2. 「ユーザーまたはページ」の項目の「トークンを取得」のプルダウンから「ユーザーアクセストークンを取得」を選択。
  3. 「アクセス許可」の項目で以下を選択。
    (必要なアクセス許可はグラフ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」
  4. 「Generate Access Token」をクリック。
  5. ポップアップの認証を許可して、「アクセストークン」のフォームにトークン (= 短期アクセストークン)が表示される。

 

長期アクセストークンを取得
  1. 表示された短期アクセストークンの左にある「i」をクリックして「アクセストークン情報」を開く。
  2. 下部の「アクセルトークンツールで開く」でアクセストークンデバッガーを開く。
  3. ブラウザの別タブで開かれたデバッガーページの下部へ行き、「アクセストークンを延長」をクリック。(パスワード認証が必要。)
  4. 長期アクセストークンが表示されるが、途中で表示が切れているので、すぐ右の「デバッグ」をクリック。
  5. ブラウザの別タブで更新されたデバッガーページが開き、フォーム内にトークン (= 長期アクセストークン)が全て表示される。

開発者ツールのアクセストークンデバッガーに行き、短期アクセストークンを直接コピペしてデバッグしても同じことが行える。

 

 

無期限アクセストークンを取得
  1. 開発者ツールの「グラフAPIエクスプローラ」に戻り、「アクセストークン」のフォームに長期アクセストークンを入力。
  2. HTTPメソッド「GET」、バージョン(最新バージョンを選択)「v9.0」、フォームに「me/accounts」と入力して「送信」ボタンをクリック。
  3. メインカラムに表示されたJSONデータのキー「”access_token”」の値が無期限アクセストークン
  4. アクセストークンデバッガーで無期限アクセストークンをデバッグして「有効期限」が「 受け取らない」になっていることを確認。

JSONデータが表示されるカラムの下部にある「デバッグ情報をコピー」ボタンでコピーしてテキストエディターに貼り付ければ、リクエスト送信しているURLやパラメーター、レスポンスなどの詳細が確認できる。

 

※ 「https://graph.facebook.com/v9.0/me/accounts?access_token=長期アクセストークン」をブラウザで直接確認しても同じJSONデータが取得できる。

 

 

無期限アクセストークンでインスタグラムのアカウント情報を取得

「FacebookページのID」と「無期限アクセストークン」が必要。

 

アカウント情報で取得できる「fields」のパラメーターの公式リファレンス

  1. グラフAPIエクスプローラ」で、「アクセストークン」のフォームに無期限アクセストークンを入力。
  2. 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}」と入力して「送信」ボタンをクリック。
  3. メインカラムに表示された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 : インスタグラムアカウントの表示名。

 

 

この記事をシェア