Power Automate から Teams チームをカスタマイズしながら作成する（プレミアムコネクタ不要）

# はじめに

Power Automate の Teams コネクタには、「チームの作成」アクションがあります。
単純にチームを作成する場合はこのコネクタで要件は満たせるのですが、 **メールアドレスを指定やチームプロパティを設定するなどのカスタマイズはできません** 。

また、所有者はフローの実行者となるため、
「チームの作成は申請制、申請者を所有者に設定」といった運用にも一工夫が必要です。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/480768/cce34477-9eb1-74e1-05ba-dd671df06c95.png)

当記事では、for 365 の範囲で（Power Automate の追加ライセンスなしで）、カスタマイズされたチームを作成する方法と、メンバーや所有者の変更方法について記載します。

1. チームの作成
1. メンバーの追加
1. 所有者の変更（フローの実行者を所有者から外す）


# 1.チームの作成

上記の「チームの作成」アクションでは、指定したチーム名がメールアドレスのユーザー名として設定されます。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/480768/e26d442f-0dc6-1003-82ec-a931d21964e0.png)

よって、Graph を利用し、

① Microsoft 365 グループを作成
② Microsoft 365 グループからチームを作成

の手順を踏みます。

## ① Microsoft 365 グループを作成

メールアドレスを指定し、Microsoft 365 グループを作成する場合は、Microsoft Graph を利用します。
[Office 365 Groups] コネクタの、[HTTP 要求 V2 を送信する] アクションで実行可能です。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/480768/fb09aa0c-3726-fe3c-7cad-a993169809bd.png)

■ URI
```
https://graph.microsoft.com/v1.0/groups
```

■ メソッド
POST

■ 本文
```
{
  "description": "< 説明 >",
  "displayName": "< チームの名前 >",
  "groupTypes": [
    "Unified"
  ],
  "mailEnabled": true,
  "mailNickname": "< mailaddress >",
  "securityEnabled": false
}
```

< > で囲んだ部分は任意の値を入力してください。
< mailaddress > には、メールアドレスのユーザ名部分（@以前の部分）のみを入力してください。


■ Content-Type
```
application/json
```

## ② Microsoft 365 グループからチームを作成

Microsoft 365 グループ作成後に15分間待機が必要ですので、15分の遅延を実施します。

以下、MSDocsより。
``チーム呼び出しの作成が遅延した場合は、伝達遅延のために 15 分間待機する必要がある前に、呼び出しを最大 3 回再試行できます。 グループが 15 分以内に作成された場合、レプリケーションの遅延が原因でエラー コードで 404 呼び出しが失敗する可能性があります。``

https://learn.microsoft.com/ja-jp/graph/api/team-put-teams?view=graph-rest-1.0&tabs=http

[スケジュール]－[遅延] で15分の遅延設定後、[Office 365 Groups] コネクタの、[HTTP 要求 V2 を送信する] アクションで下記設定を行ってください。



![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/480768/12369127-0a18-3b07-8d95-21e5be2a7b44.png)

■ URI
```
https://graph.microsoft.com/v1.0/groups/@{body('HTTP_要求_V2_を送信する')?['id']}/team
```

■ メソッド
PUT

■ 本文
```
{}
```
:::note info
作成するチームに様々な設定を実施する場合は、以下ドキュメントに従って本文を編集してください。
https://learn.microsoft.com/ja-jp/graph/api/resources/team?view=graph-rest-1.0#properties
:::

■ Content-Type
```
application/json
```

# 2.メンバーの追加

チームへのメンバー追加は、

* [Office 365 Groups] コネクタの [グループへのメンバーの追加]アクション
* [Teams] コネクタの [チームにメンバーを追加する] アクション

のどちらでも可能ですが、所有者の設定が可能な後者がおすすめです。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/480768/bc540b08-29b0-efa6-7fce-9826495ac44c.png)

IDには、[カスタム値の入力]を選択したうえで、以下の値を入れてください

```
body('HTTP_要求_V2_を送信する')?['id']
```

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/480768/943da63d-f4b5-d26b-144f-525c4e8a9d3d.png)

また、3つ目のパラメータに「はい」を設定すると、登録したユーザーはチームの所有者となります。




# 3.所有者の変更（フローの実行者を所有者から外す）

上記の工程において作成されたチームの所有者には、フローの実行者が含まれています。
運用管理上、フローの実行者者をチーム所有者から外したい場合は、以下の手順を実施してください。

:::note warn
チーム所有者なしの状態にはできないため、あらかじめ 「2.メンバーの追加」 の手順で別の所有者を追加しておく必要があります。
また、所有者追加が反映されるまでに若干のラグがあるようです。
:::

[スケジュール]－[遅延] で5分の遅延設定後（上記ラグ対応）、
[Office 365 Users]コネクタの [マイプロフィールの取得(V2)] で、フローの実行者の ID を取得し、
[Office 365 Groups] コネクタの、[HTTP 要求 V2 を送信する] アクションで下記設定を行ってください。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/480768/d604be5c-e6b7-e837-77ac-cd6871e9c9dd.png)



■ URI
```
https://graph.microsoft.com/v1.0/groups/@{body('HTTP_要求_V2_を送信する')?['id']}/owners/@{outputs('マイ_プロフィールの取得_(V2)')?['body/id']}/$ref
```

■ メソッド
DELETE

■ Content-Type
```
application/json
```

# まとめ
Teams チーム作成が申請制な業務や、チームの立ち上げ時などでご活用いただければ。