今回は、Graph APIを使うためアクセストークンを取得します。
3段階あるので、それぞれすべて取得します。
1段階目のアクセストークン取得
Meta for Developer の、上部メニューのツールから、「グラフAPIエクスプローラ」を選択。
右メニューで、それぞれ以下に設定。
- Facebookアプリ:前回記事で作成したアプリ名
- ユーザーまたはページ:トークンを取得
- アクセス許可:「許可を追加」を選択して、以下を追加
- business_management
- page_manage_* (adsなどいくつかあるが、全て)
そして、Generate Access Token ボタンを選択すると、トークンが作成されるので、メモ帳などに保存しておきます。
このトークンが、1段階目のアクセストークンとなります。
なおアクセストークンは古くなるので、その場合は同じ手順で最新のものを取得してください。
2段階目のアクセストークン
以下のURLにアクセスします。
https://graph.facebook.com/v4.0/oauth/access_token?grant_type=fb_exchange_token&client_id=【アプリID】&client_secret=【app secret】&fb_exchange_token=【1段階目のアクセストークン】
その際、前回の記事で取得した、アプリIDとapp secret、そして前述の項目で取得した1段階目アクセストークンを上記URLに当て込みます。
そうすると、以下のようなリクエストが返ってきます。
{“access_token”:”【アクセストークン】”,”token_type”:”xxxxx”,”expires_in”:xxxxx}
access_tokenの値が、2段階目のアクセストークンとなります。
3段階目のアクセストークン
まずは必要なIDを取得するために、以下のURLにアクセスします。
https://graph.facebook.com/v4.0/me?access_token=【2段階目のアクセストークン】
すると、以下のようなレスポンスが返ります。
{
"name": "xxxxx",
"id": "【ID】"
}
このレスポンスのid項目内にあるIDを取得して、次は以下URLにアクセスします。
https://graph.facebook.com/v4.0/【取得したID】/accounts?access_token=【2段階目のアクセストークン】
そうすると以下のようなレスポンスが返ります。
{
"data": [
{
"access_token": "【アクセストークン1】",
"category": "xxxxx",
"category_list": [xxxxx],
"name": "【ページ名1】",
"id": "xxxxx",
"tasks": [xxxxx]
},
{
"access_token": "【アクセストークン2】",
"category_list": [xxxxx],
"name": "【ページ名2】",
"id": "xxxxx",
"tasks": [xxxxx]
}
],
"paging": {
"cursors": {
"before": "xxxxx",
"after": "xxxxx"
}
}
}
data[]内に配列的に各ページのデータが入っているので、インスタと連携しているページのアクセストークンを保存します。これが、3段階目アクセストークンです。
なおその際、インスタと連携しているページがどれか判断する方法なのですが、name項目でページ名を確認します。
しかし日本語(などのマルチバイト文字)を含んだページ名である場合、unicodeでエンコードされているため、これをデコードしてページ名を確認します。
アクセストークンのチェック
3段階目のアクセストークンまで取得できたら、それが正しいかどうかを以下URLのアクセストークンデバッガーでチェックします。
上記アクセストークンデバッガーで、アクセストークンを入力し「デバッグ」を選択すると、アクセストークン情報が出てくるので、そこにスコープ等情報が出て来ればOKです。
インスタのビジネスアカウントIDを取得
GraphAPIエクスプローラで、パラメータを以下のように入力して「送信」を選択します。
me?fields=accounts{instagram_business_account,name}
{
"accounts": {
"data": [
{
"instagram_business_account": {
"id": "xxxxx"
},
"name": "ページ名1",
"id": "xxxxx"
},
{
"name": "ページ名2",
"id": "xxxxx"
}
],
"paging": {
"cursors": {
"before": "xxxxx",
"after": "xxxxx"
}
}
},
"id": "xxxxx"
}
name項目のページ名から、インスタを連携したページのinstagram_business_account
の値を確認し、これがインスタのビジネスアカウントIDとなります。
まとめ
これで、APIを実行する準備が出来ました。(記事にすると意外と長い。。。)
具体的には、API実行に必要な、第3段階アクセストークンとインスタのプロアカウントIDを取得できました。
次回の記事で、試しにAPIを実行してそのレスポンスを確認してみたいと思います。