Power Apps で SharePoint リスト アイテムに「いいね」する

2022/12/06に公開

はじめに

SharePoint リストには「いいね」をする機能があります。今回はこれを Power Apps から操作してみます。

実行手順

SharePoint リストの設定

コミュニケーション サイトでは既定で評価の設定の機能が有効になっていません。なのでまずは有効にする必要があります。

https://zenn.dev/karamem0/articles/2019_10_31_120000

PnP PowerShell だと以下のような感じです。

Enable-PnPFeature -Identity 915c240e-a6cc-49b8-8b2c-0bff8b553ed3

機能を有効にしたらリストの設定で「いいね」を有効にします。

アプリの作成

ギャラリーを追加し SharePoint リストをデータ ソースに設定します。「いいね」の状態を表示できるようにアイコンを追加します。下のスクリーンショットでは説明のためにアイコンを並べていますが実際は重ねるように表示します。

アイコンの Visible を以下のように設定します。SharePoint リストの LikedBy には「いいね」をしたユーザーの情報が入っているのでその中にログインしているユーザーがいるかどうかを判断しています。

「いいね」されていないアイコンの場合

IsBlank(LookUp(ThisItem.LikedBy, Email = User().Email))

「いいね」されているアイコンの場合

Not(IsBlank(LookUp(ThisItem.LikedBy, Email = User().Email)))

フローの作成

「いいね」の更新は SharePoint REST API を呼び出す必要があるため Power Automate のフローを作成します。

パラメーターとしてリスト アイテムの ID と新しい「いいね」の状態を受け取り、SetLike メソッドを呼び出します。フローの実行は同期で動いて欲しいので必ず応答アクションを含めるようにします。

フローの呼び出し

アイコンの OnSelect でフローを呼び出します。

「いいね」されていないアイコンの場合

{{flow-name}}.Run(ThisItem.ID, true); Refresh({{data-source}})

「いいね」されているアイコンの場合

{{flow-name}}.Run(ThisItem.ID, false); Refresh({{data-source}})

フロー名およびデータ ソース名は適切な名前に置き換えてください。

実行結果

初期状態はこのような感じになります。

「いいね」をクリックすると状態が切り替わるのを確認できます。

おわりに

うまくやれば既読機能としても使えるんじゃないかなと思ったりしました。

Discussion