概要
みなさんTeamsの このアップデート確認されましたか?!
こういう遊び心っていいですよね🤣
...まだうちの環境には来てないみたいですけど😗
今日は、誰かがハイタッチを求めてきた時に、いち早くハイタッチを返すフローを作ります。
ハイタッチを取得する
トリガー
トリガーにはチャットに新しいメッセージが追加されたときを使用します。
このトリガーを使うことで、全てのチャットの投稿を取得します。
メッセージ詳細を取得する
メッセージの内容をメッセージ詳細を取得するで確認します。
ここで[メッセージの種類]はグループ チャットを選んでおけば大丈夫です。
こうすることで、グループチャットの投稿だけでなく個人チャットの投稿もしっかり取得できます。
今回は関係ありませんが、チャネルの投稿も取得できてしまいます。
メッセージIDと会話IDを入力します。
自然にApply to eachが入ってしまいますが、気にしなくても問題ありません。
気になる方はfirst関数で囲っておきましょう。
テスト実行
フローを保存しておいて、適当なチャットにハイタッチを投稿してテスト実行を行います。
絵文字はHTMLで記述されており、body>body>contentのこの部分がハイタッチの中身ですね。
これをコピーしておいて、送られてきた内容と一致するかどうか?でフローを続行するかどうかを判断します。
返信するかどうか判断する
条件分岐①
コピーしておいたテキストと比較して、本文が全く同じかどうかを判断します。
コピーしたハイタッチは、後で投げ返す時にも使うので、変数や作成アクションに保存しておきます。
コピーしたテキストでは、ダブルクォーテーション”
がバックスラッシュ\
でエスケープされています。
エスケープされていると正しく比較できませんので、不要なバックスラッシュは消しておきましょう。
<p><span title="ハイタッチ" type="(highfive)" class="animated-emoticon-50-highfive"><img itemscope="" itemtype="http://schema.skype.com/Emoji" itemid="highfive" src="https://statics.teams.cdn.office.net/evergreen-assets/personal-expressions/v2/assets/emoticons/highfive/default/50_f.png" title="ハイタッチ" alt="✋" style="width:50px; height:50px"></span></p>
条件分岐②
このままでは自分が投稿したハイタッチに永遠にハイタッチを投げ返す無限ループが完成してしまいます。
先程のテスト実行でも、自分の投稿がトリガーされていましたよね。
一人で手を上げ続ける悲しいモンスターを生まないためにも、条件を見直しましょう。
AND条件を追加して、メッセージ投稿者が自分とは異なることを条件に加えます。
ハイタッチで返信する
返信にはこのチャットまたはチャネルでメッセージを投稿するを使います。
投稿者はユーザー(自分自身)とします。
選択肢に個人チャットがありませんが、ここでもグループチャット(Group chat) を選択しておけば大丈夫です。
個人チャットでも会話IDを指定することでメッセージの投稿が可能です。
いざ、実践!
ということで、フローが完成しました!
実際に試してみましょう。
- 個人チャットで試してみる
- グループチャットで試してみる
ちゃんと動くようですね!
おわりに
このフローのサンプルをgithubで公開しています。
特に環境に合わせて変更しないといけないところは無いと思うので、そのままインポートして有効化してもらえれば使えると思います。
余談
チャットの相手が同じフローを持っていると、無限ハイタッチ編が開始されます…