InstagramグラフAPIを利用して無期限アクセストークンを発行し、InstagramのビジネスアカウントIDなどのJSONデータを取得する

手順は以下の通り

  1. Instagramアカウントをビジネスアカウントに変更する。
  2. Facebookページ(無ければ作成)でInstagramアカウントをリンクする。
  3. Facebook開発者ツールを使って新たにアプリを作成する。
  4. Facebook開発者ツールでFacebookページの短期アクセストークンを取得する。
  5. 短期アクセストークンを使って長期アクセストークンを取得する。
  6. 長期アクセストークンを使って無期限アクセストークンを取得する。
  7. 無期限アクセストークンを使って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"
    # }