InstagramのフィードをAPIでサイトに組み込む方法4〜無期限アクセストークンを取得

前回はfacebookアプリをつくり、グラフAPIエクスプローラーでユーザーアクセストークンを取るところまでいきました。今回は6のプロアカウントIDの取得と、7の無期限アクセストークン取得をやってみたいと思います。
1. 大まかな流れ
- Instagramをプロアカウントにする
- facebookページを作成する
- facebookページとInstagramを連携する
- facebookアプリを作る
- グラフAPIエクスプローラーでユーザーアクセストークンを取る
- プロアカウントIDを取得する【←今回はここ】
- 無期限アクセストークンを取得する【←今回はここ】
- APIにアクセスして一覧を表示する
2. 短期トークンの取得
まずは「AppId」と「AppSecret」と「ユーザーアクセストークン」を使って「短期トークン」を取ります。これはAPIにはアクセスできるけど期限があるトークンみたいです。実用的ではないので、これをもとに無期限トークンを取ってそれを使うらしいのです。ということでまずは短期トークンを取得します。
以下のURLにそれぞれ3つの情報を当てはめてブラウザでアクセスしてみます。
ちなみにv16の部分はグラフAPIのバージョンなので、ブラウザからバージョンを確認して合わせる必要があるらしいですね。
https://graph.facebook.com/v16.0/oauth/access_token?grant_type=fb_exchange_token&client_id=アプリID&client_secret=app Secret&fb_exchange_token=ユーザーアクセストークン
↓こう返ってきました。
{"access_token":"短期トークンです。長ーーーーいトークンが実際には入っています。","token_type":"bearer"}
ここに入っているのが短期トークンですね。次はこのトークンをつかってプロアカウントIDを取得します。
3. プロアカウントIDの取得
こちらもグラフAPIのバージョンを合わせるのを忘れずに。
https://graph.facebook.com/v16.0/me?access_token=短期トークン
↓こんな感じで返ってきました
{
"name": "ユーザー名がユニコードで返ってくる",
"id": "00000000000000"
}
このidの長ーい数字がプロアカウントIDのようです。
4. 無期限アクセストークンの取得
いよいよ無期限トークンの取得です。短期アクセストークンとプロアカウントIDを使ってアクセスします。バージョンの指定チェックも忘れずに。
https://graph.facebook.com/v16.0/プロアカウントID/accounts?access_token=短期トークン
こんな感じで凄く長く返ってきました。
{
"data": [
{
"access_token": "無制限トークン",
"category": "カテゴリ",
"category_list": [
{
"id": "0000000000",
"name": "名前"
}
],
"name": "名前",
"id": "0000000000",
"tasks": [
"ADVERTISE",
"ANALYZE",
"CREATE_CONTENT",
"MESSAGING",
"MODERATE",
"MANAGE"
]
},
{
"access_token": "トークン",
"category": "カテゴリ",
"category_list": [
{
"id": "0000000000",
"name": "名前"
}
],
"name": "名前",
"id": "0000000000",
"tasks": [
"ADVERTISE",
"ANALYZE",
"CREATE_CONTENT",
"MESSAGING",
"MODERATE",
"MANAGE"
]
},
値は置き換えています。色々ありますが、一番上の「無制限アクセストークン」ってところにある長ーいトークンがそれのようです。
ようやく「プロアカウントID」と「無制限アクセストーク」がとれました!
これを使ってAPIにアクセスします。
5.トークンの確認
きちんと取れたかを「アクセストークンデバッガー」というツールで確認できるようです。念の為確認してみましょう。
https://developers.facebook.com/tools/debug/accesstoken/
ここにアクセスして、最後に撮った無制限アクセストークンを入れて「デバッグ」をクリックしてみます。
結果の表が出てきました。以下の項目が所定の値になっていればOKらしいです。
- タイプ:Page
- 有効期限:受け取らない
- 有効:True
- スコープ:pages_show_list, business_management, instagram_basic
やっとAPIにアクセスするための情報が揃いました。
次回は、これを使って実際にAPIからデータを取得して表示してみます。
今回は以上です!