GoogleAppsScript
QiitaAPI

Qiitaの記事一覧をGoogleスプレッドシートに自動取得する

やりたかったこと

Qiitaの自分の記事一覧をGoogleスプレッドシートに取り込んで集計とかしたかった。

方針

  • GAS(Google Apps Script)を使ってQiitaのAPIから記事一覧をjson形式で取得
  • Googleスプレッドシートに取得したjson形式のデータから必要な物をセット
  • GASをトリガ指定して1日1回起動するようにする

やりかた

  • Googleスプレッドシートのメニューから「ツール」→「スクリプトエディタ」を選択
  • スクリプトエディタが起動するので下記のスクリプト内容で保存
function qiitaReader() {

  var userId = "[対象ユーザーID]";
  var apiUrl = "https://qiita.com/api/v2/users/" + userId + "/items"
  var spreadsheet = SpreadsheetApp.getActiveSpreadsheet();
  var sheet = spreadsheet.getSheets()[0];

  var keys = {
    'created_at' : "",
    'title' : "",
    'likes_count' : "",
  };  

  var response = UrlFetchApp.fetch(apiUrl);
  var total = response.getHeaders()['total-count'];

  var page=1;
  var i=1;
  while (i < total) {
    var response = UrlFetchApp.fetch(apiUrl + "?page=" + page);
    var json = response.getContentText();    
    var jsonData = JSON.parse(json);

    for (var idx in jsonData) {
      var j=1;
      for(var key in keys) {
        sheet.getRange(i, j).setValue(jsonData[idx][key]);  
        j++;
      }
      i++;
    }
    page++;
  }
}
  • メニューから「実行」→「関数を実行」で正しく動作していることを確認
  • メニューから「編集」→「現在のプロジェクトのトリガー」を選択
  • 「新しいトリガーを追加」で適当なタイミングを設定
  • googleスプレッドシート上で取得結果を使って好きなように集計

雑記

GAS便利。