コルネの進捗や備忘録が記されたなにか

進捗や成果物や備忘録てきななにかを雑に更新していきます。

Power AutomateでSharePointやOneDriveのフォルダの色を変更する


スポンサードリンク

はじめに

OneDrive for BusinessやSharePointでフォルダの色を変更することができる機能が2023年8月中旬あたりに展開されました。

更新プログラムのロードマップ | Microsoft 365

今回はこのフォルダの色の変更をPower Automate経由で行う方法をまとめたいと思います。

フォルダの色を変更する

フォルダの色を変更するアクションは標準コネクタでは展開されていないので、「SharePoint に HTTP 要求を送信します」アクションにより、SharePoint REST APIを実行することで実現しようと思います。

フォルダの色変更は以下のAPIで行うことができます。

Method

POST

URI

_api/foldercoloring/stampcolor(DecodedUrl='[デコードされたフォルダのUrl]')

Header

{
    "Accept": "application/json;odata=verbose",
    "Content-Type": "application/json;odata=verbose"
}

Body

{
  "coloringInformation": {
    "__metadata": {
      "type": "SP.FolderColoringInformation"
    },
    "ColorHex": "[設定したい色]"
  }
}

実際に設定するとこんな感じです。

フォルダのURIを取得するために「フォルダー メタデータの取得」を行っています。

"/Shared Documents/General/テストフォルダ"みたいなのが欲しいだけなので、別に直打ちでもOKです。

ここで設定したい文字列はエンコードされた文字列なのでuriComponent 関数を用いてエンコードしてあげます。

ただし注意点としてここに設定するUrlはデコードされると以下のような形式である必要があります。

/sites/development/Shared Documents/General/テストフォルダ

「フォルダー メタデータの取得」アクションでは、"/sites/[サイト名]"の箇所が取得できないですね。

なのでこの方法で行う場合は、サイト名を取得するアクションを別で用意してあげるか予め設定しておいてあげます。

今回はサイトは固定で予め設定しておいてあげます。

設定している実際の式は以下のようになっています。

URI

_api/foldercoloring/stampcolor(DecodedUrl=@a1)?@a1='%2Fsites%2Fdevelopment@{uriComponent(outputs('フォルダー_メタデータの取得')?['body/Path'])}'

あとはBodyにて設定したい色を設定してあげます。

色ですが、以下のように定義されているようです。(左上から順にまとめています。)

色のサンプル ColorHex
0
8
1
9
2
10
3
11
4
12
5
13
6
14
7
15

例えば右下のような薄ピンク色に設定したい場合はColorHexは15ですので以下のように設定します。

Body

{
  "coloringInformation": {
    "__metadata": {
      "type": "SP.FolderColoringInformation"
    },
    "ColorHex": "15"
  }
}

色の設定方法がちょっとわかりにくいかもですねー

[おまけ]APIの調べ方

私がAPIを調べる際は以下のようにしています。

  1. 公式ドキュメントを確認
    例) Microsoft GraphSharePoint REST API
  2. 個人ブログなどで紹介してくれている人がいないか調べる
  3. ディベロッパーツールでリクエストを確認する

1, 2は調べていただければ解決するので今回は3のやり方を簡単に紹介しておこうと思います。
* 利用しているブラウザはChromeですが、おおよそ他のブラウザでも同じはずです。

まずは「F12」や「Ctrl + Shift + I」を押してみてください。
するとDev Toolsが画面右側に現れるかと思います。

私は右側にドッキングされている形式は見ずらいので、以下のように別タブで表示するようにしています。

また、調べてもらえれば日本語化するやり方もありますので日本語で見たい方はそちらの設定も行ってください。

リクエストを確認するには"Network"タブを確認します。

続いてDev Toolsを開いた状態で確認したいリクエストの操作を実際の画面で行ってみてください。

すると以下のようにリクエスト内容が記録されていきます。

(もし、確認したいリクエストの操作をする前からこちらのログに様々なリクエストが表示されている場合は、「Ctrl + L」を押してリセットするか、左上にあるClear network logより履歴のリセットを行ってください。 )

こちらのログで表示されているリクエストの1つを選択すると、そのリクエストの詳細を確認することができます。

色々ありますが、HeadersがリクエストされたHeader情報、Payloadにはリクエスト時に送られたBodyの情報が、そしてPreviewではリクエストの結果を確認することができます。

他にも項目がありますがここではざっくりこの程度で。
他の項目の情報も知りたい方は是非調べてみてください。

リクエストを1つずつ確認して目当てのリクエストを探すのでもよいのですが、「Ctrl + F」を押すことで検索を行うこともできます。

もし特定のキーワードがわかっている場合などはこちらを使うといいかもです。

また、左上の検索窓ではdomainやmethodなどの要素でフィルタすることも可能ですので、こちらも是非活用してみてください。

おわりに

ドキュメントの種類ごとに色分けしておくとぱっと見でなんのフォルダかわかりやすくなっていいかもですね!


スポンサードリンク