🎃

Power Automate で OneDrive や SharePoint の共有リンクからパスを取得する

2022/05/07に公開

共有リンクから、パスを取得する方法です。
SharePoint に HTTP 要求を送信します のアクションにて、以下の設定を行い実行します。
OneDrive で作成された共有リンクでも動作します。

項目 使い方
サイトのアドレス {対象のファイルのあるサイト、もしくは権限のある他のサイト}
方法 GET
URI _api/SP.RemoteWeb(@url)/web/GetFileByUrl(@url)?@url='{エンコードした共有リンク}'

注意事項

よそのテナントのものは取得できませんので、他の方法をご検討ください。

実行例

  • 実行結果

  • フローの全体図

  • concat の中身

    concat('_api/SP.RemoteWeb(@url)/web/GetFileByUrl(@url)?@url=''',encodeUriComponent('{sharelink}'),'''')

  • 配置されているサイトがわかっていれば、SP.RemoteWeb はなくてもよい


    concat('_api/web/GetFileByUrl(@url)?@url=''',encodeUriComponent('{sharelink}'),'''')

参考(公式)

https://docs.microsoft.com/en-us/sharepoint/dev/spfx/shorter-share-link-format

参考(共有リンクの解析を試みた方々)

https://oneminuteofficemagic.com/2020/03/23/deciphering-the-sharepoint-online-onedrive-sharing-links/
https://cresyl.eu/en/Office-365/understanding-how-share-links-are-built/

Discussion