はじめに
最近やっとPower Automation中級者程度なら名乗れるか、と思い始めたくらいの知識です。
記述内容間違っているよ、もっといい方法あるよ、などあれば優しくコメントもらえると嬉しいです。
利用シーン
Power AutomateからTeams投稿する際、チャネル・人にそれぞれメンションしたいとき
- 人のみにメンションしたいとき
→ 「Power Automate Teams メンション」と検索するとたくさん記事が出てきます。楽ちん実装 - チーム・チャネルをメンションしたいとき
→ プレミアムアクションであるMicrosoft 365 groupsコネクタ「HTTP要求を送信します」アクションを利用
本記事ではMicrosoft 365 groupsコネクタ「HTTP要求を送信します」アクションを利用して人・チャネル両方にメンションする方法について扱います。
プレミアムアクションが必要なのか
色々と調べた結果、2023年9月現在、プレミアムアクションなしに実現することはできないと判断しました(あくまで私見)
以前は「HTTP要求を送信する」アクションを利用することでプレミアムアクションを利用せずにチャネルメンションできていたようです。
しかし、23年9月現在、V2となっており色々試してみたもののエラー解消することができませんでした。
ビクターさん「プレミアムコネクターが唯一の選択肢だぜ」
リソース「Teams」が利用不可になったとの記述
もともと抜け道のようなものだったのでV2で対策されたということなのかもしれません。
本題
コネクタの探し方、チャネルへのメンション方法は他記事に譲ります。「Power Automate Teams チャネル メンション」で検索。
私が詰まったポイントは「チャネルと人、どちらにもメンションしたいが探しても探してもHTTP要求で人にメンションする方法がわからない」です。
初めに試したもの
まずはシンプルに<at>タグを試しました。
しかし、エラーにはならないがUPNがそのまま表示されるだけでメンションにはなりませんでした。
失敗!
<at>【ユーザUPN】</at>さん
最終的に辿り着いた先
チャネルと同様にmentionsに人も指定する必要がありました。チャネルと若干指定すべき項目が変わるので注意です。
解決!
{
"body": {
"contentType": "html",
"content": "
<at id=\"1\">CHANNEL NAME</at><br/>
<at id=\"0\">USER NAME</at>さん"
},
"mentions": [
{
"id": 0,
"mentionText": "USER NAME",
"mentioned": {
"user": {
"displayName": "USER NAME",
"id": "【ユーザのID】",
"userIdentityType": "aadUser"
}
}
},
{
"id": 1,
"mentionText": "CHANNEL NAME",
"mentioned": {
"conversation": {
"displayName": "CHANNEL NAME",
"id": "【チャネルのID】",
"conversationIdentityType": "channel"
}
}
}
]
}
参考
例 2: @mentions チャネル メッセージ内のユーザー
最後に
チャネルのメンション方法は検索したらいくらでも出てくるのですが、意外にも人にメンションする方法が全然見つからず沼りました。
チャネルメンションくらいプレミアム使わず実装させてほしい。プレミアム使ってもコーディングしないとダメなのもなんとも…