willow-leaf log

ひっそりこそり

GASで自分のツイートを取得してスプレッドシートに記録するやつ

急にツイ消ししたくなった場合に備えて、自分のツイートをグーグルスプレッドシートに記録しておくことにしました。

qiita.com
こちらの記事を参考にして書いてみるなどしました。

f:id:yanagihatei:20190828150010j:plain

 var twitter = TwitterWebService.getInstance(
 '**********',       // 作成したアプリケーションのConsumer Key
 '**********'  // 作成したアプリケーションのConsumer Secret
);

// 認証を行う(必須)
function authorize() {
  twitter.authorize();
}

// 認証をリセット
function reset() {
  twitter.reset();
}

// 認証後のコールバック(必須)
function authCallback(request) {
  return twitter.authCallback(request);
}

function getMyTweets() {
  var service  = twitter.getService();
  var json = service.fetch("https://api.twitter.com/1.1/statuses/user_timeline.json?screen_name=yanagihatei&count=30");
  var array = JSON.parse(json);
  
  var ss = SpreadsheetApp.getActiveSpreadsheet();
  var sheet = ss.getSheetByName('yanagihatei');
  var lastRow = sheet.getLastRow() +1;
  var lastId = sheet.getRange("D2").getValue();
  
  for(var i = 0; i <= array.length -1; i++) {
    
    var int = parseInt(i);
    
    if(i === 0){
      var recId = array[int]["id"];
      sheet.getRange("D2").setValue(recId);
    }
      
     var id = array[int]["id"];
      
     if(id > lastId){
       var time = array[int]["created_at"];
       var text = array[int]["text"];
        
       sheet.getRange(lastRow,1).setValue(time);
       sheet.getRange(lastRow,2).setValue(text);
       sheet.getRange(lastRow,3).setValue(id); 
     }
    lastRow = lastRow + 1;
    }
  }

自分のツイートを最新のやつから30件まで取得して、idが以前取得したツイートより大きければスプレッドシートに書き込む……という感じです。

ここ違うよ〜とかもっと良い書き方あるよ〜って場合は気軽にツイッターでリプライください。