概要
- Fitbitのデータを取得するためのアクセストークンを取得する方法の備忘録です。
アカウント作成&ログイン
-
Fitbit developerへアクセス
アプリの登録
-
以下の設定値で登録する。なお、★の項目は、アクセストークン取得には影響しないので、別のURLでもOKです。
- Application Name
- 任意の内容でOK
- Description
- 任意の内容でOK
- Application Website URL ★
- Organization
- 任意の内容でOK
- Organization Website URL ★
- Terms of Service URL ★
- Privacy Policy URL ★
- OAuth 2.0 Application Type
- Personal を選択する
- Redirect URL
- http://localhost:8080/
- アクセストークン取得時にこのURLへリダイレクトします。
- Default Access Type
- Read Only
- Application Name
-
アプリの登録完了。
-
OAuth 2.0 Client ID
とClient Secret
はアクセストークン取得後のアクティビティデータ取得時に使うので、メモっておきましょう。(この画面に来れば後からでも確認できます)
アクセストークンの発行・取得
-
1: Authorize の Flow type は推奨されている
Authorization Code Flow
を選択。 -
Scopeはお好みに応じてチェックを外す。今回はフルチェックのままにします。
-
アプリ作成時に設定したRedirect URLへリダイレクトするので、URLの中のcode部分をコピーする
-
例: http://localhost:8080/?code=00a30fXXXXXXXXXXXXXXXXXXXXXXXXXXXXX#_=_
- ここの
00a30fXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
がcodeです
- ここの
- OAuth 2.0 tutorial page のタブへ戻り、1A Get Code -> Code に先ほどコピーしたcodeをペーストする。
- すると、アクセストークンを取得するためのcurlコマンドが表示される。
表示されたcurl
curl -i -X POST \
-H 'Authorization: Basic YYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYY' \
--data "clientId=IIIIIIII" \
--data "grant_type=authorization_code" \
--data "redirect_uri=http%3A%2F%2Flocalhost%3A8080%2F" \
--data "code=XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX" \
-H 'Content-Type: application/x-www-form-urlencoded' \
https://api.fitbit.com/oauth2/token
- 表示されているcurlコマンドをターミナル等に入力すると、アクセストークンを含んだResponseを受信できる。
- VSCodeのターミナルでこのままコピペしてもエラーになる場合は、以前書いたcurlコマンドの記事の方法で入力すればOK
受信したResponse
HTTP/1.1 200 OK
Date: Tue, 08 Nov 2022 07:22:09 GMT
Content-Type: application/json;charset=UTF-8
Transfer-Encoding: chunked
Connection: keep-alive
Vary: Origin,Accept-Encoding
Cache-control: no-cache, private
Set-Cookie: fct=ZZZZZZZZZZZZZZZZZZZZZZZZZZ; Path=/; Secure; HttpOnly
Set-Cookie: JSESSIONID=JJJJJJJJJJJJJJJJ.fitbit1; Path=/; Secure; HttpOnly
Content-Language: ja-JP
X-Frame-Options: SAMEORIGIN
Via: 1.1 google
CF-Cache-Status: DYNAMIC
Server: cloudflare
CF-RAY: 766c8e518e7ae045-NRT
{"access_token":"aaaaaaaaaaaaaaaaaaaaaaaaaaaaa","expires_in":28800,"refresh_token":"rrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrr","scope":"heartrate sleep profile settings temperature nutrition activity respiratory_rate location social weight oxygen_saturation","token_type":"Bearer","user_id":"xxxxxxxxxxxxxxx"}
-
主要な項目の説明です。
-
access_token
: アクセストークン -
expires_in
: アクセストークンの有効期間(秒)。デフォルト設定(変更不可)は288,800秒=8時間。 -
refresh_token
: 有効期間が切れたアクセストークンを更新・再取得する際に必要なリフレッシュトークン。
-
-
お疲れ様でした。無事、アクセストークンの取得完了です。
参考リンク
- 公式ドキュメントの内、以下のドキュメントは一読をおすすめします。
Fitbit - developer - Authorization
Authorize
OAuth2 Token
Refresh Token