Power Automateを使ってTeamsチャネルへの通知を実装している方も多いのではないでしょうか。
本記事では、Power Automateを使ってTeamsのプライベートチャネルのタグをメンションする方法について解説します。
Teamsタグの@mentionトークンの取得について
Teamsの「タグの@mentionトークンを取得する」アクションでは、指定したチーム内のタグのメンショントークンを取得できます。
しかし、現状ではプライベートチャネルのタグは表示されず、選択する事ができません。
プライベートチャネルのタグメンションの方法
プライベートチャネルのタグをメンションしたメッセージを投稿するためには、該当タグのIDを取得し「Microsoft Graph HTTP 要求を送信する」アクションを使用します。
具体的な手順についてご紹介します。
タグのIDを取得するフローを作成
プライベートチャネルにタグを作成する
該当チャネルに作成したタグをメンションしてテスト投稿する
Teamsの「メッセージを取得します」アクションのみのフローを作成
フローをテスト実行し、「メッセージを取得します」アクションの出力から手順2で投稿したメッセージの以下の値を確認する
- id:メッセージの詳細を取得するために使用するメッセージID
- channelIdentity の teamId:HTTP要求アクションで投稿を作成する際に使用
- channelIdentity の channelId:HTTP要求アクションで投稿を作成する際に使用
「メッセージ詳細を取得する」アクションを追加し再度テストを実行
※以下の赤枠に先ほど取得した id の数値を入力
実行履歴を確認し「メッセージ詳細を取得する」アクションの出力からタグのIDを取得する
HTTP要求アクションでメッセージを投稿するフローを作成
メッセージを投稿するプライベートチャネルの、チームIDとチャネルIDを格納する変数を作成
※前の手順で取得した teamId と channelId の値を入力
「Microsoft Graph HTTP 要求を送信する」アクションで以下のように指定
- URI:
https://graph.microsoft.com/v1.0/teams/@{variables('チームID')}/channels/@{variables('チャネルID')}/messages
- メソッド:POST
- 本文: ※「テスト」と記載している箇所は該当のタグ名を設定、id にはタグのIDを入力
{ "body": { "contentType": "html", "content": "<div><div><at id=\"0\">テスト</at> こんにちは!フローからタグをメンションして投稿しています。</div></div>" }, "attachments": [], "mentions": [ { "id": 0, "mentionText": "テスト", "mentioned": { "application": null, "device": null, "user": null, "conversation": null, "tag": { "@odata.type": "#microsoft.graph.teamworkTagIdentity", "id": "ここにタグのIDを入力", "displayName": "テスト" } } } ] }
- URI:
フローを実行し、タグメンションしたメッセージが投稿されることを確認
まとめ
本記事では、Power Automateを使用してTeamsのプライベートチャネルのタグにメンションする方法について説明しました。
プライベートチャネルでタグを作成できるようになり便利になりましたが、フローでは標準チャネルのタグしか選択できないのが悩みでした。
同じように困っている方は、これを参考にぜひ実践してみてください。