No description
| reports | ||
| static | ||
| .env.example | ||
| .gitignore | ||
| app.py | ||
| app_old.py | ||
| crontab.txt | ||
| docker-compose.yml | ||
| Dockerfile | ||
| Dockerfile.cron | ||
| microsoft_analytics.py | ||
| microsoft_analytics_old.py | ||
| README.md | ||
| run-analytics.sh | ||
| run.sh | ||
| run_analytics.bat | ||
| run_analytics.sh | ||
MS Store Analytics
Microsoft Store の売上情報を取得し、レポートとグラフを生成するアプリケーションです。
機能
- Microsoft Store Analytics API を使用して売上データを取得
- 日次・月次の売上レポートを CSV で保存
- グラフ(日次パフォーマンス、累積パフォーマンス)を生成
- Web ダッシュボードでレポートとグラフを可視化
- cron で毎日 7:00 と 19:00(JST)に自動実行
前提条件
- 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- 売上データの CSVmicrosoft_store_performance_usd.png- 日次パフォーマンスグラフmicrosoft_store_cumulative_usd.png- 累積パフォーマンスグラフ
cron 設定
crontab.txt で cron ジョブを設定しています:
- JST 7:00(UTC 22:00 前日)- 朝のレポート更新
- JST 19:00(UTC 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に接続されているか確認