以前gitに残したメモをWordPressにも記載
https://github.com/yu00sasaki/blog_stuff_public/blob/main/InstagramAPI/install.md
参考になったサイト
https://arrown-blog.com/instagram-graph-api/#Instagram_Graph_API
https://irokoto.co.jp/blog/20200606/post-11
前提条件
Facebookページを取得
Instaアカウントを取得
FacebookページとInstaアカウントを連携
方法
1., FacebookページでAppを作りInstagram APIをプロダクトに登録する
既に作成されている場合は管理者や開発者に含めてもらう
登録すると、左のメニューバーに表示される
アプリのIDとApp Secretが必要になるので設定ページからメモしておく
2., トークンを取得する
ここからが本題、3段階+αのトークンを取得していく
1段階目
グラフAPIのページで、アクセス許可に関するトークンを取得する
Facebookアプリ -> 今回開発するアプリ名
ユーザーまたはページ -> ユーザートークン
アクセス許可 -> 下の許可を追加より以下を選択する
pages_show_list,
business_management,
instagram_basic,
instagram_manage_comments,
instagram_manage_insights,
pages_read_engagement,
pages_manage_posts,
public_profile
選択したらGenerate Access Token
を押すことで上のText boxに1段階目トークンが出現するのでメモる
2段階目
グラフAPIに以下を投げる
oauth/access_token?grant_type=fb_exchange_token&client_id=<アプリID>&client_secret=<App Secret>&fb_exchange_token=<1段階目トークン>
上手くいくとJSONレスポンスが返却されるので2段階目トークンをメモる
{
"access_token": "2段階目トークン",
"token_type": "bearer",
"expires_in": 5184000
}
3段階目
2段階目トークンを用いて、FacebookIDをグラフAPIから取得する
me?access_token=<2段階目トークン>
上手くいくとJSONレスポンスが返却されるのでFacebookIDをメモる
{
"name": "自身の名前",
"id": "FacebookID"
}
FacebookIDと2段階目トークンを用いて3段階目トークンをグラフAPIから取得する
<FacebookID>/accounts?access_token=<2段階目トークン>
上手くいくとJSONレスポンスが返却される
{
"data": [
{
"access_token": "3段階目トークン",
---他ページ情報
}
]
}
3., Instagram情報を取得
3段階目トークンをグラフAPIのアクセストークン欄に入力し、InstagramIDをグラフAPIから取得する
me?fields=instagram_business_account
上手くいくとJSONレスポンスが返却される
{
"instagram_business_account": {
"id": "InstagramID"
},
"id": ""
}
InstagramID, 3段階目アクセストークン, Instagramアカウント名を用いてデータを取得する
<InstagramID>?fields=business_discovery.username(<Instagramaアカウント名>){id,followers_count,media_count,ig_id,media{caption,media_url,media_type,like_count,comments_count,timestamp,id}}&access_token=<3段階目アクセストークン>
トークンの永続化
トークンデバッガーページより2段階目トークンを入力
https://developers.facebook.com/tools/debug/accesstoken/
下の方にアクセストークンを延長
ボタンがあるのでクリック
もう一度、グラフAPIのページに戻り、2段階目トークンをグラフAPIのアクセストークン欄に入力し以下をAPIに投げる
me/accounts
上手くいくとJSONレスポンスが返却される
{
"data": [
{
"access_token": "3段階目永続化トークン",
---他ページ情報
}
]
}
コメント