見出し画像

"ツイート時間”設定編「Twitterの自動化」#02 テクノロジーを味方に。API無しでできる、IFTTTとGASで実現する"自動TweetBOT"


2023/05/30追加記事

※IFTTTTの仕様変更

「5月23日からTwitter連携を有料プランのみに変更し…」ということになっております。
したがって、こちらの「"自動TweetBOT"」を実行するには、最低でもIFTTTの有料プランが必須になってきます。
上記を踏まえたうえで、読み進めてください。

※参考記事

概要

  • 「自動TweetBOT」の追加設定です。

  • 前回「1日に1回、指定した時間」にTweetするとい設定だったものを、
    「1日に4回、2時間毎にTweetする」とか「1日の内の指定した時間帯の中で、1時間おきにTweetする」とかいう設定が可能にします。

  • 「自動TweetBOT」をまだ活用されていないという方は、以下の記事をご覧ください。

  • その他のご要望などは、ご相談ください。
    連絡先 メール:info@ginnesh-pm.com

前回の記事、”自動TweetBOT”に関して

 前回、「Twitterの自動化」#01を公開してから、いろいろ反響をいただけまして、ありがとうございます。
そんな中で、「ツイートする時間を小分けにしたい」や「1日に1回じゃなくて、数回ツイートしたい」などのご質問をいただけましたので、追加記事を公開することにしました。

というわけで今回は、

「自動TweetBOT:”Tweet時間”設定編」

です。


”Tweet時間”設定編


使う”アプリ”や”サービス”について

  • GAS(Google App Scipt)
    Googleによって開発されたスクリプトプラットフォームである軽量のアプリケーション開発のためのGoogleのワークスペースプラットフォーム。 主にGoogleのサービスを自動化するスクリプト言語です。


全体の流れ

1.Tweetする時間を決める
2.トリガーの設計
2.GASでプログラムを書き換える


1.Tweetする時間を決める

Tweetする時間帯を決めます。
まず、
・1日に何回か?→1日24時間の内、何時間おきにTweetするのか?
・夜中の時間帯はどうするのか?
を決めます。
※今回は、例として、以下の条件で設定します。
・1日に4回Tweetする
・1日24時間の内の、9時から18時までの間で3時間毎に繰り返し実行される
・最後のTweet時に、翌日の9時のTweetのトリガーをセットする


2.トリガーの設計

※トリガースクリプトの概要(今回の場合)
「9:00、12:00、15:00、18:00」に実行されて、最後の18:00のトリガーで、”翌日の9:00”に次回のトリガーをセットする設定となります。
「設定」シートの「B6」「C6」に入力した時間は無効になります。


3.GASでプログラムを書き換える

①スプレッドシートの準備

・前回と同じものを使用しますが、
>未使用のセルがあります

・「設定」シート未使用部分
以下の個所(セルに何か記入されていても問題はないです)

・B6・・・ツイート配信時間の「時」を入力(半角英数で入力ください)
・C6・・・ツイート配信時間の「分」を入力(半角英数で入力ください)

②GAS(Google App Script)側のプログラムを書き換える

次の個所を削除する

// トリガーをセットする関数
function setTrigger() {
 const setTime = new Date();   
 const hours = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("設定").getRange("B6").getValue();
 const minutes = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("設定").getRange("C6").getValue();
 setTime.setDate(setTime.getDate() + 1);
 setTime.setHours(hours);
 setTime.setMinutes(minutes);  
 ScriptApp.newTrigger('autoTweet').timeBased().at(setTime).create();
}


以下のコードに書き換える※コピー&ペーストOK!

function setTrigger() {
 const time = new Date();
//9~17の数字範囲を判定する正規表現
 const regWorkHours =  /^(9|1[0-7])$/;
//実行した時間が9~17時 ならば
 if(regWorkHours.test(time.getHours())) {
//次の3時間後 (hour) の 00分で「autoTweet」を実行する時間指定タイマーをセット
   time.setHours(time.getHours() + 3);
   time.setMinutes(00);
   ScriptApp.newTrigger('autoTweet').timeBased().at(time).create();
 }
//実行した時間が 9~17時以降 ならば
 if((regWorkHours.test(time.getHours())) != /^(9|1[0-7])$/ ) {
//翌日の9時00分に「autoTweet」を実行する時間指定タイマーをセットする
   time.setDate(time.getDate()+1);  
   time.setHours(9);
   time.setMinutes(00);
   ScriptApp.newTrigger('autoTweet').timeBased().at(time).create();
 }
}

・スクリプトの概要

  1. 時間が9~17時の間であれば、メイン関数のautoTweet()をセットする

  2. 3時間毎に繰り返し実行される

  3. 1日の最後の18:00のTweet後翌日の9:00にトリガーをセットする

・テストTweet

必ずテストツイートを行い、希望の設定通りにTweetできるか、確認して確認してください。

補足
今後、Twitter側やIFTTT側、Google側のいずれかで、アプリやサービスの仕様などに変更が生じた場合は、何らかの不具合が出る可能性がありますので、その点は、予めご理解ください。
ご利用について
ツイートの頻度や内容など、一般的ではないような使用を考えられているよな場合は、このBOTは適さない可能性があるため、ご注意ください。
また、このBOTの利用で発生した問題の責任は負いかねます。
事前に使い方をテスト、理解した上で、ご利用ください。

ご不明な点などがございましたら、ご連絡いただければと思います。

連絡先
メール:info@ginnesh-pm.com

#プログラミング #GoogleAppsScript #GAS #コピペ #Twitter #IFTTT #TwitterBOT #BOT #ツール #ノーコード #ローコード #TwitterAPI #自動化 #TwitterAutoBOT #Twitter自動化 #Auto #プログラミング初心者
#テクノロジー #IT #IOT

参考記事

その他


いいなと思ったら応援しよう!