はじめに
私はTeams会議でうっかり録画を忘れてしまうことがよくあります。
そこで会議開始時刻を過ぎても録画をしていないとおかんが会議チャットで教えてくれるフローを作ってみました。
実行イメージ
会議の予定開始日時から2分経過しても録画をしていないと…
おかんが教えてくれます。
フロー全体図
フロー解説
フローの前半はこちらの記事で解説した内容そのままです。
予定表イベントから会議チャットのIdを取得しています。
延期期限アクション以降の解説をします。
[Schedule]延期期限-会議開始時刻から2分経過まで待つ
会議が始まっているであろう時間まで待ちます。
今回はトリガーの出力に含まれているイベントの開始日時の2分後を設定しています。
- Timestamp
-
addMinutes( triggerOutputs()?['body/start'], 2, 'yyyy-MM-ddTHH:mm:ssZ' )
-
[Control]スコープ-録画開始してるかチェック
[Microsoft Teams]Microsoft Graph HTTP 要求を送信する-会議チャットを取得
Graph APIで会議チャットに投稿されたメッセージを取得します。
- URI
- https://graph.microsoft.com/v1.0/me/chats/@{outputs('作成-会議チャットid')}/messages
- メソッド
- GET
Microsoft Graph HTTP 要求を送信するアクションを使うとこちらのエンドポイントでチャットのメッセージを取得することができます。
[Data Control]アレイのフィルター処理-録画開始メッセージをチェック
チャットメッセージの中に録画開始のメッセージが含まれていないかをチェックします。
- From
- Filter Query
- @{item()?['eventDetail/callRecordingStatus']}
- is equal to
- initial
この部分は実際のチャットのメッセージリストで確かめました。
上記のAPIエンドポイントから返されるjsonではvalueのアレイの中に各メッセージが格納されています。
会議チャットの中で赤枠の部分のようなメッセージはシステムメッセージという扱いになるようです。システムメッセージに関しては、表示されているような文字はjsonには含まれません。
ですが、"eventDetail/callRecordingStatus" が録画の状態を表すようです。
この値は下記のように対応しているようです。
- "initial"
- 録画開始
- "chunkFinished"
- 会議終了?
- "success"
- 録画完了
initialが含まれていない=録画が開始されていないと判定しています。
この為、録画開始後にすぐ停止してしまった場合にはこのフローのおかんは教えてくれません。
[Control]条件-録画してない?
アレイのフィルター処理の結果の数で分岐します。
- 条件
- @{length(body('アレイのフィルター処理-録画開始メッセージをチェック'))}
- is equal to
- 0
<Trueの場合>[Microsoft Teams]チャットやチャネルにカードを投稿する
会議チャットにアダプティブカードでおかんのメッセージを投稿します。
- 投稿者
- フローボット
- 投稿先
- Group chat
- Group chat
- @{outputs('作成-会議チャットid')}
- Adaptive Card
- Teams の開発者ツールアプリのアダプティブカードエディタで作成したものです。サンプルのカードをベースに最小限に削っただけのものです。画像もサンプルのままで実はおかんではありません。
-
{ "type": "AdaptiveCard", "body": [ { "type": "TextBlock", "size": "Medium", "weight": "Bolder", "text": "** 自動送信メッセージ **" }, { "type": "ColumnSet", "columns": [ { "type": "Column", "items": [ { "type": "Image", "style": "Person", "url": "https://pbs.twimg.com/profile_images/3647943215/d7f12830b3c17a5a9e4afcc370e3a37e_400x400.jpeg", "size": "Small", "altText": "Example profile picture" } ], "width": "auto" }, { "type": "Column", "items": [ { "type": "TextBlock", "weight": "Bolder", "text": "おかん", "wrap": true } ], "width": "stretch" } ] }, { "type": "TextBlock", "wrap": true, "size": "Large", "text": "録画ボタン押した?\nお母さん、押し忘れてないか心配でね。あんたの大事な会議、録画されてなかったら大変やもんね。余計なことだったらごめんね、でもお母さんの心配性、許してや〜。" } ], "$schema": "http://adaptivecards.io/schemas/adaptive-card.json", "version": "1.4" }
考慮事項
おかんはあなたが参加するすべてのTeams会議に現れる
今回のフローでは、特に制限をしていないのでフロー実行アカウントが参加するすべての会議でおかんの心配性が発動します。
自分が主催・テナント内招待された会議までは動作する事を確認しています。チャネル会議や他テナントから招待された会議での動作は未確認です。
- トリガー条件でおかんが心配する会議を制限する
- @equals(triggerBody()?['organizer'],'自分のメールアドレス') ←自分の主催する会議のみ
- イベントにカテゴリを付加し特定のイベントのみおかんに心配してもらう
といった制御は可能ですのでお好みでお試しください。
チャットをオフにした会議でもおかんは現れる
Teams会議のオプションでチャットをオフにできますが、おかんはそんなことお構いなしに突入してきます。おかんがメッセージを投稿するとチャットはオンに変わってしまいます。
Team会議urlの短縮で動作しなくなる可能性
Microsoft365のロードマップにて、今後Teams会議のURLが短縮される予定であることが発表されています。今回のフローは会議UrlからチャットIdを取得していますので、新しい会議Urlの仕様次第では動作しなくなるかもしれません。
さいごに
Microsoft Teams コネクタにMicrosoft Graph HTTP 要求を送信するアクションが追加されたことで、プレミアムコネクタを使わずにできる事がとても増えました!
このフローのおかんは忘れている事を教えてくれることしかできません。
Teams会議のオプションで自動で録画を開始するオプションもありますが、会議に1人目が参加した時点で録画が開始されてしまうので使い勝手が良くない面もあります。
Microsoft へ製品のフィードバックを行えるフィードバックポータルにて、このようなアイデアが投稿されています。共感いただける方はぜひVoteを!
会議開始前に雑談とかしてると、実際の会議の内容に入った時に録画ボタン押し忘れるんですよね。でも雑談は録画してほしくないわけで… #m365jp
— もくだいさん🇯🇵 365おじさん (@mokudai) 2024年6月12日
Voteしてください!
Automatically start recording when it is time for the meeting. 会議時間になったら録画を自動開始する https://t.co/5BKcGdcFJy