見出し画像

Power Automateを使ってTeams上で全体にメンションする

こんにちは
普段はプロダクトマネージャとして業務しています。
毎週全社員がいるチャットルームに優先順位やプロジェクトの進捗状況について共有しています。
毎週やるとはなっているのですが、共有する時間がばらばらだったり、ときには忘れてしまったり。。色々あるので、自動化できないかということで、
Power Automateを使って自動化に取り組んで引っかかった部分について共有できればなと思います。

一人ずつ片っ端からメンションする方法もあるみたいですが、ちょっと全社員に対してだとチャットの行がすごいことになるので、全体メンションでやっていきます。

1.前準備

トリガーは使い方に応じてなんでも大丈夫です。
今回はボタンを押すと動くようにしました。
トリガー以下の全体像はこちらです。

全体像

まずは変数を初期化するを使っていきます。
種類はすべて文字列で本文、チームID、チャネルIDをそれぞれで使います。(こちらはあとで変えやすいので利用しているだけですので、省いた状態でHTTP要求を送信するの中にベタ書きでも大丈夫です。)

特にチャットに共有する日の日付を入力する場合は
数式を入力します。
本文はhtml形式で記載するのでお気をつけください

addHours(utcnow(),9,'MM月dd日')

2.チームIDやチャネルIDの確認方法

ちょっと話はずれるのですが、チームIDとチャネルIDの取得方法について記載して置きます。
お知らせするチャネルの3点リーダからチャネルへのリンクを取得をクリック後URLをテキストエディタを使ってリンクをペーストします。

コピペすると以下になります。

https://teams.microsoft.com/l/channel/チームID/△△△△△△△△△△△△△?groupId=チャネルID&tenantId=■■■■■■■■■■■■■■■■■■■■■■

URLのチャネルIDとチームID部分をそれぞれPower AutomateのチャネルIDとグループIDに入力します。

3. Teamsのメンションの設定

やっと本題です。
以下を参照して、設定を進めてみてください。

URIは以下です。
チームIDとチャネルID部分を設定してください。


https://graph.microsoft.com/v1.0/teams/チームID/channels/チャネルID/messages

メソッド:POST

本文は以下になります。
こちらもチャネルIDと本文は設定する必要があるので、ご確認ください。

{

 "mentions": [
    {
      "id": 0,
      "mentionText": "一般",
      "mentioned": {
                        "conversation": {
                            "id": "チャネルID",
                            "conversationIdentityType": "channel"
                        }
      }
    }
  ],
  "body": {
    "contentType": "html",
    "content": "本文<at id='0'>一般</at>"
  }
 
}

コンテンツタイプ:application/json

最後に

以上で設定は完了です
これにたどり着くまで結構苦労したので、皆さんはスムーズにメンションができると嬉しいです。
役に立っていればぜひいいねをお願いします!!


この記事が気に入ったらサポートをしてみませんか?