Google Apps Script

【GAS】スプレッドシートのランダムな行データを取得してツイート(GAS×TwitterBot⑤)

GASでTwitterBotを作ろう5-2

こんにちは、GAS大好きのもり(@moripro3)です!

「Google Apps ScriptでTwitterBotを作ろう!」をシリーズでお届けしています。

このシリーズで作るのは「自分のブログからランダムな1記事を取得して、タイトルとURLを、毎日指定の時刻に自動ツイートするBot」です。

前回は、GASでTwitterに投稿する機能を作りましたね!

GASでTwitterBotを作ろう4
Google Apps ScriptでTwitterに投稿するスクリプト(GAS×TwitterBot④)GoogleAppsScriptを使ってTwitterBotを作ろう!シリーズ第4回目は、Twitterアカウントとアプリの連携認証の方法・GASでTwitterに投稿するスクリプトを紹介してします!...

そして、シリーズ全体の流れがこちらです。

もり
もり
いよいよシリーズ最終回だよ!
GAS×TwitterBotの5ステップ
  • 【Step1】Twitter Developerアカウントの申請(済)
  • 【Step2】アプリ情報を登録してAPIキーを取得する(済)
  • 【Step3】ブログ記事の一覧をGoogleスプレッドシートに作成する(済)
    • ①WordPressの既存記事の一覧をCSV出力する
    • ②新規投稿記事のタイトルとURLをスプレッドシートに追記する仕組みを作る(IFTTT使用)
  • 【Step4】GASでTwitterに投稿するスクリプトを作る(済)
  • 【Step5】GASでスプレッドシートのデータを取得してツイートする ← 今回はコレをやるよ

GASでTwitterに投稿するスクリプト

前回作成したスクリプトがこちらです。

postTweet関数を実行すると、このようにTwitterに投稿できます。

tweetbot29

payloadのstatusオプションがツイート本文です。ここに、ツイートしたい文字列を置くのが今回の目的です。

スプレッドシートからランダムな1行を取得してツイートするスクリプト

ツイートする内容はこの3つです。

  1. ヘッダー(日付+固定文字列)
  2. 記事タイトル
  3. 記事URL

ツイートのイメージがこちら
TweetBot4-1

titleとurlは、スプレッドシートの2行目~最終行の間でランダムに取得します。

TweetBot4-2

それでは、下記の3つを作っていきます

  1. header
  2. title
  3. url

今日の日付データを作成(header)

ヘッダー部の「3月6日(水)」のような日付データを作成する関数です。

ランダムな行番号からタイトルとURLを取得(title+url)

スプレッドシートからランダムに「記事タイトル」と「記事URL」を取得し、headerと結合して、ツイート本文を作成する関数です。

ランダムな行番号を取得する方法

ポイントはこの1行です

var row = Math.ceil(Math.random() * (lastRow-1)) + 1;

モリ
モリ
なんか難しいぞ、説明してくれ
もり
もり
ポイントは数学演算のMathオブジェクトだよ

Math.random()
→0以上1未満の乱数を返す

Math.ceil(x)
→xの小数点以下を切り上げた整数を返す

最終行の行番号は変数lastRowに格納されています。lastRow = 50のときの計算イメージです。2~50までのランダムな数字が算出されます。

var row = Math.ceil(Math.random() * (lastRow-1)) + 1;

TweetBot4-9

 

モリ
モリ
ランダムってことは、2日続けて同じ記事がピックアップされる可能性もあるんだな
もり
もり
うん、そうだね、まぁそれもおもしろいじゃん!

Twitterに投稿する

前回作成したpostTweet関数の、payloadのstatusオプションにツイート本文を当てはめればOKです。ここでは、変数postMessageとしてます。

スクリプトまとめ

Twitterにツイートを連続投稿しすぎるとアカウントが凍結される恐れがあります。

CreatePostMessage関数でツイート本文が想定どおりに作成されているかは、ログ出力で確認しましょう。

TweetBot4-7

指定の時間にスクリプトを自動実行する

これで、スプレッドシートの記事一覧から、ランダムにタイトルとURLを取得してツイートする仕組みができました

モリ
モリ
おい、これ、毎日実行しなきゃいけないのか?めんどいぞ
もり
もり
まさか!毎日自動で実行されるように設定するよ!

プロジェクトのトリガーを設定

時計のマークをクリックします(現在のプロジェクトのトリガー)

TweetBot4-3

画面右下の「+トリガーを追加」をクリック

TweetBot4-4

赤枠欄を設定して、右下の「保存」をクリック

  • 実行する関数はpostTweet
  • 時刻は1時間単位で指定
TweetBot4-5

これで設定完了です!

トリガーの編集

設定内容を変更したい場合は、鉛筆マークをクリック

TweetBot4-8

まとめ

シリーズおつかれさまでした!

各回の目次です!おさらいにどうぞ!

もり
もり
みんな、アレンジしてオリジナルのBotを作ってみてね~
非エンジニアもプログラミングを学習する時代!

「プログラミング」ってエンジニアとかプログラマーの人がするものでしょ?文系の私には関係ないや~って思っていませんか?

いまは、非エンジニアもプログラミングを学習する時代です!

「プログラミングの必修化」をご存知ですか?

  • 2020年~ 小学校で開始
  • 2021年~ 中学校で開始
  • 2022年~ 高等学校で開始
  • 2024年~ 高校受験科目に新設

学校での必修化に向けて、すでに子ども向けプログラミングスクールが多数開校されています。

あと数年もすれば、あたりまえにプログラミングができる新入社員がやってくる時代になります。

プログラミングってなに?どんなもの?まずは無料体験から試してみませんか?

 

1週間の無料体験あり!
オンラインスクール実績No.1!