Skip to content

nove-b/fitbit-sleep-report

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

4 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Fitbit 睡眠レポート

Fitbit APIで取得した直近一週間分の睡眠データを、Gemini APIを利用して分析し、パーソナライズされた睡眠レポートを生成してメールで送信するNode.js製のコマンドラインツールです。

アクセストークンの有効期限が切れている場合は、自動的にリフレッシュトークンを使用して新しいアクセストークンを取得し、.envファイルを更新します。

✨ 主な機能

  • 睡眠データの取得: 直近一週間分の睡眠データをFitbit APIから取得します。
  • AIによるレポート生成: 取得した睡眠データをGemini APIに渡し、分析に基づいたレポートを生成します。
  • メール送信: 生成されたHTML形式のレポートをGmail経由で指定したアドレスに送信します。
  • アクセストークンの自動更新: Fitbitのアクセストークンが期限切れの場合、自動で更新します。
  • TypeScript: 型安全なコードで開発されています。

⚙️ 必要なもの

  • Node.js (v24.11.0 以上を推奨)
  • Fitbit アプリケーションのクライアントIDとクライアントシークレット
  • Google AI Studioで発行したGemini APIキー
  • Gmailのアプリパスワード

🚀 インストール

  1. このリポジトリをクローンします。

    git clone https://github.com/your-username/fitbit-sleep-report.git
    cd fitbit-sleep-report
  2. 依存関係をインストールします。

    npm install

🔧 設定

  1. .env.example ファイルをコピーして .env ファイルを作成します。

    cp .env.example .env
  2. .env ファイルを編集して、必要な情報を設定します。

    • CLIENT_ID: あなたの Fitbit アプリケーションのクライアントID
    • CLIENT_SECRET: あなたの Fitbit アプリケーションのクライアントシークレット
    • ACCESS_TOKEN: Fitbit APIへのアクセストークン
    • REFRESH_TOKEN: アクセストークンを更新するためのリフレッシュトークン
    • GEMINI_API_KEY: あなたのGemini APIキー
    • SEND_EMAIL: レポートの送信元・送信先となるGmailアドレス
    • GOOGLE_APP_PASSWORD: 上記Gmailのアプリパスワード
    • BORN_YEAR: 誕生年(レポートの精度向上のため)
    • SEX: 性別(レポートの精度向上のため)

    注意:

    • ACCESS_TOKENREFRESH_TOKEN は、Fitbit の OAuth 2.0 認証フローを通じて初回取得する必要があります。
    • GOOGLE_APP_PASSWORDは通常のGoogleアカウントのパスワードではなく、2段階認証を設定した上で発行される16桁の「アプリパスワード」です。

🏃‍♀️ 実行方法

  1. TypeScript をコンパイルします。

    npm run build
  2. スクリプトを実行します。

    npm start

    または、開発モードで直接 TypeScript を実行することも可能です。

    npm run dev

実行すると、コンソールに進捗が出力され、処理が完了すると指定したメールアドレスに睡眠レポートが届きます。

📜 ライセンス

このプロジェクトは ISC ライセンスの下で公開されています。

About

Fitbit 睡眠レポート

Topics

Resources

Stars

Watchers

Forks

Contributors