Power Automateを使ったTeamsのチームメンバーの一括登録とエクスポート
2021年08月13日 金曜日
CONTENTS
こんにちは、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にしても良いと思います。
この情報が参考になれば幸いです。