特定の時刻に自動ツイートするBOTをノンコーディングで作った話(Excel × Logic Apps)

Pocket

Twitterに決めた時間に自動ツイートするサービスもありますが、簡易的なものであれば自前で用意できるのでExcelとLogic Appsを利用して作ってみました。
やることはシンプルで、Excelにツイートしたい内容(テキストのみ)を記載して決めた時間に自動でTwitterに投稿する、というもの。
今回は、私がASCII.jpさんで連載させていただいている記事(松本典子の「Azure Logic Apps」超入門 ~AI編~)を自分のTwitterアカウントに自動ツイートするBOTを作成してみました。
主にHiro( @mofumofu_dance )さんが作成していた以下の内容を参考にさせていただいています。Power Automateで作成したい方や、画像付きのツイートを自動投稿する仕組みを作りたい方はこちらを参考にされてください。

定時自動ツイートを ExcelファイルとPower Automateで作る
https://qiita.com/h-nagao/items/9650551f05782c620615


Excelファイルの準備


Excelファイルはこのような形にしておき、テーブルを定義することを忘れずに。
「Tweet時間」は、ツイートを投稿する時間で、24時間表記で入力します。
「ツイート内容」は、ツイートしたい文字数が140文字を超えるとエラーになってしまうのでExcelファイルを作成する時点で気をつけてください。
このExcelファイルをOneDriveに置きます。

全体図


Logic Appsの全体図はこのような感じ。
利用するコネクタは少ないしシンプルですが、「現在時間の取得と変換」、「配列内の要素の取得」がポイントになってきます。

1.トリガーの設定


検索窓で「スケジュール」と検索し、「繰り返し」コネクタを選択。
今回は「1時間おきに自動で実行する」ようにしています。

2. 現在時間の取得と変換


まずは検索窓で「日付」と検索して、日付と時刻を選びます。一覧の中から「現在の時刻」コネクタを選択。このコネクタは設定するものがありません。
次も検索窓で「日付」と検索して、日付と時刻を選びます。一覧の中から「タイムゾーンの変換」コネクタを選択。
図のような形になるように設定します。
「書式設定文字列」は、「カスタム値の入力」を選択後、手動で「HH」と入力します。これで「24時間表示」として値を取得できるようになりました。

3. Excelからのデータ取得と配列処理


検索窓で「Excel」と検索し、「Excel Online(OneDrive)」を選びます。一覧の中から「表内に存在する行を一覧表示」をクリック。
用意したExcelファイルでテーブルを定義していないと設定できないので、設定ができない場合はExcelファイルを確認してみてください。
次に検索窓で「データ操作」と検索、「アレイのフィルター処理」コネクタを選びます。
結果として、テーブル内の内容全てを引っ張ってきている(配列)ので、現在の時刻(変換済み)とExcelファイル内の「Tweet時間」とが一致するもののみ出力させる処理です。

4. ツイートする


検索窓で「Twitter」と検索して、「ツイートの投稿」コネクタを選択。適宜ログインの処理をしてください。
「Add new parameter」をクリックし「ツイートテキスト」を表示します。
ここは「式」を選択して、以下の内容をコピペしてください。

first(body('アレイのフィルター処理'))?['ツイート内容']

「アレイのフィルター処理」コネクタで出力した内容から、Excelファイルの「ツイート内容」のみ抜き出してツイートします。
以上で出来上がり!
なお、該当するツイートがない場合、実行履歴は「失敗」の表示になります。

最後に

今回は最初に作った仕組みでも動いたには動いたのですが、無駄に難しく考えてたらしくて縄神様(@twit_ahf)に見てもらったらサクっと良くないところを指摘してもらえ、そのとおりに直したらシンプルにわかりやすくなりました!!
さす神。(いつもありがとうございます!)
配列の処理には馴れが必要だなぁと思うのですが、応用すれば色々と使えそうな仕組みだなと思うので、ぜひ試してみてください~。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください