記事公開日
最終更新日
PowerPlatformでTeamsのリアクションを取得してみた

はじめに
Teamsのチャットにお知らせを投稿して、確認したら「いいね」を付ける運用を行っている方もいるかと思います。「いいね」では件数は分かりますが、誰が「いいね」していないかを確認するのは難しいと思います。
今回は、Teams メッセージのリアクションを取得して、メンバーの誰がリアクションしたのか一覧表示するアプリを作ってみました。
作ってみた
下記のようなイメージで実装してみました。
1.チャットのメッセージ一覧を取得する
メッセージの取得には、Microsoft Teams コネクタ を利用して、Screen の OnVisible イベントでメッセージを取得するようにしました。
OnVisible イベント
Clear(messages);
ForAll(
LastN(MicrosoftTeams.GetMessagesFromChannel(<team-id>,<channel-id>).value,5),
Collect({
subject: If(IsBlank(subject),"(件名なし)",subject),
messageId:id,
body:body
})
);
2.Power Appsの画面でメッセージを選択して、フローを呼び出す
今回はメッセージはドロップダウンで選択できるようにして、OnChange イベントでフローを呼び出すようにしました。
OnChange イベント
Set(flowReruen,リアクション取得.Run(Dropdown1.Selected.messageId).riactions);
3.フローに呼び出し、メッセージのリアクション情報を取得する
下記のようなフローを作成しました。
※画像をクリックすると別ウィンドウで表示されます。別ウィンドウでは元のサイズで画像を表示することができます。
確認したら「いいね」を付けるのように、特定のリアクションに意味合いを設ける場合、
「確認済み」等の意味合いで表示した方が分かりやすいので、以下のリアクションを Power Automate の中で変換するようにしました。
リアクション | 表示内容 |
いいね(like) | 確認済み |
すてき(heart) | 対応済み |
4.Power Automateの戻り値を整形する
フローからは、JSON 形式で返却する形にしたので、Power Apps 側で JSON を解析する必要があります。
今回は、ParseJSON 関数を利用して、JSON の解析を実装しました。
※ParseJSON 関数は、実験段階の機能です。利用する場合は、設定より「ParseJSON 関数と型のないオブジェクト」を有効にする必要があります。
OnChange イベント
Set(flowReruen,リアクション取得.Run(Dropdown1.Selected.messageId).riactions);
ClearCollect(
riactions,
ForAll(
Table(ParseJSON(flowReruen)),
{
name: Text(ThisRecord.Value.username),
reaction: Text(ThisRecord.Value.reaction)
})
);
実際に動かしてみた
Teamsのチャネルにメッセージ、リアクションを登録して動かしてみます。
Power Apps 側で表示すると、下記のイメージとなります。
メッセージとリアクション情報が表示できました。
まとめ
Power Apps、Power Automate を利用して、Teams のリアクション情報を取得することができました。
また、チームのメンバーを母数として、誰がリアクションをしているか?を一覧形式で確認することもできました。
出欠席の確認などにも活用できそうです。
是非、以下の「お問い合わせフォーム」から気軽にお問合せください!
QESでは、Microsoft製品やAWS製品に関するソリューションに取り組んでおります。
他プロダクトに関するブログも投稿しておりますので、下記のリンクから是非ご覧ください。
また、QESでは採用活動を強化しております。
ブログを読んで弊社の業務内容に興味を持っていただけましたら、採用情報にもお目通しいただければ幸いです。
https://www.qes.co.jp/recruit.htm
※このブログで参照されている、Microsoft、Windows、Azure、SharePoint、PowerAppsその他のマイクロソフト製品およびサービスは、米国およびその他の国におけるマイクロソフトの商標または登録商標です。