【PowerAutomate】Teamsからチームまたはチャネル宛のメンションをする方法


概要

PowerAutomateからGraphAPIを使い、チームまたはチャネル宛のメンションを行います。
<at>~</at>で囲む方法ではチームまたはチャネルへのメンションができません。(2020年9月現在)
恐らくですが、GraphAPIにある「mentions」プロパティを使うしかないと思います。
あと残念なことにWebhookではメンションに関するプロパティはありません。

事前準備

・AzureADでAPIのアクセス許可を追加
 参考:(https://qiita.com/kaitomate/items/606f103f34dfcadd31dd)

・ブラウザ版のTeamsにログインし対象のチームIDとチャネルIDを取得
 こちらの方の記事をご確認ください。分かりやすいです。
 参考:(https://qiita.com/yamad365/items/e480f77e9102b132d258)

フロー作成

今回はインスタント(手動)フローでチャネル宛にメンションするフロー作成します。
トリガーについては用途に応じて設定してください。

1.チームIDとチャネルIDを変数に格納

URLが長くなるのとコピペがめんどくさいので変数作っちゃいます。
いらない方は飛ばしてもOKです。

2.HTTP要求の作成

ここからAzureADに接続してAPIを設定していきます。

最初は下記が表示されると思うのでそれぞれ入力してください。
・Base Resource URL → https://graph.microsoft.com
・Azure AD Resource URI → https://graph.microsoft.com

次に設定部分です。
方法:POST
URL:https://graph.microsoft.com/v1.0/teams/チームID/channels/チャネルID/messages
ヘッダー:Content-type application/json

本文です。(下記にコード書いてます)
黒塗りのところはチャネルの名前してください。
チーム宛にメンションする場合は黒塗りの部分をチーム名にして
赤枠で囲ってるchannelIDをチームID、「channel」を「team」に変更してください。

{
    "body": {
    "content": "This is Flow mention channel test, <at id=\"0\">チャネル名</at>",
    "contentType": "html"
            },
    "mentions": [
                {
                "id": 0,
                "mentionText": "チャネル名",
                "mentioned": {
                                "conversation": {
                                                    "id": "チャネルID",
                                                    "displayName": "チャネル名",
                                                    "[email protected]": "#Microsoft.Teams.GraphSvc.conversationIdentityType",
                                                    "conversationIdentityType": "channel"
                                                }
                            }
                }
                ]
}

3.結果

画像のようになっていればOKです。
※すいません、teamsの見た目変えてるので見づらいかも…
赤塗のところにチャネル(チーム)名が表示され、赤枠にこのマークがついていればメンションされてます。

最後に

ググッても個人にメンションする方法しか出てこなくて嫌になりましたね笑
ぜひLGTM頂ければ日々を生きる気力が湧いてきますのでお手数ですが、ポチッとお願いします。
多くの方に見て頂ければ多分ググッた時に上位の方に来ると思うので…