No description
Find a file
2026-03-26 16:48:52 +09:00
.gitignore first commit 2026-03-26 16:06:55 +09:00
app.py v0.1 2026-03-26 16:48:52 +09:00
README.md v0.1 2026-03-26 16:48:52 +09:00
requirements.txt v0.1 2026-03-26 16:48:52 +09:00
store_analytics.py v0.1 2026-03-26 16:48:52 +09:00

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

処理フロー

  1. アクセストークンの取得

    • https://login.microsoftonline.com/{TENANT_ID}/oauth2/token に client_credentials で POST
    • アクセストークンを取得
  2. データの取得

    • 過去 30 日間のデータを取得
    • エンドポイント:https://manage.devcenter.microsoft.com/v1.0/my/analytics/appacquisitions?groupby=applicationName,date&startDate={startDate}&endDate={endDate}
  3. Excel とグラフの生成

    • Pandas でデータフレームを作成
    • ピボットテーブルを作成して Excel に保存
    • Matplotlib で折れ線グラフを生成
  4. Slack への通知

    • 作成した Excel ファイルとグラフ画像を Slack チャンネルにアップロード
    • メッセージ:「過去 30 日間のストア実績レポートです」

生成されるファイル

  • Store_Acquisitions.xlsx - アプリ取得数のピボットテーブル
  • Store_Acquisitions_Graph.png - アプリごとの推移グラフ

エラーハンドリング

  • API 取得失敗時のエラーメッセージ表示
  • データが 0 件だった場合の警告表示
  • Slack 送信失敗時のエラーハンドリング
  • ファイル生成エラー時の例外処理

注意事項

  • .env ファイルは Git などに追加しないように .gitignore に登録してください
  • Slack Bot トークンは適切な権限を持つボットを使用してください
  • Microsoft Store Analytics API のレート制限に注意してください