このフローの目的
- 勤務状況をTeamsのステータスメッセージに表示したい。
- 勤務状況と別に固定メッセージも表示したい
前提条件
- Exchange Online 予定表に 勤務状況を登録している
- イベントの件名が一致するものをステータスメッセージに設定する対象とする
フロー全体図
フローの解説
Office 365 Outlook - 予定しているイベントが間もなく開始されるとき (V3) トリガー
イベント開始の数分(誤差あります)前にこのフローが実行されます。
変数 - 変数を初期化する アクション
ステータスメッセージに表示する固定メッセージをこの変数に格納します。
コントロール - 条件 アクション
まもなく開始されるイベントの件名が、ステータスメッセージに表示したい内容どうかを件名で判断しています。 大した数がなく頻繁に変わるものでもないのでフローに直接記述してますが、設定情報として別の場所に保存する方が望ましいかも。
ステータスメッセージを設定する (SharePoint - SharePoint に HTTP 要求を送信します アクション)
Teams のステータスメッセージを変更するアクションは用意されていませんが、SharePointコネクタの"HTTP 要求を送信します" アクションでAPIで設定することができます。
設定項目 | 設定値 |
---|---|
サイトのアドレス | https://presence.teams.microsoft.com ※カスタム値として設定します |
方法 | PUT |
URI | /v1/me/publishnote |
ヘッダー | Content-type : application-json |
ボディ | { "message": "本日は「@{triggerOutputs()?['body/subject']}」です。@{variables('固定メッセージ')}<pinnednote></pinnednote>", "expiry": "@{concat(triggerOutputs()?['body/end'],'Z')}"} |
{ "message": "本日は「@{triggerOutputs()?['body/subject']}」です。@{variables('固定メッセージ')}<pinnednote></pinnednote>", "expiry": "@{concat(triggerOutputs()?['body/end'],'Z')}" }
messageの末尾に <pinnednote></pinnednote>
と記述すると「他のユーザーが自分にメッセージを送るときに表示する」が有効になります。
expiry で ステータスメッセージの有効期間を設定できます。ここではトリガーイベントの終了時刻を設定しています。
※ 協定世界時(UTC)で設定する必要があります。