2
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

SharePoint の“ファイル要求”機能は 外部共有が制限された組織でも、Power Automate なら使用できる!

Posted at

はじめに

SharePoint の“ファイルの要求”は、任意のフォルダに対して直接ファイルのアップロードを要求できる機能ですが、組織の設定が「最も制限が少ない」すべてのユーザーになっていないと、メニューにこの項目が表示されず、使用することができません。

すべてのユーザーになっていると、組織外にもファイルを共有できてしまうので、情報漏洩の懸念から、制限を掛けている組織も多いと思います。

今回は制限のかかかった組織でも、組織内でこのファイル要求機能を利用するために、ローコードユールであるPower Platform を活用したいと思います。
image.png

ファイル要求のためのURLをPower Automate で発行する

ファイルをアップロードしてもらうためのURLを発行するフローを作成します。

使用イメージ

作成したフローは、ドキュメントライブラリの右クリックメニューから起動します。
image.png

右側のパネルでフローが起動されるので、要求時に表示される説明文を入力して実行します。
2025-02-15_15h21_50.png

今回はTeamsのボットからのチャットで自分に届くようにしています。
2025-02-15_15h22_14.png

このURLをコピーして開けばファイル要求機能が使用できます。
URLを他の人にチャットで共有するなどしてご利用いただけます。
2025-02-15_15h23_08.png

このURLにアクセスするには、同じ組織のアカウントでサインインする必要があります。
外部からファイルを集める目的では使用できませんのでご注意ください。

フローの作成

フローは結構シンプルな構成です。
大事なのは2番目のSharePoint に HTTP 要求を送信しますアクションだけなので、他の部分は自由に変更することもできます。
image.png

トリガー

トリガーは選択したファイルの場合を使用しています。
ファイルの右クリックメニューから起動できるトリガーですね。
image.png

トリガーに入力を追加して、リンクを開いたときに表示される説明文を入力できるようにしています。

今回は実装していませんが、リンクの有効期限やパスワード、リンクの使用を限定するユーザーの指定もできるので、トリガーのインプットに含めておくこともできます。

リンクの発行

ファイル要求のリンクを発行するために、SharePoint に HTTP 要求を送信しています。
サイトのアドレスはトリガーのサイトと合わせてください。

image.png

URI
_api/web/lists/GetByTitle('ドキュメント')/items('@{triggerBody()?['entity']?['ID']}')/ShareLink

URIのGetByTitle('ドキュメント')の部分は、トリガーで指定したライブラリ名に合わせて指定します。
ただし、利用環境の言語設定によって変わる場合があるので、ご利用の環境に合わせて変更してください。(※GetByTitle('Document')になるなど)

また、items('@{triggerBody()?['entity']?['ID']}')の部分は、トリガーの動的なコンテンツから指定するのですが、中身が空のIDと正しいIDの2つが表示されていたので、入力時は注意してください。
image.png

重要なのがボディですね。

header
{
  "Accept": "application/json;odata=verbose"
}
Body
{
  "request": {
    "createLink": true,
    "settings": {
      "allowAnonymousAccess": false,
      "linkKind": 6,
      "expiration": null,
      "restrictShareMembership": false,
      "updatePassword": false,
      "password": "",
      "description": "@{triggerBody()?['text']}",
      "role": 8,
      "applicationLink": false,
      "limitUseToApplication": false
    }
  }
}

image.png

ボディの"allowAnonymousAccess": falseにしている部分が、組織外のユーザーには使用できないように制限を掛けている部分です。
組織の設定が「最も制限が少ない」すべてのユーザーになっていない場合は、この部分を設定に合わせておく必要があります。

現に、"allowAnonymousAccess": trueで発行を試みた場合、以下のエラーが発生します。
image.png
Request files link is disabled on this site.

リンクを自分に送る

あとは作成したリンクを何らかの形で表示してあげます。
今回は、手っ取り早くTeamsのチャットで自分に送ることにしました。
image.png

リンクの取り出し方は少し難しいです。
動的なコンテンツからは選択できないので、以下をコピペしたり数式でしっかり指定してあげてください。
一度実行してみてから、SharePoint に HTTP 要求を送信しますアクションの出力を確認すると良いと思います。

sharingLinkInfo
@{body('SharePoint_に_HTTP_要求を送信します')?['d']?['ShareLink']?['sharingLinkInfo']?['Url']
}

おわりに

今回はフローのみで行いましたが、Power Appsと組み合わせて画面を作ることもできます。
image.png

ファイル要求の機能は、Microsoft Forms を使ってファイルを集めるのとは違い、ファイルの拡張に制限がないことや、任意のフォルダに直接ファイルを集められるという利点があります。
最近だと、SharePointリストのリストフォームの添付ファイルとして集める方法もあるので、要件に合わせた選択肢を取れるといいですね。

制限のある組織でもファイル要求は使用できますので、あなたの選択肢の1つになれば幸いです!

2
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?