Power Automate でSharePointやOneDriveのリンクファイルを扱う


# はじめに
SharePoint やOneDrive for Business のファイルとして作成できる、**リンク**をPower Automate で扱う方法について語ります。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2572227/18f4488a-8439-e6ca-992d-7faf64e33289.png)

# リンク とは
[**+新規** ]からリンクを作成しようとすると、SharePoint やOneDrive 上にあるファイルを選択するか、直接URLを入力することを求められます。
ファイルを選択しても直接URLを入力しても、どちらにしても作成されるのは、指定したリンク先へのリンクファイルとなります。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2572227/5055444a-9e26-6960-b264-70de2b70f833.png)
ファイルへのリンクを作成した場合も、ダウンロードしてプロパティを確認するとURLが指定されているのがわかります。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2572227/d3d6dd7a-c815-d1b9-e6f6-d4fc9b5ebb10.png)
この「.url」の拡張子のファイルは、そもそもどういったファイルなのでしょうか？

# .urlファイルとは？
bingさんに聞いてみました。(最近1番の話し相手です)
URLを指定したテキストデータでできているようですね。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2572227/6e84098e-298b-c1d3-7c1e-55ebdd108aff.png)
>「.urlファイル」とは、Microsoft Windowsのインターネットショートカットで、完全なURLリンクを提供することで、インターネットやその他のリソースを指すことができます。このファイルは、テキストベースのファイルであり、ファイルシステムショートカット (.lnk)とは異なります。このファイルを開くには、Webブラウザを使用することができます。

>「.urlファイル」を作成する方法は、以下の手順に従ってください。
> 1. テキストエディタを開きます。
> 2. 「[InternetShortcut]」という行を入力します。
> 3. 「URL=」という行を入力し、その後にURLを入力します。
> 4. ファイル名を「.url」で終わるように設定し、保存します。

# Power Automate でリンクファイルを解析する
では、実際に確かめてみましょう！
まずテスト用に、https://qiita.com へのリンクファイルを作成しておきました。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2572227/e50c6ab5-e722-96f2-d79b-b78b72c6755c.png)


このファイルの中身を確かめるために以下のフローを実行します。
選択したファイルのファイルコンテンツ、つまりファイルの中身を確認するフローです。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2572227/9340dfb0-de8f-4046-258d-749ab0b4669b.png)


先ほど作成したテスト用ファイルを選択して、フローを実行します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2572227/9cbd479e-68bf-0e5f-4226-fa3950d0b1be.png)

こちらが実行結果です。
ファイルコンテンツ自体は謎の文字列となっていますが・・・
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2572227/5c58b25e-251d-9070-1db7-0bfb3ac777d3.png)
デコードして復元してあげると、確かにURLを示すテキストデータが入っているのがわかります。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2572227/8dfef18d-c4a5-f8e2-ce5e-eaa63b22809f.png)

作成アクションでのデコードには、以下の関数を使用しました。
base64というデータを表す文字列だったんですね。
```Power fx:作成
decodeBase64(
    body('パスによるファイル_コンテンツの取得')?['$content']
)
```


https://medium-company.com/base64/

# リンクを作成するフロー
次はPower Automate でリンクファイルを作成します。
逆の操作をしてあげればよいので、URLをあらわすテキストをファイルコンテンツにしてあげればOKですね。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2572227/7650c341-75e7-f621-97d7-e48ea893017f.png)
```Power fx:ファイルコンテンツ
[InternetShortcut]
URL=@{triggerBody()['text']}
```

では、フローを実行します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2572227/5cd04c0d-9f89-ffcd-59a7-923f05527d5c.png)

OneDrive に戻って確認すると、ちゃんとリンクが作成されていました。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2572227/d1ded1aa-3497-feec-eca4-3c7a8ea416fc.png)
クリックするともちろんリンク先に移動できます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2572227/a0da6f86-f2cf-e92a-c817-7587d77e2953.png)

# おわりに
ということで、簡単でしたがPower Automate でリンクファイルを扱う方法でした。
使用用途はそれほど多くなさそうですが、自分の**Teamsの投稿からOneDriveに添付ファイルを一括ダウンロードするフロー**に、取得元メッセージへのリンクを足しておこうと思います！
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2572227/fa36b386-b565-594b-d086-14312267e237.png)


https://qiita.com/ksgiksg/items/c7af8859f31659e72e39