はじめに
今までFit BitアプリからExcelに手入力したりしてデータをまとめていましたが流石に面倒臭いのでWEBAPIを使ってデータを取得してみようと考えました。先人がまとめてくれた記事などがありますが、公式ドキュメントは英語のみであったりFitBitがGoogleと統合されたりなど色々な理由から少し分かりずらくなってしまったので学習しつつ本記事を書いています。
Pythonのfitbitライブラリが軒並み最終更新日が何年も前になってしまっており、使えない機能が結構あったので結局自分でライブラリを作ってしまいました。このページは準備編ということで残しておきます。
準備
実行環境
ハードウェア | OS | Python |
---|---|---|
RaspberryPi4 | Linux raspberrypi 6.6.62+rpt-rpi-v8 #1 SMP PREEMPT Debian 1:6.6.62-1+rpt1 (2024-11-25) aarch64 GNU/Linux | Python 3.11.2 |
アプリケーションの作成
- デベロッパーページにアクセスする。(参考URL参照)
※FitBitアカウントを持っていない人は先にFitBitアカウントを作成しておきましょう - アプリケーションの作成
デベロッパーページの「REGISTER AN APP」から必要情報を入力して作成。自分のデータを取得したいだけなら以下のような感じでOKです。
Application Name | 適当な名前を入力 |
---|---|
Description | 適当な説明文を入力 |
Application Website URL | http://localhost |
Organization | none |
Organization Website URL | http://localhost |
Terms of Service URL | http://localhost |
Privacy Policy URL | http://localhost |
OAuth 2.0 Application Type | Personal |
Redirect URL | http://localhost:8000 |
Default Access Type | Read Only |
アクセストークンの取得
- Fitbit OAuth 2.0 Tutorialページにアクセスする
デベロッパーページの「MANAGE MY APPS」タブで、アプリケーションの作成で作成したアプリケーションをクリックし、OAuth 2.0 Tutorialのリンクをクリックする。 - App Settingsに以下を入力する
- Client ID
- 作成したアプリケーションのOAuth 2.0 Client ID
- Application Type
- Clientを選択
- Client ID
- Getting an Access Tokenで以下を入力する
- Step 1: Generate PKCE and State Values
- PKCE Code VerifieのGENERATEをクリックする
- StateのGENERATEをクリックする
- Step 1: Generate PKCE and State Values
- Step 2: Display Authorization Page
- Authorization URLのURLをクリックする
- アクセス権の画面で全て許可を選択し許可をクリックする
- ブラウザによるが「localhost 接続が拒否されました。」が表示されるが、次のステップで使用するためそのままにしておく
- Authorization URLのURLをクリックする
- Step 3: Handle the Redirect
- Authorization Codeに「localhost 接続が拒否されました。」のページのURLのhttp://localhost:8000/?code=<ここ>&state=〜 code=の部分の値を入力する
- Stateに「localhost 接続が拒否されました。」のページのURLのhttp://localhost:8000/?code=〜&state=<ここ> state=の部分の値を入力する
- Step 4: Get Tokens
- SUBMIT REQUESTをクリックする
- Responseにエラーが表示されずにトークンが表示されていること
- Responseの内容をToken.json(ファイル名はなんでも良いが)という名前でテキストファイルに保存する
- SUBMIT REQUESTをクリックする
- Access User Data
- SUBMIT REQUESTをクリックする
- Responseにエラーが表示されずにあなたのプロフィールデータが表示されていること
- SUBMIT REQUESTをクリックする
Configファイルの作成
次の内容でConfig.jsonというファイルを作成する
Config.json
{
"CLIENT_ID":"<作成したアプリケーションのOAuth 2.0 Client ID>",
"CLIENT_SECRET":"<作成したアプリケーションのClient Secret>"
}