💻

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

2022/12/06に公開約1,600字

はじめに

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

ログインするとコメントできます