Qiita Teams that are logged in
You are not logged in to any team

Log in to Qiita Team
Community
OrganizationEventAdvent CalendarQiitadon (β)
Service
Qiita JobsQiita ZineQiita Blog
39
Help us understand the problem. What are the problem?

More than 1 year has passed since last update.

posted at

updated at

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]

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
39
Help us understand the problem. What are the problem?