グループアドレスをもとにチームのメンバーを一致させる

Microsoft Teamsのチームにユーザーを追加するときグループアドレスを使用すると、操作した時点のグループアドレスに含まれるユーザーが追加されます。しかし、グループアドレスに含まれるユーザーが変更されてもチームのユーザーは更新されません。

この記事ではPower Automateを使ってグループアドレスに含まれるメンバーを自動的にチームに追加する手順を紹介します。追加手順だけ示しますが、簡単な変更でチームから削除すべきメンバを抽出することもできます。

フローの全体像

実際にはスケジュールトリガで実行するのがいいでしょう。

アクションの設定

作成 グループアドレス

グループアドレス(メールアドレス)を指定します。

グループの一覧

Office365グループコネクタ

「行をフィルターする」に mail eq ‘outputs(‘作成 グループアドレス’)’

作成 グループアドレスのID

first(outputs(‘グループの一覧’)?[‘body’]?[‘value’])?[‘id’]

グループ メンバーの一覧表示

Office365グループコネクタ

グループIDに outputs(‘作成_グループアドレスのID’)

選択 グループアドレスメンバーのユーザーID

元に「グループ メンバーの一覧表示」のbodu/value

マップのkey userID,
値を入力します 「グループ メンバーの一覧表示」のユーザーID

作成 チームのID

メンバーを追加したいチームのIDを入力します

HTTP 要求 V2 を送信する

URIを以下のように設定。グループIDのところに「作成 チームのID」を入れる。

https://graph.microsoft.com/v1.0/groups/{グループID}/transitiveMembers/microsoft.graph.user?$select=id,displayName,userPrincipalName

JSON の解析

Contentに「HTTP 要求 V2 を送信する」の本文、スキーマを以下のように設定。

{
    "type": "object",
    "properties": {
        "value": {
            "type": "array",
            "items": {
                "type": "object",
                "properties": {
                    "id": {
                        "type": "string"
                    },
                    "displayName": {
                        "type": "string"
                    },
                    "userPrincipalName": {
                        "type": "string"
                    }
                },
                "required": [
                    "id"
                ]
            }
        }
    }
}

選択 チームのメンバーのIDのみ

元に「選択 チームのメンバーのIDのみ」のbodu value

マップのkey userID
値を入力しますに JSONの解析の Body id

アレイのフィルター処理

グループアドレスメンバーのユーザーID配列から、チームメンバーのユーザーID配列に含まれない要素を抽出する操作をする。

From

body(‘選択_グループアドレスメンバーのユーザーID’)

Filter Queryは以下の通り。

左辺 contains(body(‘選択_チームのメンバーのIDのみ’), item()?[‘userID’])

判定式 「異なる」 (is not equal to)

右辺 true ※数式から記入する

チームにメンバーを追加

最後にMicrosoft Teamsコネクタの「チームにメンバーを追加する」アクションで、「アレイのフィルター処理」の結果で得られるユーザーのGUID配列をチームに追加して完了。

アレイのフィルター処理を書き換えれば、フロー実行の時点でチームに含まれるがグループアドレスに含まれないユーザーを抽出することもできます。

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください