SharePoint Onlineのチームサイトを管理する際、サイトオーナーやメンバーを取得するために接続されているグループのIDが欲しかったんですがUIから取れなさそうだったのでPower Automateを使いました。
今回はその際に使った方法を残しておきます。
Power Automate の SharePoint関連アクション
Power Automate の SharePoint関連アクションは他のコネクターに比べてかなり充実していますが、サイトを操作・情報取得する類のアクションが用意されていません。
今回で言うとサイトのプロパティを取得したいわけですが、標準アクションでは提供されていませんね。
ということで、困ったときの "Send HTTP request" アクションを使います。
利用するAPIは以下のDocsに書かれている
GET http://<sitecollection>/<site>/_api/web/allProperties
です。
グループ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"アクションで凌ぐしかないですね。