No description
| .gitignore | ||
| app.py | ||
| README.md | ||
| requirements.txt | ||
| store_analytics.py | ||
Microsoft Store Analytics スクリプト
Microsoft Store Analytics API から過去 30 日間のアプリ取得データを取得し、Excel ファイルとグラフ画像を生成して Slack に自動送信するスクリプトです。
機能
- Microsoft Store Analytics API から過去 30 日間のアプリ取得データを取得
- データを Excel ファイル (
Store_Acquisitions.xlsx) として保存 - アプリごとの推移がわかる折れ線グラフを生成 (
Store_Acquisitions_Graph.png) - Slack 指定チャンネルにレポートを自動送信
環境変数の設定
.env ファイルに以下の環境変数を設定してください。
# Microsoft Entra テナント ID
TENANT_ID=your-tenant-id
# Microsoft Entra アプリケーション クライアント ID
STORE_ANALYTICS_READER_CLIENT_ID=your-client-id
# Microsoft Entra アプリケーション シークレット
STORE_ANALYTICS_READER_CLIENT_SECRET=your-client-secret
# Slack Bot トークン (xoxb- から始まるもの)
SLACK_BOT_TOKEN=xoxb-xxxxx:xxxxx:xxxxx:xxxxx
# Slack チャンネル ID (数字のみ)
SLACK_CHANNEL_ID=Cxxxxx
インストール
必要なライブラリをインストールします:
pip install -r requirements.txt
または個別にインストール:
pip install requests pandas matplotlib python-dotenv slack_sdk
実行方法
スクリプトを実行します:
python store_analytics.py
処理フロー
-
アクセストークンの取得
https://login.microsoftonline.com/{TENANT_ID}/oauth2/tokenに client_credentials で POST- アクセストークンを取得
-
データの取得
- 過去 30 日間のデータを取得
- エンドポイント:
https://manage.devcenter.microsoft.com/v1.0/my/analytics/appacquisitions?groupby=applicationName,date&startDate={startDate}&endDate={endDate}
-
Excel とグラフの生成
- Pandas でデータフレームを作成
- ピボットテーブルを作成して Excel に保存
- Matplotlib で折れ線グラフを生成
-
Slack への通知
- 作成した Excel ファイルとグラフ画像を Slack チャンネルにアップロード
- メッセージ:「過去 30 日間のストア実績レポートです」
生成されるファイル
Store_Acquisitions.xlsx- アプリ取得数のピボットテーブルStore_Acquisitions_Graph.png- アプリごとの推移グラフ
エラーハンドリング
- API 取得失敗時のエラーメッセージ表示
- データが 0 件だった場合の警告表示
- Slack 送信失敗時のエラーハンドリング
- ファイル生成エラー時の例外処理
注意事項
.envファイルは Git などに追加しないように.gitignoreに登録してください- Slack Bot トークンは適切な権限を持つボットを使用してください
- Microsoft Store Analytics API のレート制限に注意してください