背景
お知らせなんかを Lists に登録して公開してる場合、通知を設定すればメールで見られるけれど、Teams で受けたいよね。
アクセス権限によっては、通知されたメールにトリガーをしかけなきゃいけないので、そんな時は以下とかで。
結果イメージ
タイトル、本文、投稿者(登録:Author, 更新: Editor とは別途登録された User。)
概要
- Lists 新規アイテム追加トリガー
-
展開内容生成
- DELVE 情報取得用に、投稿者ID取得
- リンクの相対⇒絶対変換(ハイパーリンクが相対アドレスになっているとそのままだとリンク踏めないため)
- Teams へ通知
Lists 新規アイテム追加トリガー
アイテムが作成されたとき を使ってトリガーしかけるだけ。
通知の場合、新規登録だけで大丈夫かな、と
展開内容生成
DELVE 情報取得用に、投稿者ID取得
DELVE 用にUser IDが欲しいが、付加されてきてないので、一意となる Email でユーザー検索して ID 取得
検索したユーザーのID
@{first(outputs('Search_for_users_(V2)')?['body/value'])?['id']}
リンクの相対⇒絶対変換
本文の中のリンクは、相対リンクとなっているので、正規表現置換用Office Scriptsで置換して修正
以下の例では普通の置換(Replace) で問題ないです。(必要なければ、Replaceで全然OK)
正規表現の例は以下とか
Teams へ通知
投稿者情報は以下で
本文は、<blockquote>
を使って展開
本文例
@{triggerOutputs()?['body/Title']}
<b></b><a href=""> </a> posted by <a href="https://jpn.delve.office.com/?u=@{outputs('Compose_OriginalAuthorID')}&v=work">@{triggerOutputs()?['body/OData__x6295__x7a3f__x8005_/DisplayName']}</a>
<blockquote>@{outputs('Run_script')?['body/result']}</blockquote>