Twitter API でフォロー数/フォロワー数を取得して Google スプレッドシートへ追記するサンプルコード – Google Apps Script (GAS) 編

Twitter API でフォロー数/フォロワー数を取得して Google スプレッドシートへ追記する Google Apps Script (GAS) のサンプルコードをご紹介します。

Twitter 分析

背景 SocialDog 有料プラン解約

SocialDog を一ヶ月ほど使ってみたのですが、一部の機能しか使っておらず有料プランを解約しました。

自分の用途としては、Twitter アカウントのフォロワー数とフォロー数の日別の推移を追えるだけで充分だったので、Twitter API + GAS で Google スプレッドシートへ追記する処理を自前で実装しました。

前提知識

Twitter API GET /2/users/by/username/:username を利用します。

Twitter API でフォロー数/フォロワー数を取得して Google スプレッドシートへ追記する GAS サンプルコード

const TWITTER_USERNAME = PropertiesService.getScriptProperties().getProperty('TWITTER_USERNAME');
const TWITTER_API_BEARER_TOKEN = PropertiesService.getScriptProperties().getProperty('TWITTER_API_BEARER_TOKEN');
const GOOGLE_SHEET_ID = PropertiesService.getScriptProperties().getProperty('GOOGLE_SHEET_ID');

function getTwitterPublicMetrics(){
  const url = `https://api.twitter.com/2/users/by/username/${TWITTER_USERNAME}?user.fields=public_metrics`;
  const options = {
    method: 'get',
    headers: {
      authorization: `Bearer ${TWITTER_API_BEARER_TOKEN}`
    }
  };
  const response = JSON.parse(UrlFetchApp.fetch(url, options));

  const row = Object.values(response["data"]["public_metrics"]);
  const today = Utilities.formatDate(new Date(), 'JST', 'yyyy-MM-dd');
  row.unshift(today);

  const sheetName = 'シート1';
  const sheet = SpreadsheetApp.openById(GOOGLE_SHEET_ID).getSheetByName(sheetName);
  sheet.appendRow(row);
}

GAS サンプルコードの使い方

スプレッドシート作成

1行目に以下を追記します。

  • A列: 日付
  • B列: フォロワー数
  • C列: フォロー数
  • D列: 累積ツイート数
  • E列: リストに登録された数

GAS 作成

スプレッドシートのメニュー [拡張機能] – [Apps Script] から新規作成して、上記のサンプルコードをペーストします。

GAS トリガーを追加

毎日午後11時〜午前0時の間に1回定期実行されるようにトリガーを追加します。

以上、Twitter API + Google Apps Script でフォロー数/フォロワー数を取得して Google スプレッドシートへ追記した、現場からお送りしました。

参考情報