【Twitter】フォロー数・フォロワー数の自動定期取得&Googleスプレッドシートへのデータ蓄積

Others

Twitter APIGoogle Apps Script(GAS)を用いて、自身のTwitterのフォロー数、フォロワー数、ツイート数を自動的に定期取得し、Googleスプレッドシートにデータ保存をできるようにしました。他の方の参考になればと、その方法をまとめたいと思います。

SocialDogでもフォロワー数、フォロー数の推移を取得しているのですが、分析可能期間が無料プランだと3ヶ月(有料プランだと1年)となっています。そのため、長期データ分析には自身でデータ取得しておいた方がよいと考えました。もし分析期間は3ヶ月もしくは1年で十分という方、予約投稿やキーワードモニタリングしたい方などは、SocialDogの利用がオススメです。

事前準備

「Twitter API KeyとTokenの取得」「Googleサービスアカウントの作成」が必要です。下記に画像付で詳細手順を記載していますので、ご参照ください。

Google Apps Script(GAS)でTwitterフォロー数などの取得

① Googleスプレッドシートの新規作成

データ蓄積用のスプレッドシートを新規作成します。名前は適当でOK。

過去のフォロー数、フォロワー数の推移はTwitter API経由で取得できないので、SocialDogを利用している方は、SocialDogからこれまでのフォロー数、フォロワー数をスプレッドシートに移しておきます。フォーマットは下記のような形にします。カラム名は自由に設定OKですが、順番は下記のようにしておいてください。

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

② スプレッドシートをサービスアカウントに共有

スプレッドシートの右上の”共有“を選択。

サービスアカウントのアドレスを入力し、”編集者“に設定、”共有“をクリック。

③ Google Apps Script(GAS)の新規作成

スプレッドシートの”拡張機能“から”Apps Script“を選択。

Google Apps Scriptの画面が開くので、”プロジェクト名“、”ファイル名“を適当に修正。(修正しなくてもOK)

スクリプトは下記のように書く。

function getFollowersCount(){
  //Twitter APIでフォロー数などの取得
  var url = "https://api.twitter.com/2/users/by/username/[Twitter ID]?user.fields=public_metrics";
  var options = {
    "method": "get",
    "headers": {
      "authorization": "Bearer [Twitter Token]"
    },
  };
  var response = JSON.parse(UrlFetchApp.fetch(url, options));

  //今日の日付を取得
  let today = new Date();
  today = Utilities.formatDate(today,"JST", "yyyy-MM-dd");

  //スプレッドシートに保存するための配列の作成
  var addArray = Object.values(response["data"]["public_metrics"]);
  addArray.unshift(today);

  //スプレッドシートにデータを追加
  const sheet_id = '[spreadsheet ID]'
  const sheet_name = 'Sheet1'
  const sheet = SpreadsheetApp.openById(sheet_id).getSheetByName(sheet_name);
  sheet.appendRow(addArray);

}

※ spreadsheet IDには、①で作成したスプレッドシートにアクセスした際のURLに含まれる文字列(下記画像のグレー部分)が入ります。

③ テスト実行

スクリプトが完成したら、下記の流れでテスト実行してみます。

① 保存
② 関数を選択
③ 実行ログを表示
④ 実行
⑤ 実行ログ&スプレッドシートでデータが更新されていることを確認

実行ログでエラーが出ている or スプレッドシートにデータが更新されていない際は、適宜ログ出力をさせて、エラー解消します。

console.log(response);

GASの定期実行

スクリプトのテスト実行が無事成功したら、GASの定期実行の設定を行います。テスト実行の際に追加されたスプレッドシートのデータは定期実行時のデータと重複しないように消しておくことをお勧めします。

左のサイドバーから、”トリガー“を選択。

右下の”トリガーを追加“を選択。

毎日実行する場合は、下記のように設定し、”保存“をクリック。下記の設定の場合、毎日午後11時〜午前0時の間に1回定期実行されます。

保存すると、トリガーリストに下記のように表示されます。

サイドバーから”実行数“を選択すると、実行履歴が確認できます。種類が”時間主導型“となっているものがトリガーにて定期実行されたものです。

参考リンク

下記のリンクを参考にさせて頂きました。

コメント

タイトルとURLをコピーしました