はじめに
SharePoint やOneDrive for Business のファイルとして作成できる、リンクをPower Automate で扱う方法について語ります。
リンク とは
[+新規 ]からリンクを作成しようとすると、SharePoint やOneDrive 上にあるファイルを選択するか、直接URLを入力することを求められます。
ファイルを選択しても直接URLを入力しても、どちらにしても作成されるのは、指定したリンク先へのリンクファイルとなります。
ファイルへのリンクを作成した場合も、ダウンロードしてプロパティを確認するとURLが指定されているのがわかります。
この「.url」の拡張子のファイルは、そもそもどういったファイルなのでしょうか?
.urlファイルとは?
bingさんに聞いてみました。(最近1番の話し相手です)
URLを指定したテキストデータでできているようですね。
「.urlファイル」とは、Microsoft Windowsのインターネットショートカットで、完全なURLリンクを提供することで、インターネットやその他のリソースを指すことができます。このファイルは、テキストベースのファイルであり、ファイルシステムショートカット (.lnk)とは異なります。このファイルを開くには、Webブラウザを使用することができます。
「.urlファイル」を作成する方法は、以下の手順に従ってください。
- テキストエディタを開きます。
- 「[InternetShortcut]」という行を入力します。
- 「URL=」という行を入力し、その後にURLを入力します。
- ファイル名を「.url」で終わるように設定し、保存します。
Power Automate でリンクファイルを解析する
では、実際に確かめてみましょう!
まずテスト用に、https://qiita.com へのリンクファイルを作成しておきました。
このファイルの中身を確かめるために以下のフローを実行します。
選択したファイルのファイルコンテンツ、つまりファイルの中身を確認するフローです。
先ほど作成したテスト用ファイルを選択して、フローを実行します。
こちらが実行結果です。
ファイルコンテンツ自体は謎の文字列となっていますが・・・
デコードして復元してあげると、確かにURLを示すテキストデータが入っているのがわかります。
作成アクションでのデコードには、以下の関数を使用しました。
base64というデータを表す文字列だったんですね。
decodeBase64(
body('パスによるファイル_コンテンツの取得')?['$content']
)
リンクを作成するフロー
次はPower Automate でリンクファイルを作成します。
逆の操作をしてあげればよいので、URLをあらわすテキストをファイルコンテンツにしてあげればOKですね。
[InternetShortcut]
URL=@{triggerBody()['text']}
OneDrive に戻って確認すると、ちゃんとリンクが作成されていました。
クリックするともちろんリンク先に移動できます。
おわりに
ということで、簡単でしたがPower Automate でリンクファイルを扱う方法でした。
使用用途はそれほど多くなさそうですが、自分のTeamsの投稿からOneDriveに添付ファイルを一括ダウンロードするフローに、取得元メッセージへのリンクを足しておこうと思います!