GASでTwitterの投稿とタイムライン取得


メモ書きです。

追記
 2020年3月頃により高速なV8ランタイムの利用が可能になりましたが、どうもここで紹介されているライブラリは動作しないようです。V8ランタイムは任意での利用なため、まだ大丈夫ですが、エラ=が出る人はランタイム確認してください。

APIの取得と投稿

こちらを参考にAPIを取得

Google Apps Script (GAS) でTwitterへ投稿するだけの機能を実装してみる [1]

CallbackURLの設定はこちら

【Twitter】GASで自分のツイートを定期RT/引用するbotを作った [2]

メモ

[1]のコードの一部です。

function postUpdateStatus() {
  var service  = twitter.getService();
  var response = service.fetch('https://api.twitter.com/1.1/statuses/update.json', {
    method: 'post',
    payload: { status: "投稿される文字\nで改行" }
  });
}

'https:~'を変えることで投稿したりタイムライン取得したり色々できるようです。ここでは投稿するAPIを使っているようです。
APIの詳しい仕様は公式ページにあります。

API reference index [3]

タイムラインの取得


function getTimeLine() {
  var service  = twitter.getService();
  var json = service.fetch("https://api.twitter.com/1.1/statuses/home_timeline.json");
  var array = JSON.parse(json);

  var tweets = array.map(function(tweet){
    return tweet.text;
  });

  Logger.log(tweets);
  return tweets;
}

これ以外のところは[1]のものと同様です。
[3]に書かれてあることを参考にタイムラインを取得して各ツイートの文字列を配列にするものです。
APIからJSONが帰ってくるのでパースします。
全体は配列で1ツイートずつ格納されてます。
1ツイートの中身はオブジェクトで色々詰まってます。
今回は文字列のみ取得しています。

その他

GAS公式サイト。全部書かれてある。当たり前か・・・

Google Apps Script [4]