2024年5月15日 (水)

Photo

SharePoint サイトで作成するページにはコメント機能があります。既定ではオンになっています。うまく利用すれば、閲覧者とのコミュニケーションの場として利用できます。

とはいえ、コメントが不要なケースもあります。その場合、ページ単位で有効・無効にはできます。それ以外にテナント全体で一括でオフにすることもできます。が、コメント機能が不要なのは自分が利用しているサイトだけで組織全員がどう考えているかまで把握できないものです。そこでサイト単位でオフにできないかという話になってきます。

実際にサイト単位での無効化はできるのですが、これはAPIを経由する必要があるため PowerShellなどを使わないといけません。SharePoint サイトを利用しているユーザーのほとんどは PowerShellに精通してはいないでしょうから、この選択肢をとるのもなかなか難しい。

そこで比較的ユーザーとして手軽な手段として Power Automate を使う方法を紹介します。Power Automate の SharePoint コネクターには「HTTP要求を送信」するアクションがあります。これを使うと SharePoint の REST APIを利用できます。

フローの作り方

今回は手動でトリガーするフローにします。次のようにフローを作成します。

20240514_193452

「SharePoint にHTTP要求を送信します」アクションは次のように構成します。

20240514_193633

まず、目的のサイトのURLを指定します。方法は POST を選択します。URIは「_api/web」と指定します。これで SP.Webオブジェクトを操作できます。

「すべてを表示」ボタンをクリックして、ヘッダーやボディの入力画面を表示します。

ヘッダーは次のように指定します。X-HTTP-Methodは大文字で “MERGE” を指定します。

Accept application/json;odata=verbose
Content-Type application/json;odata=verbose
X-HTTP-Method MERGE
If-Match *

ボディは次のようにJSONを指定します。CommensOnSitePagesDisabledプロパティの値を true にすることで無効化します。再び有効化したければ false にします。

{
"__metadata":{"type":"SP.Web"},
"CommentsOnSitePagesDisabled":"false"
}

以上でフローは完成です。

実行を試す

動画で確認してみてください。


YouTube: SharePoint ページ上のコメント機能をサイト単位でオフにする