#019
posted on 2021.01.15

InstagramグラフAPIで無期限アクセストークンの発行とインスタグラムのビジネスアカウントIDを取得。

InstagramグラフAPIの無期限アクセストークンの発行と、InstagramのビジネスアカウントIDなどのJSONデータを取得する方法のメモ。

 

※ アクセストークンを取得するには、Instagramビジネスアカウントが紐付いたFacebookページの管理者権限を持った状態であることが必要。

 

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

 

  1. Instagramのアカウントをビジネスアカウントに変更。
  2. Facebookページ(無ければ作成)でInstagramアカウントをリンク。
  3. Facebook開発者ツールでアプリ作成。
  4. Facebook開発者ツールでFacebookページの短期アクセストークンを取得。
  5. 短期アクセストークンから長期アクセストークンを取得。
  6. 長期アクセストークンから無期限アクセストークンを取得。
  7. 無期限アクセストークンでInstagramのビジネスアカウントIDなどの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エクスプローラでアクセストークンを取得

無期限のアクセストークンを取得するには3段階の手順が必要。

  1. Fcebook開発者ツールで短期アクセストークンを取得。
  2. 短期アクセストークンを使って長期アクセストークンを取得。
  3. 長期アクセストークンを使って無期限アクセストークンを取得。

 

1. 短期アクセストークンを取得

  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. ポップアップの認証を許可して、「アクセストークン」のフォームにトークン (= 短期アクセストークン)が表示される。

 

2. 長期アクセストークンを取得

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

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

 

 

3. 無期限アクセストークンを取得

この時点で「管理者権限を持っているFacebookページ」の情報(アクセストークンを含む)のみ確認・閲覧できる。

  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データが取得できる。

 

 

インスタグラムのビジネスアカウントIDを取得

上記の「無期限アクセストークン」と、Instagramのアカウントが紐付いている「FacebookページのID」が必要。

(「FacebookページのID」の探し方はFacebookの公式ドキュメント参照。)

 

アカウント情報で取得できる「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. メインカラムにInstagramのアカウント情報のJSONデータが表示される。

「id」のパラメーター指定で取得される「instagram_business_id」の値がInstagramのビジネスアカウントID。

 

id : インスタグラムビジネスアカウントのID。(instagram_business_id)

ig_id : インスタグラムアカウントのID。(instagram_id)

username : インスタグラムアカウント名のスラッグ。

name : インスタグラムアカウントの表示名。

 

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;

 

 

この記事をシェア
この記事のURL

https://memo.ag2works.tokyo/post-723/

コピー
この記事のタイトル

InstagramグラフAPIで無期限アクセストークンの発行とインスタグラムのビジネスアカウントIDを取得。 | memo メモ [AG2WORKS]

コピー
この記事のリンクタグ

<a href="https://memo.ag2works.tokyo/post-723/" target="_blank" rel="noopener">InstagramグラフAPIで無期限アクセストークンの発行とインスタグラムのビジネスアカウントIDを取得。 | memo メモ [AG2WORKS]</a>

コピー
※ フィールドをクリックでコピーするテキストの編集ができます。

この記事へのコメント

コメントの書き込みはまだありません。

  • コメント内のタグはエスケープ処理され、文字列として出力されます。
  • セキュリティーのため、投稿者のIPアドレスは取得されます。
  • 管理者が内容を不適切と判断したコメントは削除されます。
  • このフォームにはスパム対策として、Googleの提供するreCAPTCHAシステムが導入されています。
    (Google Privacy Policy and Terms of Service.)