【GAS】Instagram Graph APIを利用して投稿毎のいいね数を取得する


こんにちわ、さかぐち(@sakaguchi_mamii)です。

我が家ではハムスターを飼っています。
Instagramで我が子自慢をしているのですが、どの投稿が反応がいいのか管理したくなる!
とはいえ、投稿毎に「いいね」を確認するのは手間なので、GASとInstagram Graph APIを利用して自動でスプレットシートに記録してきます。

Instagram Graph APIを実行する準備

Instagram Graph APIには以下の手順が必要です。

  • Instagramをプロアカウントに切り替え
  • Facebookページ作成
  • 1つ目のアカウントトークン取得
  • 2つ目のアカウントトークン取得
  • 3つ目のアカウントトークン取得
  • API実行

大変でした!笑

以下のページで丁寧に解説してありますので、参照ください。

Instagram Graph APIとGAS(Google Apps Script)を使ってインスタグラムのフォロワー数を自動的に日々記録する

スプレットシート作成

取得したデータ記録用にスプレットシートを準備します。(シート名:投稿別)
※スクリプト内でシート名を指定し記録処理を実行します。

スクリプト

IGメディアオブジェクトのメタデータを取得します。(リファレンス
GET /{ig-media-id}?fields={fields}

function myFunction() {

  var instragramID = 'InstagramのビジネスアカウントID';
  var ACCESS_TOKEN = "3つ目のアクセストークン";

  var num = 100; // 取得件数
  var facebook_url = 'https://graph.facebook.com/v7.0/' + instragramID + '?fields=media.limit(' + num + '){timestamp,like_count,media_type,permalink}&access_token=' + ACCESS_TOKEN;

  var encodedURI = encodeURI(facebook_url);
  var response = UrlFetchApp.fetch(encodedURI);
  var jsonData = JSON.parse(response);

  // スプレットシート読み込み
  var ss = SpreadsheetApp.getActiveSpreadsheet();
  var sheet = ss.getSheetByName('投稿別');
  var sheet_row = 2; // スプレットシートの開始行(2行目から)

  // 取得したデータの分だけくり返し
  for(var i=0; i<jsonData['media']['data'].length; i++){
    var timestamp = jsonData['media']['data'][i]['timestamp']; // 投稿日時
    var like_count = jsonData['media']['data'][i]['like_count']; // いいね数
    var media_type = jsonData['media']['data'][i]['media_type']; // メディア種別
    var permalink = jsonData['media']['data'][i]['permalink']; // リンク
    sheet.getRange(sheet_row,1).setValue(Utilities.formatDate(new Date(timestamp), 'Asia/Tokyo','yyyy/MM/dd HH:mm:ss'));
    sheet.getRange(sheet_row,2).setValue(like_count);
    sheet.getRange(sheet_row,3).setValue(media_type);
    sheet.getRange(sheet_row,4).setValue(permalink);
    sheet_row++;
  }

}

timestamp,like_count,media_type,permalink部分に指定できるパラメータは以下を参照ください。

リファレンス - 値が返されるフィールド

テスト

取得できました!

赤枠のリンクをクリックし、いいね数があってることを確認しました。

最後に

Instagramは最近始めたばかりなので、今回取得した結果を分析し「いい感じに」運用していこうと思います。

※投稿内容は所属組織とは一切関係ありません。