急にツイ消ししたくなった場合に備えて、自分のツイートをグーグルスプレッドシートに記録しておくことにしました。
GASでTwitterの投稿とタイムライン取得
こちらの記事を参考にして書いてみました。
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=ツイートを取得したいユーザーのid&count=30");
var array = JSON.parse(json);
var ss = SpreadsheetApp.getActiveSpreadsheet();
var sheet = ss.getSheetByName('ツイートを保存したいシートの名前');
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が以前取得したツイートより大きければスプレッドシートに書き込む……という感じです。
ここ違うよ〜とかもっと良い書き方あるよ〜って場合は気軽にコメントください。