定期的に特定の内容&画像付きでツイートってよく見ますよね。企業のツイートとかで。
そういう、決まった内容、決まった時刻/日付/曜日での自動ツイートをPower Automateでつくってみたので紹介します。
用意
データは、今回はOneDrive上のExcelファイルとしました。
Automateで取り扱うときにはテーブルを定義しておかないといけないので、注意してください。
すべて文字列で、列は3つ
- TweetHour : 今回は定時ツイートなので、時刻を入れています。24時間表示
- TweetBody : セル内改行でもOKです。ハッシュタグはツイートの時同様、#つきで。
- ImageLink : OneDrive上の画像ファイルのパスを入れます。画像付きでない場合にはブランクで。OneDriveのルートが/で、フォルダーを利用する場合には*/Folder/image.png*のようにしてください。
あとはOneDrive上に必要であれば画像を置いておくだけです。
Flow
定時ツイートのステップは全部で7つです。
- 現在時刻の取得と変換
- データ取得
- 対象データのフィルター
- フィルター結果の行数判定
- 画像添付有無を判定
- 画像取得
- ツイート実行
それぞれ見ていきます。
※トリガーはスケジュールです。
1. 現在時刻の取得と変換
現在時刻の取得とフォーマットの変換ステップです。
TweetHourで今ツイートするものを抽出するために使います。このステップの詳細は
松本さんのブログが詳しいのでこちらをご覧ください。
今回は24時間表示が欲しいのでHHで。
2. データ取得
データ取得と仰々しく書いていますが、Excelの特定のテーブルから、特にフィルターせず一括取得するだけです。
3. 対象データのフィルター
取得結果のフィルターを行います。ここは動的コンテンツでサクサク進むかと思います。
比較するのは、ExcelのTweetHourの列と、時刻変換した結果(HH)です。
ここの結果は複数データになりうるので、配列が返ってきます。
4. フィルター結果の行数判定
条件分岐で、ツイート内容が設定されているか(データがあるか)を確認します。
Filterアクションで取得した結果のlength()をとることで、フィルター結果の行数が分かります。
0ならツイートしない。
5. 画像添付有無を判定
5以降の処理は4の判定でYESの時だけです。
Automateからのツイートでも画像の添付ができます。これを行うには対象のファイルのコンテンツ自身が必要です。
まずはコンテンツ取得アクションを実行するかの判定をしましょう。ImageLink列の値の文字列長が0かどうかで判定です。
length(first(body('Filter_array'))?['ImageLink'])
6. 画像取得
first(body('Filter_array'))?['ImageLink']
7. ツイート実行
ここでやっとツイートです。
データはフィルターで取れました。画像がある場合のコンテンツも取得できています。
あとは2個目の条件分岐の外側 (=1個目の条件分岐のYes側)でツイートを行います。
完成!!
このような簡単なステップで、ほとんど数式も使わず、自動&定時ツイートを構築できました。
ツイートする内容やコンテンツを変えるのも、Excelファイルなので簡単ですしね♪ぜひぜひお試しください!!