特定のユーザーのいいねしたツイート一覧を、ツイートに付いたいいねの数とリツイートの数も一緒に記録したくなって作りました。トリガー機能を使うと、定期的にいいねが記録されるようになります。
GASで自分のツイートを取得してスプレッドシートに記録するやつ
この記事も合わせて読むとわかりやすいかもしれません。
このように記録されます。
function getFav(){
var service = twitter.getService();
var json = service.fetch("https://api.twitter.com/1.1/favorites/list.json?screen_name=いいねを取得したいアカウントのscreen name&count=100");
var array = JSON.parse(json);
var ss = SpreadsheetApp.getActiveSpreadsheet();
var sheet = ss.getSheetByName('いいねを記録したいシートの名前');
var lastRow = sheet.getLastRow() +1;
var lastId = sheet.getRange("F2").getValue();
for(var i = 0; i <= array.length -1; i++) {
var int = parseInt(i);
if(i === 0){
var recId = array[int]["id"];
sheet.getRange("G2").setValue(recId);
}
var id = array[int]["id"];
if(id > lastId){
var time = array[int]["created_at"];
var userId = array[int]["user"]["id_str"];
var json = service.fetch("https://api.twitter.com/1.1/users/show.json?user_id="+userId+"&include_entities=false");
var array2 = JSON.parse(json);
var screenName = array2["screen_name"];
var text = array[int]["text"];
var favorite_count = array[int]["favorite_count"];
var retweet_count = array[int]["retweet_count"];
sheet.getRange(lastRow,1).setValue(time);
sheet.getRange(lastRow,2).setValue(screenName);
sheet.getRange(lastRow,3).setValue(text);
sheet.getRange(lastRow,4).setValue(favorite_count);
sheet.getRange(lastRow,5).setValue(retweet_count);
sheet.getRange(lastRow,6).setValue(id);
}
lastRow = lastRow + 1;
}
いいねを100件取得して、idが以前記録したツイートより大きければ記録する…といった感じです。
何かあったら気軽にコメントください。