はじめに
Teamsに外部ユーザーのメールアドレスを入れて追加すれば
きちんとユーザーに通知→追加されるのでPowerAutomateでも同じようにTeamsのコネクタのチームのメンバーに追加のみでできるだろう…と見落としがちなのかもしれません。
それはね…、エラーでこけます。
なぜなら、手動で追加すると裏側でEntraIDにゲストユーザーを登録後、チャネルに追加されているからです。
※蛇足ですけどなんというか、
私のようなアプリとか自動化をやっているような者でもEntraIDって本当に切っても切れないものなんですよね。
ここがしっかりできていたら、なんでも楽なんですけどね…
やり方
じゃあ、EntraIDのコネクタからユーザーの作成アクションを追加すればいいの?ってなると思うのですが、このアクションには外部ユーザーにテナントに追加したよという通知するOr否の項目がないのです。
▽Notifyの項目が見当たらないユーザーの作成アクション、悲しい。
よって、困ったときのGraphAPIを利用してゲストユーザーを招待をする必要があります。
そう、簡単に言えばHTTPリクエストアクションがチームにメンバーを追加するアクションの前に必要なんです。
フローだとこんな感じ。
そしてHTTPリクエストは下記のような感じ。
これでEntraIDにゲストユーザーが登録され、かつ、
"sendInvitationMessage": trueとしておくと、下記のようなメールをテナントが勝手に送ってくれます。
ゲストユーザーにはこのメールのAccept invitationのメールでAcceptをクリックした後、チームに招待されましたの通知も別に届くので最終的には2通、メールが届く形となります。
※このメールがないとテナントに追加されたかどうかもわからずじまいになっちゃうので。
最後に
-
HTTPリクエストの後、環境がよっぽど整っていない限りは遅延を入れてあげてください。
-
使い方の例としては各部署の担当者から申請(Formsとか)→承認後→自動ゲストユーザー追加などの形にしてあげるのもよいかもしれません。
-
共有チャネルへのゲストユーザー自動追加方法は次回の課題として、もう少し調べてみます…