5
Help us understand the problem. What are the problem?

More than 1 year has passed since last update.

posted at

updated at

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

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

GASでTwitterの投稿とタイムライン取得
こちらの記事を参考にして書いてみました。

20190828150010.jpg
画像のように記録されます。


 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が以前取得したツイートより大きければスプレッドシートに書き込む……という感じです。

ここ違うよ〜とかもっと良い書き方あるよ〜って場合は気軽にコメントください。

Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Sign upLogin
5
Help us understand the problem. What are the problem?