Teamsの同一チャネル内のメッセージへ飛ぶURLをPower Automateで生成したい
TL;DR
Teamsで同一チャネル内のメッセージへ飛ぶURLをクリックしても画面がスクロールせず無反応の場合は、URLにparentMessageIdパラメータを付与しておくとよい。
前置き:
これまで紙+押印だった社内の申請類をデジタル化したいとの要望を受け、Power AppsとPower Automateで申請~承認までの仕組みを作った。
フォームから送信された申請はTeamsの専用チャネルに投稿され、ボタン押下で承認できる(AdaptiveCard使用)
未承認のままの申請があれば、Teamsで承認者宛てにリマインドを投稿
リマインドには未承認一覧の表があり、申請内容が記載されたTeamsメッセージに飛べるURLも併記されている
申請内容もリマインドも同じチャネル内に投稿されている
期待した挙動:
Teamsの同一チャネル内にあるメッセージのURLをクリックしたら、スクロールしてそのメッセージに飛ぶ(いわゆるホームページの内部リンク的な動き)
実際の結果:
別チャネルのメッセージには飛ぶが、同一チャネル内のメッセージの場合はURLをクリックしても何も起きない。
解決策:
Power Automate側でTeamsメッセージのURL生成時に、parentMessageIdも含めるように修正した。
修正前:
https://teams.microsoft.com/l/message/<チャネルID>/<メッセージID>
(e.g. https://teams.microsoft.com/l/message/19:nekochan_kawaii@thread.v2/3141592653)
修正後:
https://teams.microsoft.com/l/message/<チャネルID>/<メッセージID>?parentMessageId=<メッセージID>
(e.g. https://teams.microsoft.com/l/message/19:nekochan_kawaii@thread.v2/3141592653?parentMessageId=3141592653)
parentMessageIdパラメータを付与することで、チャネル内遷移ではなくスレッド単体を表示する画面に遷移する。
これなら同じチャネル内のメッセージへスクロールアップしてくれない場合でも、むりやりスレッドに遷移してくれるので確実。
ちなみに職場のTeamsだと修正後のURLじゃないと当該メッセージへ移動できませんでしたが、個人で使っているTeams(の "コミュニティ" とやら)だと、修正前のURLでも遷移したりしなかったりでした。
環境やバージョンなどにもよるのかな?Microsoft製品にはあまり深入りしちゃだめですね。
スクショもなくて分かりにくいかもですが、キーワードだけでも誰かの役に立つかもわからんので、記事に残しておきました。
この記事が気に入ったらサポートをしてみませんか?