SharePoint Onlineサイトの利用状況データをPower Automateを使って自動取得する方法

SharePoint Online(以下SharePoint)のサイトの利用状況データを、月次で自動取得するPower Automateフローを作成しましたので、本記事でご紹介します。

「サイトの訪問者数」と「重複しない閲覧者数」を手動で取得して記録することは大変ですので、これらの数を利用されている方はぜひ参考にしてみてください。

概要

今回のフローで取得対象としているデータは以下2つです。

  • サイトの訪問数(以下PV数)
  • 重複しない閲覧者数(以下UU数)

これらの値はサイトの使用状況分析で確認することが可能です。

事前準備

サイトIDの取得

今回作成するフローで利用する「SharePointにHTTP要求を送信します」のアクションでは、取得対象サイトの「サイトID」が必要になります。

サイトIDの取得は「Microsoft Graph Explorer」で取得する事が出来ますが、SharePoint管理者またはMicrosoft 365テナント管理者権限で実行が必要になりますので、事前に権限を確認しておきましょう。

<サイトID取得時の前提条件>

  1. Microsoft Graph Explorerが使用できること
  2. 実行ユーザーが管理者権限を付与されていること

取得手順は以下サイトを参考に実施してください。実行結果の”id”に記載の値がサイトIDです。

データ出力先のExcelファイルを用意する

任意の場所にデータ出力先となるExcelファイルを用意します。

管理上わかりやすいように1行目に取得対象のサイト名(画像内左上の”test”)を記載していますが、こちらは必須ではないので、不要な場合は1行目からテーブルを作成しても構いません。

以下項目のテーブルを作成しておきます。

  • 開始日:データ取得開始日
  • 終了日:データ取得終了日
  • PV:サイトの訪問者数のデータ転記先
  • UU:サイトの重複しない閲覧者数のデータ転記先

注意点:テーブル内に不要な行があるとフロー実行後にエラーになりますので、不要な行は削除した状態にしておきます。

Power Automateフローの作成

フローの全体像

フローの全体像は以下の通りです。各設定項目についてはこの後ご紹介します。

トリガーの設定

今回は、毎月月末に自動実行するように設定します。

(1)Power Automateの画面を開き、「+新しいフロー」→「スケジュール済みクラウドフロー」の順にクリックします。

(2)任意のフロー名を入力し、フローを実行したいタイミングに合わせて各項目入力し、「作成」ボタンをクリックします。今回は、月末の夜11:45に実行されるよう設定します。

(3)フローの作成画面に遷移後、「タイムゾーン」を「(UTC+09:00)大阪、札幌、東京」の日本時間に設定します。

なお、開始時刻が「14:45:00」になっていますが、これはUTC時刻表記ですので、プラス9時間した時間にフローが実行されます。

スコープ

「+新しいステップ」をクリックし、「コントロール」の中にある「スコープ」を追加します。

※こちらは今後サイト数が増えた際に、アクションがまとまっていると運用がしやすいため追加していますが、そういった可能性がない場合は、この手順は省いてしまって構いません。

SharePoint に HTTP 要求を送信します

(1)検索ボックスに「SharePoint」と入力し、アクションの「SharePoint に HTTP 要求を送信します」を先ほど作成したスコープ内に追加します。

(2)各設定項目は以下のように入力していきます。

  • サイトのアドレス:取得対象のサイトをプルダウンから選択
  • 方法:GET
  • URI:引用部分参照

_api/v2.1/sites/<取得したサイトID>/oneDrive.getActivitiesByInterval?startDateTime=@{startOfMonth(addDays(addHours(utcNow(),9),-1))}&endDateTime=@{addHours(utcNow(), 9)}&interval=Month

「startDateTime=」と「endDateTime=」の後に特定日付のデータを取得したい場合は、こちらに(例:2024-02-29T14:45:00.000Z)のように入力すると特定期間のデータだけ取得ができます。

  • ヘッダー:Accept / application/json;odata=verbose

(3)設定完了後、一度「保存」ボタンをクリックして、フローを保存しておきます。

テスト実行でデータを事前取得する

(1)一度保存したフローをテスト実行します。「テスト」ボタンをクリックして、フローを実行します。

(2)フローの実行が完了したら、「フローの実行ページ」の文字をクリックし、実行画面に移動します。

(3)フロー実行が成功したことを確認し、テスト実行履歴をクリックします。

(4)「SharePoint に HTTP 要求を送信します」の結果を開き、「出力」内の「body」の値をコピーして控えておきます。

JSONの解析

(1)「+新しいステップ」をクリックし、検索ボックスに「json」と入力して「JSONの解析」を追加します。

(2)「出力」に「body」の動的変数を入力し、「サンプルから生成」ボタンをクリックします。

(3)「SharePoint に HTTP 要求を送信します」の実行結果で控えていた「body」の値を入力し、「完了」ボタンをクリックします。

(4)値が入ったことを確認します。

繰り返し処理

(1)「+新しいステップ」をクリックし、「コントロール」内の「それぞれに適用する」を追加します。

(2)「JSONの解析」で取得したデータの「value」を以下画像のように設定します。

Excel:表に行を追加

(1)「それぞれに適用する」アクションの中に、Excelの行追加アクションを追加します。「+新しいステップ」をクリックし、検索ボックスに「Excel」と入力して「表に行を追加」をクリックします。

(2)各設定値を以下のように入力していきます。開始日~PVの値は「JSONの解析」で取得した値を入れます。

  • 場所:出力先ファイルの保存先
  • ドキュメントライブラリ:出力先ファイルの保存場所
  • ファイル:出力先ファイル名
  • テーブル:作成した任意のデータ出力用テーブル名
  • 開始日:startDateTime
  • 終了日:endDateTime
  • UU:actorCount
  • PV:actionCount

(3)入力完了後、一度フローを保存しておきます。

フロー実行

作成したフローを実行します。実行結果が成功になることを確認します。

実行結果

フロー実行が成功した後、データ出力先で用意していたExcelに。データが書き込まれたことを確認します。

おわりに

今回はSharePointのサイト利用状況データを、Power Automateで自動取得する方法についてご紹介しました。

サイトリリース後にサイトの利用状況データを取得する運用が発生した際には、ぜひこちら参考にしてみてください。

執筆担当者プロフィール
曽我 美帆

曽我 美帆(日本ビジネスシステムズ株式会社)

プロセストランスフォーメーション部所属。最近はSharePointやPower Automateを扱うことが多いですが、デザイン系も興味があります。趣味はサウナ、ゆるいキャラもの収集、好きな芸人はかまいたちさんです。

担当記事一覧