Noël Café : Blog
Noëlの公開備忘録とひとりごと。コメント・トラックバックご自由に

Google Apps ScriptでTwitterにスレッド(返信)投稿 Ver.2024 (備忘録)

前回と同じくTwitterの返信も以前(2020年)のスクリプトではできませんので修正します。
API2.0 Versionです。

TwitterにGoogle Apps Script(GAS)を使って返信投稿してみたいと思います。
文章が長いから2つに分けてスレッド(返信)にして投稿するという感じの使い方です。

Step一覧

Google Apps ScriptでTwitterに投稿する方法を4回に分けて掲載しています。

  1. Twitter API登録方法 (備忘録) ← これはそのまま。
  2. Twitter APIとGoogle Apps Script 連携でツイート Ver.2024 (備忘録)
  3. Google Apps ScriptでTwitterにスレッド(返信)投稿 Ver.2024 (備忘録) ← 今ココ
  4. Google Apps ScriptでTwitterに画像投稿 複数画像も!Ver.2024 (備忘録)

POINT

今回のポイントです。

  1. 返信は投稿時payloadにin_reply_to_status_idで返信元ツイートを指定

GAS スクリプト

前回作成したpost_tweet関数を改造します。
引数をmsg(投稿する文章), re_id(返信元のツイートID)、
戻り値を今回投稿したツイートIDとします。
今回も引き続きライブラリOAuth2を使用します。

// twitterへ投稿 文字だけ 返信あり OAuth2
function post_tweet(msg, re_id){
  var service = getTwitterService2_();
    var payload = “”;
  if (re_id) {
    payload = {
      text: msg, 
      reply: {“in_reply_to_tweet_id”: re_id} // *1
      };
  } else {
    payload = {text: msg};
  }
  if (service.hasAccess()) {
    var response = UrlFetchApp.fetch(twi_endpoint2, {
      method: ‘POST’,
      ‘contentType’: ‘application/json’,
      headers: { Authorization: ‘Bearer ‘ + service.getAccessToken() },
      muteHttpExceptions: true,
      payload: JSON.stringify(payload)
    });
    var result = JSON.parse(response.getContentText());
    var twi_id = result.data.id;
    return twi_id;
  } else {
    Logger.log(“Not Authorized”);
    return null;
  }
}
function test_tweet(){
  // 連続ツイートの見本
  var twi_id1 = post_tweet(“GASツイートテスト”);
  var twi_id2 = post_tweet(“GASツイート返信テスト”, twi_id1);
}

*1
返信する場合は、statusの他にin_reply_to_status_idが必要になります。
(API1の時は条件分岐しなくても動作しましたが今回はダメです。)

*2
以前(API1)ではid_strを取得する必要がありましたが、
今回はid自体が文字列で入っているのでidを取得すればOKです。

Next Step

次はTwitterへ画像の投稿をします。

Reference

余談

日本語のブログ類にAPI2の返信がなかったのがびっくりしました。
みんな、ただのBotを作りたいだけなんだろうな。

Leave a Reply

*


CAPTCHA



Trackback URL