No description
Find a file
2026-04-16 14:14:38 +09:00
reports v1.6 表の横幅足らないので縦に並ぶようにした 2026-04-16 14:14:38 +09:00
static Initial commit 2026-04-03 23:27:06 +09:00
.env.example Initial commit 2026-04-03 23:27:06 +09:00
.gitignore Initial commit 2026-04-03 23:27:06 +09:00
app.py v1.6 表の横幅足らないので縦に並ぶようにした 2026-04-16 14:14:38 +09:00
app_old.py 近似曲線をやっぱり排除 2026-04-10 23:53:29 +09:00
crontab.txt v1.5 月次サマリーにnetを追加 2026-04-15 18:29:49 +09:00
docker-compose.yml v1.2 モダンUI採用 2026-04-06 20:38:06 +09:00
Dockerfile v1.1 アプリごとの折れ線 2026-04-04 01:13:16 +09:00
Dockerfile.cron v1.1 アプリごとの折れ線 2026-04-04 01:13:16 +09:00
microsoft_analytics.py v1.5 月次サマリーにnetを追加 2026-04-15 18:29:49 +09:00
microsoft_analytics_old.py 近似曲線をやっぱり排除 2026-04-10 23:53:29 +09:00
README.md Initial commit 2026-04-03 23:27:06 +09:00
run-analytics.sh v1.0完成 2026-04-04 00:43:07 +09:00
run.sh Initial commit 2026-04-03 23:27:06 +09:00
run_analytics.bat Initial commit 2026-04-03 23:27:06 +09:00
run_analytics.sh 動きを改善 2026-04-05 10:15:12 +09:00

MS Store Analytics

Microsoft Store の売上情報を取得し、レポートとグラフを生成するアプリケーションです。

機能

  • Microsoft Store Analytics API を使用して売上データを取得
  • 日次・月次の売上レポートを CSV で保存
  • グラフ(日次パフォーマンス、累積パフォーマンス)を生成
  • Web ダッシュボードでレポートとグラフを可視化
  • cron で毎日 7:00 と 19:00JSTに自動実行

前提条件

  • Docker と Docker Compose がインストールされていること
  • Authelia が設定された外部ネットワーク(authlia_network)が存在すること
  • Microsoft Store Analytics API の認証情報Tenant ID, Client ID, Client Secret

ディレクトリ構成

msstore/
├── Dockerfile          # Web アプリケーション用 Dockerfile
├── Dockerfile.cron     # cron ジョブ用 Dockerfile
├── docker-compose.yml  # Docker Compose 設定
├── app.py              # Flask Web アプリケーション
├── microsoft_analytics.py  # MS Store API からデータを取得するスクリプト
├── run_analytics.sh    # アナリティクス実行スクリプト
├── crontab.txt         # cron 設定7:00, 19:00 JST 実行)
├── .env.example        # 環境変数テンプレート
├── .env                # 環境変数(実際の認証情報)
├── reports/            # 生成されたレポートとグラフの保存先
└── static/             # 静的ファイル

設定

1. 環境変数の設定

.env.example を参考に .env ファイルを作成し、以下の情報を設定してください:

TENANT_ID=your-tenant-id
CLIENT_ID=your-client-id
CLIENT_SECRET=your-client-secret
APP_IDS=app-id1,app-id2,app-id3
APP_NAMES="App Name 1:app-id1,App Name 2:app-id2"

2. Authelia ネットワークの確認

docker-compose.yml で参照している authlia_network が既に存在することを確認してください:

docker network ls

存在しない場合は、Authelia の設定に従ってネットワークを作成してください。

使用方法

初回セットアップ

# Docker イメージをビルド
docker-compose build

# コンテナを起動
docker-compose up -d

Web アプリケーションにアクセス

ブラウザで https://msstore.nkzw.net にアクセスします。

Authelia を介した認証が要求されます。

手動実行

Web ダッシュボードの「Analyticsを実行」ボタンをクリックするか、以下のコマンドで手動実行できます

docker-compose exec msstore python microsoft_analytics.py

ログの確認

# Web アプリケーションのログ
docker-compose logs -f msstore

# cron ジョブのログ
docker-compose logs -f msstore_cron

レポートの確認

生成されたレポートは reports/ ディレクトリに保存されます:

  • microsoft_store_report.csv - 売上データの CSV
  • microsoft_store_performance_usd.png - 日次パフォーマンスグラフ
  • microsoft_store_cumulative_usd.png - 累積パフォーマンスグラフ

cron 設定

crontab.txt で cron ジョブを設定しています:

  • JST 7:00UTC 22:00 前日)- 朝のレポート更新
  • JST 19:00UTC 10:00- 夜のレポート更新

必要に応じて crontab.txt を編集して実行時間を変更できます。

Authelia 連携

このアプリケーションは Authelia を介した認証を有効にしています。

  • ルート: https://msstore.nkzw.net
  • ミドルウェア: authelia@docker
  • TLS: 有効

トラブルシューティング

API からデータが取得できない

  • 認証情報TENANT_ID, CLIENT_ID, CLIENT_SECRETが正しいか確認
  • APP_IDS に有効な Microsoft Store アプリ ID を指定しているか確認

cron が実行されない

  • crontab.txt の形式が正しいか確認
  • Docker コンテナのタイムゾーンが Asia/Tokyo に設定されているか確認

Web アプリケーションにアクセスできない

  • Authelia の設定が正しいか確認
  • ネットワーク authlia_network に接続されているか確認