MoreBeerMorePower

Power Platform中心だけど、ノーコード/ローコード系を書いてます。

SharePoint Online の チームサイト に接続されている M365 グループの情報を Power Automate で取得する

SharePoint Onlineのチームサイトを管理する際、サイトオーナーやメンバーを取得するために接続されているグループのIDが欲しかったんですがUIから取れなさそうだったのでPower Automateを使いました。

今回はその際に使った方法を残しておきます。

Power Automate の SharePoint関連アクション

Power Automate の SharePoint関連アクションは他のコネクターに比べてかなり充実していますが、サイトを操作・情報取得する類のアクションが用意されていません。

今回で言うとサイトのプロパティを取得したいわけですが、標準アクションでは提供されていませんね。

ということで、困ったときの "Send HTTP request" アクションを使います。

利用するAPIは以下のDocsに書かれている

GET http://<sitecollection>/<site>/_api/web/allProperties

です。

docs.microsoft.com

グループIDを取得するフロー

"Send HTTP request" のアクションを使って以下のようなフローを作成しました。サイトURLは前段の "Compose - Site URL" で指定しています。(隠すため)

UriのパラメータにはDocsのとおり _api/web/allproperties を設定しています。

APIを実行して得られる結果を見てみると、ボディの中に"GroupId"というプロパティが含まれていることが分かります。ついでにデフォルトの言語設定もここで見ることができますね。

グループIDを "Send HTTP request" アクションの結果から得るのには以下の式を利用します。

body('Send_an_HTTP_request_-_Site_Properties')?['d']?['GroupId']

body(~~)の部分は動的コンテンツから持ってきてください。

実行してみると、目的のグループIDが取得できていることが分かりました。

おわり

今回はPower Automateを利用してSharePoint Onlineのチームサイトに接続されたM365 グループのIDを取得してみました。 SharePoint関連のアクションは充実していますが、それでも足りないときには頑張ってSharePoint REST APIのDocsをにらめっこして、"Send HTTP request"アクションで凌ぐしかないですね。

docs.microsoft.com