InstagramグラフAPIで無期限アクセストークンの発行とインスタグラムのビジネスアカウントIDを取得。
InstagramグラフAPIの無期限アクセストークンの発行と、InstagramのビジネスアカウントIDなどのJSONデータを取得する方法のメモ。
※ アクセストークンを取得するには、Instagramビジネスアカウントが紐付いたFacebookページの管理者権限を持った状態であることが必要。
各パラメーターなどは、InstagramグラフAPIの公式ドキュメントで確認。
- Instagramのアカウントをビジネスアカウントに変更。
- Facebookページ(無ければ作成)でInstagramアカウントをリンク。
- Facebook開発者ツールでアプリ作成。
- Facebook開発者ツールでFacebookページの短期アクセストークンを取得。
- 短期アクセストークンから長期アクセストークンを取得。
- 長期アクセストークンから無期限アクセストークンを取得。
- 無期限アクセストークンでInstagramのビジネスアカウントIDなどの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エクスプローラでアクセストークンを取得
無期限のアクセストークンを取得するには3段階の手順が必要。
- Fcebook開発者ツールで短期アクセストークンを取得。
- 短期アクセストークンを使って長期アクセストークンを取得。
- 長期アクセストークンを使って無期限アクセストークンを取得。
1. 短期アクセストークンを取得
- 開発者ツールの「ツール」 > 「グラフ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」をクリック。
- ポップアップの認証を許可して、「アクセストークン」のフォームにトークン (= 短期アクセストークン)が表示される。
2. 長期アクセストークンを取得
- 表示された短期アクセストークンの左にある「i」をクリックして「アクセストークン情報」を開く。
- 下部の「アクセルトークンツールで開く」でアクセストークンデバッガーを開く。
- ブラウザの別タブで開かれたデバッガーページの下部へ行き、「アクセストークンを延長」をクリック。(パスワード認証が必要。)
- 長期アクセストークンが表示されるが、途中で表示が切れているので、すぐ右にある「デバッグ」をクリック。
- ブラウザの別タブで更新されたデバッガーページが開かれ、フォーム内にトークン (= 長期アクセストークン)が全て表示される。
※ 開発者ツールのアクセストークンデバッガーに行き、短期アクセストークンを直接コピペしてデバッグしても同じことが行える。
3. 無期限アクセストークンを取得
この時点で「管理者権限を持っているFacebookページ」の情報(アクセストークンを含む)のみ確認・閲覧できる。
- 開発者ツールの「グラフAPIエクスプローラ」に戻り、「アクセストークン」のフォームに長期アクセストークンを入力。
- HTTPメソッド「GET」、バージョン「v9.0」(最新バージョンを選択)、フォームに「me/accounts」と入力して「送信」ボタンをクリック。
- メインカラムに表示されたJSONデータのキー名「”access_token”」の値が無期限アクセストークン。
- アクセストークンデバッガーで無期限アクセストークンをデバッグして「有効期限」が「 受け取らない」になっていることを確認。
JSONデータが表示されるカラムの下部にある「デバッグ情報をコピー」ボタンでコピーしてテキストエディターに貼り付ければ、リクエスト送信しているURLやパラメーター、レスポンスなどの詳細が確認できる。
※ 「https://graph.facebook.com/v9.0/me/accounts?access_token=長期アクセストークン」をブラウザで直接確認しても同じJSONデータが取得できる。
インスタグラムのビジネスアカウントIDを取得
上記の「無期限アクセストークン」と、Instagramのアカウントが紐付いている「FacebookページのID」が必要。
(「FacebookページのID」の探し方はFacebookの公式ドキュメント参照。)
アカウント情報で取得できる「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}」と入力して「送信」ボタンをクリック。
- メインカラムに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;
- Instagram Graph API を使ってみた
- Instagram Graph API(Ver8.0更新…。)
- Instagram Graph API v6.0 を使ってインスタの投稿を埋め込む方法
- インスタグラムの投稿画像をWebサイトに埋め込んで表示させる方法(Instagram Graph API)※ 2020年7月以降の対応
- 有効期限が無期限のFacebookページアクセストークンの取得方法
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>
この記事へのコメント
コメントの書き込みはまだありません。