💻

Power Automate で特定の Twitter ツイートを Teams/Slack にも投稿する (初級 Ver.)

2021/04/30に公開

この記事について

この記事では、Power Automate を使用して、自身の Twitter のツイートの中から、指定のハッシュタグが付いたツイートのみを抽出し、同じ内容を Microsoft Teams および Slack に同時投稿する方法についてまとめています。

仕事/プライベート関係なく、自分が知り得た情報の中で「これは他者にとっても有益になるだろう」感じた内容については、プライベートでは Twitter、社内では Microsoft Teams および Slack に投稿するようにしていますが、正直言って 同じ内容をツール毎に何回も投稿するのは面倒という思いがありました。
そのため今回は、Power Automate を使って、ノーコードで簡単にこの課題を解決したいと思います。

今回の内容は初級 Ver.です。1 時間に 1 回、Twitter のトリガーが自動的に起動して、前回実行時からトリガー起動時までに新規で投稿されたツイートを Teams や Slack などに投稿するフローを作成していきます。
(社内に技術情報などの内容を連携するレベルであれば、そこまで即時性を求めることもないと思い、私としてはこの仕様を許容しています)

今回作成するフロー(イメージ)

Power Automate で作成するフローのイメージは、以下の通りです。

はい、正直に言ってこれだけです。
この図を見てもうやり方が分かったよという方は画面をそっと閉じて、Power Automate のフローを作り始めてください。
この図を見てもやり方がわからないという方も大丈夫です。次項からは、Power Automate に慣れていない方、Teams や Slack のコネクターについてあまり詳しくないという方向けに、詳しく解説していこうと思います。

フローの作成

では、実際にフローを作っていきます。
Power Automate のホーム画面にアクセスし、メニューにある作成を選択します。
フローの種別は、自動化したクラウド フローを選択します。

フロー名は、分かりやすい名前をつけておくことをお勧めします。(後で、これなんだっけ?とならないようにするため)

フローのトリガーを選択してくださいの部分では、これから作成する Power Automate のフローが自動で起動する際のトリガー(起因) を設定することになります。
これは後でも指定可能な内容ですが、フロー作成時に選択してしまった方が楽なので、この記事では選択しています。
検索窓に Twitter と入力すると、新しいツイートが投稿されたらトリガーが表示されるので、トリガーを選択します。
トリガーを選択したら、作成ボタンを選択して、フローを作成します。

Twitter コネクタの認証設定を行う

Twitter のコネクタを利用するには、基本的には Twitter アカウントを利用します。
まだ、Twitter コネクタを利用したことがなく、かつ認証を行ったことがない場合は、以下のようなトリガーの画面が表示されるはずです。

認証がまだの場合はサインインボタンが表示されるので、選択してください。
別ウインドウでサインインのための認証画面が起動するので、アカウント情報を入力し、Power Automate での認証設定を行ってください。
認証の種類は、既定で選択されている共有済みの既定アプリケーションを使用するを選択で問題ありません。こちらを選択することで、Microsoft が管理する Twitter クライアントアプリケーションを使用して認証を行うことになります。

既に Twitter コネクタの認証を行ったことがある場合は、以前認証した時のアカウント情報が自動で設定されています。
もし、別のアカウントに認証を切り替えたい場合や新しい認証情報を設定したい場合は、コネクタ右上のより、認証情報を切り替えてください。
現在、どの認証情報が利用されているかについても、こちらから確認することが可能です。

フロー内で取得するツイート情報を指定

Twitter アカウントの認証が終わったら、Power Automate のフローで取得する Twitter ツイートの内容を指定します。
検索テキストの欄に、フローで取得するツイートの情報を設定します。ここで入力した指定内容が、このフローが起動するトリガーとなります。

今回は、以下の条件に合致した場合に、Power Automate のトリガーが起動するようにします。

  • 自分の Twitter アカウントでの新規ツイートである (私の場合は @mappie_kochi が対象)
  • ツイートを共有するための専用ハッシュタグがツイート内に存在している (今回は #shareCo を利用)

実際に、上記の条件を AND で Twitter コネクタのトリガー条件に設定していきます。
from:@{ユーザーID} で、誰のツイートを対象とするか指定します。
#{ハッシュタグ} で、ハッシュタグがついているツイートのみを対象とするように指定します。

実際の設定例は、以下の通りです。

これで、@mappie_kochi による #shareCo のハッシュタグがついた新規ツイートが行われた時に、Power Automate のトリガーが起動するように設定されたことになります。

Twitter コネクタの詳細については、こちらの Microsoft Docs に記載があります。
残念ながら、2021/4/30 時点では英語での記載となりますが、興味ある方は確認してください。
ユーザーあたりの最大接続数、API呼び出しレート制限、コネクタを使用してツイートを行う際のユーザーメンション(@)利用不可の制約など、他にも様々な内容が記載されているので、一度目を通しておくことをお勧めします。

https://docs.microsoft.com/ja-jp/connectors/twitter/

Slack コネクタの認証設定を行う

次は、先ほど作成した Twitter のトリガーで取得したツイートの情報を Slack のチャネルに投稿するように設定していきます。

Twitter コネクタの下に表示されている新しいステップボタンを選択し、新しい操作を追加する画面を開きます。
検索窓で Slack を入力し、アクションの一覧の中からメッセージの投稿を選択します。

Twitter コネクタの時と同様、まだ Power Automate の Slack コネクタでワークスペースの認証を一度も行っていない場合、以下のようにサインインを求められます。

投稿を行うチャネルが存在する Slack のワークスペースにサインインし、認証を行う必要がありますので、まだ設定されていない方は認証を行ってください。
また、既に一度認証を行ったことがある方についても、Twitter コネクタのところで紹介した通り、コネクタ右上のより、現在設定されているワークスペースの認証情報が問題ないか、必ず確認するようにしてください。

Slack のチャンネルにメッセージを投稿する

認証が完了すると、投稿先のチャネル名メッセージ テキスト(チャット本文)を設定できるようになります。
チャネル名には、メッセージを投稿する先のチャンネルを設定します。検索窓を使ってチャンネル名を検索するか、カスタム値を使ってチャンネル名を直接入力してください。

メッセージテキストには、Twitter コネクタ側で取得したツイート本文を設定します。
テキストボックスに入力カーソルを合わせた後、画面に表示される動的な値を追加のボタンを選択します。

動的な値の一覧から、Twitter コネクタのツイートテキストを選択します。これで、Twitter コネクタ側で取得した新規ツイートのツイート本文をメッセージテキストに設定できます。

以上が Slack コネクタでの必須設定です。これで、Twitter で新規ツイートから Slack に投稿されるまでのフローの設定が完了しました。
保存ボタンを選択して、作成したフローを保存します。
ここで、画面内にあるテストボタンを選択し、手動モードでテストを開始します。その後、新規にツイートを行えばトリガーが起動し、Slack へ専用のアプリがツイートと同じ内容の投稿を行うことを確認できます。

実際に Slack に投稿された内容を見ると、Microsoft Power Automate という名前のアプリがツイート内容を投稿しており、ぱっと見、イケてない感がある感じでしょうか。ここは、アプリの名前を変えるか、自分のアカウントで投稿したように見せたいので、Slack コネクタの設定を追加していきます。

今回は、Slack でのメッセージ投稿はユーザーとして投稿するように設定を変えたいと思います。
Slack コネクタの詳細オプションを表示するボタンを選択し、ユーザーとして投稿するの設定値をはいに変更して再度フローを保存します。

これで、Twitter のツイートが Slack のチャンネルに投稿される際、アプリではなくコネクタで認証しているユーザーアカウントが使われるようになります。

もし、アプリとして投稿される形は維持し、アプリの名前を Microsoft Power Automate から別のものに変更したい という方は、ボット名の欄に任意の名前を入れてください。そうすることで、アプリの名称が変更されます。

Slack コネクタの詳細については、Twitter コネクタと同様、こちらの Microsoft Docs に記載があります。
残念ながら、2021/4/30 時点では英語での記載となりますが、興味ある方は確認してください。

https://docs.microsoft.com/ja-jp/connectors/slack/

並列分岐を追加する

次は Teams コネクタを使用して、Teams のチャネルにも同じ内容を投稿する操作を入れていきます。

このまま Slack コネクタの下に直列で入れてもいいのですが、その方法では 1 つ問題が発生します。
それは、Slack コネクタの処理でエラーが発生した場合、処理が中断され、Teams への投稿処理が行われなくなるという点です。

直列でフローを実行する場合、前段の操作でエラーが発生するとフローが中断されてしまうため、Slack の障害が発生した時などを考慮すると、この作り方はよくありません。
そのため、Twitter コネクタのトリガーが起動したら、Slack コネクタの操作と並列で Teams コネクターの操作が行われるよう、並列分岐を追加します。

Twitter コネクタと Slack コネクタの間にある矢印にカーソルを合わせ、+ボタンを選択します。
表示されるメニューの一覧から並列分岐の追加を選択します。

選択すると、Slack コネクタの操作と並列で行う操作を設定できるようになります。
Teams のチャネルへの投稿は、新しい分岐の方で設定していきます。

Teams コネクタの認証設定を行う

新しく作成した分岐の方の検索窓で Teams を入力し、アクションの一覧の中からチャットまたはチャネルでメッセージを投稿するを選択します。

Slack コネクタの時と同様、Teams コネクタも初回利用時は認証が必要になりますが、Power Automate にログインしているユーザーが Teams のライセンスを所有している場合は、自動で認証処理が行われます。
別の Teams アカウントで投稿を行いたい場合は、これまでのコネクタの時と同様、コネクタ右上のより、現在設定されているユーザーの認証情報を変更するようにしてください。

Teams のチャネルにメッセージを投稿する

実際に Teams に投稿するための設定を行っていきます。

投稿者の部分では、メッセージの投稿者をボットにするかコネクタで認証しているユーザーにするかを選択できます。今回はボットに設定します。

投稿先の部分では、メッセージの投稿先をチャネルにするかボットとのチャットにするかを選択できます。今回はチャネルに設定します。

設定後、メッセージの投稿先のチャネル情報、および実際に投稿するメッセージ本文を設定できる項目が追加で表示されるようになります。
ここで、メッセージを投稿する先のチームチャネル、およびメッセージ本文を設定します。
Slack コネクタの時と同様、設定を行います。

設定が完了したら、保存ボタンを選択して、作成したフローを保存します。
これで Teams コネクタでの設定は完了です。Twitter で新規ツイートがあれば Slack と並行して Teams 側にもメッセージが投稿されるようになります。

ちなみに、ボットではなくユーザーでメッセージを投稿した場合は以下のようになります。

これで、Twitter のツイートを Teams にも投稿することが出来るようになりました。

Teams コネクタの詳細については、他のコネクタと同様、こちらの Microsoft Docs に記載があります。
残念ながら、2021/4/30 時点では英語での記載となりますが、興味ある方は確認してください。

https://docs.microsoft.com/ja-jp/connectors/teams/

まとめ

今回は、Power Automate で特定の Twitter ツイートを Teams/Slack にも投稿する方法について解説しました。
Power Automate を使うと、今回ような仕組みを、非常に簡単に、短時間で作成することが可能になります。
普段、面倒だなぁと思ったり、自動化できたら楽になるのになぁと思ったことがあれば、是非、Power Automate を使って改善できないか試してみることをお勧めします。

また、今回のフローは、Twitter コネクタの仕様上、1 時間に 1 回起動するものになっているため、タイムリーな情報共有をするのには向いていません。こちらについては、中級 Ver.として別途、記事を公開する予定です。
Microsoft 365 や Slack などの障害情報を Twitter で検知してリアルタイムに共有したい、といったニーズの場合、今回の初級 Ver. のフローでは要件が合わないため、こちらについても 次回、解説していこうと思います。 解説記事を出しましたので、詳しくはこちらを参照ください。

https://zenn.dev/ymasaoka/articles/share-tweet-to-other-sns-with-power-automate-2

Discussion