Power Automateを使ったTeamsのチームメンバーの一括登録とエクスポート

2021年08月13日 金曜日


【この記事を書いた人】
r-ito

Microsoft365のPowerPlatformを主に担当しています。だんだんPowerPlatformのサービスが増えて業務が自然拡大していく。好きな寿司のネタはたまご。

「Power Automateを使ったTeamsのチームメンバーの一括登録とエクスポート」のイメージ

こんにちは、Power Platform のあれやこれやを検証している r-ito です。
Power Platformというと通じにくいので、もっぱら Power なんとか ってやつ全部と紹介してたりします。
個人的につけてる略称は Power * です。

普段から社内でPower Automateのお困りごとについて相談を受けたりしています。
今回は相談を受けて「こんな感じならできるのでは」と提案した内容をご紹介します。

Microsoft Teamsでは、チームメンバーをCSV等による一括での登録ができません。
一応セキュリティグループを指定できるので、部署などは一気に登録可能です。
とはいえ細かいメンバー指定があると手作業でやる必要があり、大変だと思います。

またチームメンバーのCSV出力もサポートされていません。
いったい誰が所属しているのか、リストとしてほしい場合もあるかもしれません。

Microsoft Teams標準ではサポートされていませんが、今後実装されるかもしれません。
ですが、Power Automateを利用して実装が可能です。今回はある程度簡単に実装してみようと思います。

メンバーの一括登録

全体像は以下の通りです。トリガーについては手動でトリガーをするようにしています。
今回はあらかじめ決められたメンバーの初回登録を例とするためです。

変数を初期化します。ここでの初期化とは、初回登録、新規作成ぐらいの意味です。
名前にはわかりやすいものを自由につけてください。種類はアレイです。
一括で登録したいメンバーを以下のようなフォーマットで記述します。一番最後の行は , (カンマ)なしです。

[
“xxx@iij.ad.jp”,
“yyy@iij.ad.jp”,
“zzz@iij.ad.jp”
]

あらかじめテキストエディタなどで加工することを勧めます。

次にApply to eachを選びます。これは配列のループを行うものです。登録する名前を一個ずつ順次処理します。
コントロールという中に存在します。

 

早速Teamsにメンバーを追加したいところですが、現在プレビューとなっており特殊なIDでしか入力を受け付けません。
そこでIDを取得するコネクタを一つ挟みます。Office 365 ユーザを選んで、ユーザプロフィールの取得を選びます。

そして雷マークみたいなものを選択することで、前のコネクタで利用した値を利用することができます。
動的な値から現在のアイテムを選んでください。ループで順次処理中の値を一つ使うという意味です。

これでIDを取得する準備が整いました。Teamsのコネクタからチームにメンバーを追加するを選んでください。

そこで所属させたいチームをプルダウンで選択後、
チームに追加するユーザのAAD IDに対して動的な値からIDを選択してください。
以上でメンバー追加のフロー作成は完了です。

ただし100人以上の一括追加などは処理を一気に行うとエラーになる場合があります。
数が多い場合はスケジュールから遅延を選んでください。

基本的に1-3秒くらいあれば問題ないと思います。

ここまでできあがればテストをすることで実行が可能です。

右上のテストから手動でテスト を押し、 フローの実行を行ってください。

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

全体図はこんな感じです。
基本的に変数だけでPower Automateで完結させています。
なんらかのファイルやListsへの書き込みも可能ですが、こういう形でも実装できるという例を出します。

まずOffice365グループからグループメンバーの一覧表示を選びます。
選択肢の中にメンバー追加があるので、上で説明したTeamsへの追加もこれでいいのでは?と思われるかもしれません。
が、Teamsコネクタとしてあるわけですし、基本はそちらを利用したほうがよいと思います。

実はこのコネクタの実行だけで結果はすべて入っています。
しかしJSONで出力され、いらない情報も多いので加工します。
変数を初期化で文字列を選択します。

Apply to eachで文字列に対して動的な値を利用してユーザプリンシパル名(=メールアドレス)と表示名をいれます。
ここのフォーマットは自由なのでほしい形に整形していただいてかまいません。

改行をいれないとそのまま連結されるのでご注意を。
[ユーザープリンシバル名], [表示名][改行]
上記のようにするのがオススメです。

あとはこれを表示すればよいだけなのですが、Power Automateには変数だけの表示機能が見当たらなかったので
結局初期化をして表示という形にしています。
少し恰好がつきませんが、さくっと作って動かす分には問題ないでしょう。時には妥協も大事です。

違う変数名を新しく作って、追加した変数を入れるだけ。あとはテスト実行します。

結果のプレビューの中に値としてほしい情報が入っていると思います。

 

今回は変数を使って実装しましたが、最終段のコネクタをListsやExcelにしても良いと思います。
この情報が参考になれば幸いです。

r-ito

2021年08月13日 金曜日

Microsoft365のPowerPlatformを主に担当しています。だんだんPowerPlatformのサービスが増えて業務が自然拡大していく。好きな寿司のネタはたまご。

Related
関連記事