InstagramグラフAPIを利用して無期限アクセストークンを発行し、InstagramのビジネスアカウントIDなどのJSONデータを取得する
手順は以下の通り
- Instagramアカウントをビジネスアカウントに変更する。
- Facebookページ(無ければ作成)でInstagramアカウントをリンクする。
- Facebook開発者ツールを使って新たにアプリを作成する。
- Facebook開発者ツールでFacebookページの短期アクセストークンを取得する。
- 短期アクセストークンを使って長期アクセストークンを取得する。
- 長期アクセストークンを使って無期限アクセストークンを取得する。
- 無期限アクセストークンを使ってInstagramのビジネスアカウントIDなどのJSONデータを取得する。
注意点
- アクセストークンを取得するには、Instagramビジネスアカウントが紐付いたFacebookページの管理者権限を持っていることが必要
- 無期限アクセストークンの取得には3段階の手順(短期アクセストークンの取得、短期アクセストークンを使った長期アクセストークンの取得、長期アクセストークンを使った無期限アクセストークンの取得)が必要
- InstagramのビジネスアカウントIDは、「無期限アクセストークン」と「Instagramのアカウントが紐づいているFacebookページのID」が必要で、「グラフAPIエクスプローラ」で取得可能
1. Instagramアカウントをビジネスアカウントに変更する。
- Instagramアプリを開き、プロフィールページ右上のメニューボタンをタップする
- 「Settings」を選択する
- 「Account」を選択する
- メニューの下の方にある「Switch Account Type」を選択する
- 「Switch to Business Account」を選択する
- 注意:アカウントタイプの変更はInstagramアプリからのみ可能( 公式ヘルプ )
2. Facebookページ(無ければ作成)でInstagramアカウントをリンクする。
- Facebookページにアクセスし、「ページを管理メニュー」内の「設定」を選択する
- 「Instagram」を選択する
- 「アカウントをリンク」を選択し、Instagramアカウントを指定してリンクする
3. Facebook開発者ツールを使って新たにアプリを作成する。
- 「 マイアプリ 」にアクセスする
- 「アプリを作成」をクリックして新しいアプリを作成する
- アプリのタイプとして「ビジネス」を選択し、Instagram Graph API用のアプリを作成する
- 作成したアプリのAPIバージョンを確認する
- 作成したアプリのダッシュボードを開く
- 左メニューの「設定」を選択する
- 「詳細設定」を選択し、APIバージョンが確認できる
4. Facebook開発者ツールでFacebookページの短期アクセストークンを取得する。
短期アクセストークンを使って長期アクセストークンを取得する。
- https://developers.facebook.com から取得した短期アクセストークン, App ID, App Secretをフォームに入力し、ボタンを押下
- 短期アクセストークンを使って長期アクセストークンを取得する。
export api_ver=v17.0 export app_id=xxxxxxxxxxxxxxxxxxxx export app_secret=xxxxxxxxxxxxxxxx export fb_exchange_token=xxxxxxxxx echo "https://graph.facebook.com/${api_ver}/oauth/access_token?grant_type=fb_exchange_token&client_id=$app_id&client_secret=$app_secret&fb_exchange_token=$fb_exchange_token" # 表示されるURLへブラウザでアクセスする # 以下のような形式でトークンが取れる # {"access_token":"xxx","token_type":"bearer","expires_in":5183874}
長期アクセストークンを使って無期限アクセストークンを取得する。
export api_ver=v17.0 export long_token=xxxxxxxxxxxxxxxxxxxxxxxxx echo "https://graph.facebook.com/${api_ver}/me?access_token=$long_token" # 表示されるURLへブラウザでアクセスする # 以下のような形式でトークンが取れる # { # "data": [ # { # "access_token": "xxxxx", # "category": "xxxxx", # "category_list": [ # { # "id": "xxxxx", # "name": "xxxxx" # } # ], # "name": "xxxxx", # "id": "xxxxx", # "tasks": [ # "ADVERTISE", # "ANALYZE", # "CREATE_CONTENT", # "MESSAGING", # "MODERATE", # "MANAGE" # ] # } # ], # "paging": { # "cursors": { # "before": "xxxxx", # "after": "xxxxx" # } # } # }
無期限アクセストークンを使ってInstagramのビジネスアカウントIDを取得する。
export api_ver=v17.0 export long_token=xxxxxxxxxxxxxxxxxxxxxxxxx echo "https://graph.facebook.com/${api_ver}/me?fields=instagram_business_account&access_token=$long_token" # 表示されるURLへブラウザでアクセスする # 以下のような形式でInstagramのビジネスアカウントIDを取得する。 # { # "instagram_business_account": { # "id": "17841456177805490" # }, # "id": "106485662348753" # }