10
8

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

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

Last updated at Posted at 2020-05-09

こんにちわ、さかぐち(@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)を使ってインスタグラムのフォロワー数を自動的に日々記録する

#スプレットシート作成

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

#スクリプト

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部分に指定できるパラメータは以下を参照ください。

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

#テスト

取得できました!
スクリーンショット_2020-05-09_17_24_40.png

赤枠のリンクをクリックし、いいね数があってることを確認しました。
スクリーンショット_2020-05-09_16_52_19.png

#最後に

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

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

10
8
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
10
8

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?