PowerAutomate クラウドフローを作っていて必要になったので、Teams のチームのIDから Micorosft365グループに接続されたSharePointチームサイトのURLを取得する手順を検証してみました。
×:Teams コネクタの各アクションではサイトのURLは取得できない
まずTeamsコネクタの「チームの取得」アクション。
こちらの出力には残念ながらサイトURLは含まれていません。
△:Office 365 Groupsコネクタのアクションで取得できるが難あり
SharePointサイトのアドレスの既定値は、Microsoft365グループのメールアドレスの@前と一致します。
- https://xxxxx.sharepoint.com/sites/{mailNickName}
- {mailNickName}@xxxxx.onmicrosoft.com
そこで「自分が所有および所属しているグループの一覧」アクションの出力に含まれる"mailNickName"の値からサイトURLを作る事ができます。
フロー
「自分が所有および所属しているグループの一覧」アクションの出力はアレイになっていますので、グループID(teamId)でフィルターしてMicrosoft365グループのmailNickNameを取得しています。
実行結果
【難点】SharePointサイトのアドレスを編集した後は一致しなくなる
ただし、SharePointサイトのアドレスは作成後の変更する事ができます。変更後はmailNickNameの値とは一致しなくなります。
○:Graph API で何とかする
標準アクションでできない時は「HTTP要求を送信する」アクションでAPIを使って解決です。
https://graph.microsoft.com/v1.0/groups/{griupId}/sites/root
ドキュメントページにこのように書かれており正攻法なアプローチのようです。
フロー
実行結果
フローを実行してみると、APIを実行した出力に"webUrl"でSharePointサイトのURLが取得できています。
注意点
SharePointサイトのアドレスを変更した後しばらくはこのAPI呼び出しはエラーとなりました。変更後は時間をおいて試してみてください。
最後に
以上、Teams のチームからMicrosoft365グループに関連づけられているSharePointサイトのURLを取得してみる実験でした。
APIを利用するのが最も確実ですが、難点を許容できるのであればmailNicknameからのアプローチも手軽でありかもしれません。