#PowerApps から Microsoft Teams のチームを作る

Microsoft Teams（以降、Teams）、皆さん利用されていますか？

当方は「これが無いと仕事にならない」というレベルでお世話になっています。そんな Teams 、最大の特徴は『チーム』の仕組みだと当方は思っています。そのチーム作成が、Power Apps のアプリからも実施できるようになっていたので、ザっと現状をまとめておこうと思います。

# コトの経緯
Power Automate で Teams のチーム作成アクションが、プレビュー環境以外でも利用可能になった、という情報がありました。情報連携は [@mofumofu_dance](https://twitter.com/mofumofu_dance) さんより頂戴しました。毎度ありがとうございます！

<blockquote class="twitter-tweet"><p lang="ja" dir="ltr">ホントだ！！ <a href="https://twitter.com/hashtag/MicrosoftTeams?src=hash&amp;ref_src=twsrc%5Etfw">#MicrosoftTeams</a> の「チーム作成アクション」がデフォルト環境（日本）にもきてるー！！！<br>Thanks <a href="https://twitter.com/mofumofu_dance?ref_src=twsrc%5Etfw">@mofumofu_dance</a> . <a href="https://t.co/vTvO1ZDTYw">https://t.co/vTvO1ZDTYw</a> <a href="https://t.co/ifJnl6DpKf">pic.twitter.com/ifJnl6DpKf</a></p>&mdash; やま (Yama) (@yamad365) <a href="https://twitter.com/yamad365/status/1293442406344323078?ref_src=twsrc%5Etfw">August 12, 2020</a></blockquote> <script async src="https://platform.twitter.com/widgets.js" charset="utf-8"></script>

で、思ったんですよ。
あれ？もしかして、Power Apps にも同じコネクターがきてるんじゃないか？と・・・

# 動作イメージ
はい、確認した限りで Power Apps のデフォルト環境（日本）にも Teams のチーム作成アクションきておりました。細かい話題の前に、動作確認結果をご覧ください。
<blockquote class="twitter-tweet"><p lang="en" dir="ltr"><a href="https://twitter.com/hashtag/PowerApps?src=hash&amp;ref_src=twsrc%5Etfw">#PowerApps</a> <a href="https://twitter.com/hashtag/MicrosoftTeams?src=hash&amp;ref_src=twsrc%5Etfw">#MicrosoftTeams</a> CreateATeam(Preview). <a href="https://t.co/F13C32gfUN">pic.twitter.com/F13C32gfUN</a></p>&mdash; やま (Yama) (@yamad365) <a href="https://twitter.com/yamad365/status/1294175082718191616?ref_src=twsrc%5Etfw">August 14, 2020</a></blockquote> <script async src="https://platform.twitter.com/widgets.js" charset="utf-8"></script>

# Create A Team
「Microsoft Teams」のコネクターを追加すると利用可能になります。なお、記事投稿時点（2020/08/14）で Teams コネクターはプレビューです。

```
　MicrosoftTeams.CreateATeam("チーム名","チームの説明",プライバシー);
```
パラメーターは下記の3つ。

| 名前     | Key         | 必須 | 型      |
|--------|-------------|----|--------|
| チーム名   | displayName | 必須 | string |
| チームの説明 | description | 必須 | string |
| プライバシー | visibility  |    | string |

公式情報は下記URLを参照ください。
https://docs.microsoft.com/en-us/connectors/teams/#create-a-team

3つ目の［プライバシー］については ”{visibility:"Private"}” のようにコンテキスト変数っぽく指定する必要があります。個人的な予想ですが、ここは VerUp で列挙型の値になるんじゃないかな？と思ってます。GA した際は要チェックですね。思った以上に指定できるパラメーターが少ないです。ちなみに、Automate のコネクターとアクションでも同じパラメーターです。

# 諸注意
一見便利そうなコネクターですが、Microsoft 365 と Teams の仕様を把握したうえで注意すべき点が幾つかあると考えています。
## 1．実行ユーザー ＝ チームの所有者
上記 CreateATeam メソッドですが、実行したユーザーがチームの作成者になります。加えて、冒頭の動画でも紹介したように”チームの所有者”としても実行ユーザーが自動的に登録されます。

## 2．戻り値（New Team ID）が Apps で受け取れない
Docs 上は戻り値で ”New Team ID”（新しく作成されたチームID）が返却される、となっています。当方が試した段階では Set 関数で受け取ろうとしてもエラーになってしまいました。
![ERR.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/215892/d7910496-d369-d4bd-1653-be4fb9029747.png)
下記の「CreateATeamResponse」である、となってるんですけどね。残念ながら Apps で色々試したのですが、どうしても戻り値を取得することができませんでした。一般提供される頃には改善されているでしょう！
https://docs.microsoft.com/en-us/connectors/teams/#createateamresponse

なお、この戻り値が取得できないと、何が問題なのか？
連続した処理で「新しくチームを作成する」→「所有者やメンバーで追加したいヒトを事前に入力させておいて、ついでに追加する」というコトができないんです。ここらへんは[以前も記事にしたネタに通ずるトコ](https://qiita.com/yamad365/items/c8883a27d5255c30a614)があるので、そちらと Docs をあわせてご確認ください。

# まとめ
結論「チーム作成を1つのアプリで完結させる」には良さそうな内容だと思います。

ただし、セキュリティ観点や会社のポリシー等で「Teams のチーム作成を全体管理者のみに限定している」という状態 ＝ ユーザーが自由にチーム作成できない場合は Apps のみで完結させるのが難しいかな、と考えている次第です。なぜなら、そのようなセキュリティと設定を実施している場合、往々にして「チーム作成は情報システム部等の管理部門へ申請」 → 「管理部門で承認」 → 「全体管理者でチーム作成」といったワークフローが必要になっているからです。Apps のみだと実行者＝チーム作成者になる時点でツラいですよね・・・。

はい、そんな場合は記事冒頭で紹介した Hiro さんが既に Automate を利用したワークフロー含めたチーム払い出しの記事を公開しています。下記の記事もあわせて確認して、皆さんの運用に即した処理を実現いただければ、と思う次第です。
 
 [Microsoft Teamsのチーム作成を自動化する (申請→承認→作成→通知)](https://qiita.com/h-nagao/items/9c008ef2a8c0b7159acb)

繰り返しになりますが、Power Apps、Power Automate 共に「チーム作成」はプレビュー段階です。今後の更新などで、より良くなることを願って結びとします。

それでは皆さま。素晴らしい Power Platform Life & Microsoft Teams Life を！