今回はInstagram Graph APIを使ってフォロワー数を取得する処理について紹介したいと思います。
Contents
APIの使用条件とアクセストークンについて
まずInstagram Graph APIを使用するためには、該当インスタグラムアカウントがビジネスもしくはプロである必要があります。またInstagram Graph APIはFacebookから提供されているのでFacebookのアカウントも必要になります。取得方法や注意点については別の記事で説明しているのでそちらを参照してください
関連記事:【2023年版】Instagram Graph APIのアクセストークンを取得する方法
またAPIに関連する各種仕様は公式ドキュメントを参照してください。
Instagram Graph APIを使ってフォロワー数を取得する
プロフィールに関連するAPI機能はInstagram Graph APIの「business_discovery」というコンポーネントで提供されています。
公式ドキュメント:
https://developers.facebook.com/docs/instagram-api/reference/ig-user/business_discovery
フィールド拡張機能
ターゲットIGユーザーの公開フィールドを取得するフィールド拡張機能が使用できます。公開フィールドのリストについては、IGユーザーのリファレンスをご覧ください。
フィールド拡張機能を使用したリクエストの例
Instagram Business IGユーザー「Blue Bottle Coffee」に関するデータを取得し、フィールド拡張機能を使用してそのフォロワーとメディアの数をリクエストします。
GET graph.facebook.com /17841405309211844 ?fields=business_discovery.username(bluebottle){followers_count,media_count}
サンプルコード
以下がGASで記述したサンプルコードになります
// プロフィール情報を取得する function get_profile(user_id){ // const fields = 'media_count,username' api_url = encodeURI('https://graph.facebook.com/v3.2/'+ instagram_account_id + '?fields=business_discovery.username(' + user_id +'){followers_count,media_count}&access_token=' + access_token) response = UrlFetchApp.fetch(api_url) var result = JSON.parse(response.getContentText()); // レスポンスをjsonに変換する return result['business_discovery'] } function main(){ const access_token='xxx' // 無期限アクセストークン const instagram_account_id = "xxx" //インスタグラムの内部ID data = get_profile(user_id='<検索したいユーザーID(相手側がビジネスアカウントである場合のみ可能)>') console.log(data) }
実行すると以下のようなフォロワー数・投稿数・内部IDのレスポンスが返されます
<実行結果>
{ followers_count: xxx, media_count: xxx, id: xxx }
関連記事:【GAS】Instagram Graph APIを使って投稿ごとのインサイト情報を取得する
一応プロフィールのインサイトにフォロワー数も含まれますが、これの便利なところは対象アカウントを自分のインスタアカウント以外に指定しても使える点ですね。これで競合アカウントのフォロワー数や投稿数をAPI経由でスクレイピングできます
関連記事:【GAS】Instagram Graph APIを使ってプロフィール画面のインサイト情報を取得する
コメント