fitbit WebAPIを使ってみた
fitbitのスマートウォッチのFitbit Versa 3を使っています.もともと睡眠の質を改善したいと思い購入したのですが,僕のGoogle Pixel 5aで何故かモバイルSuicaが使えず...スマートウォッチを改札でかざして電車に乗っているので重宝しております.
今回はfitbitにWebAPIがあったので使ってみました.APIによっては登録などが面倒な場合もあるのですが,fitbit APIは簡単に使用できました.
Client IDとClient Secretを取得する
https://dev.fitbit.com/apps/new で登録を行います.
OAuth 2.0 Application Type
は,Personal
というのがおそらくお試し用?みたいなやつではないかと思っていますが,Client
でも良さそうです.
Redirect URL
はhttp://localhost/
としておき,
Default Access Type
は軽く試したいだけなのでRead Only
を選択します.
それ以外の項目は適当に埋めておけば良さそうです.
記入できたら下のRegisterボタンをタップすると,登録が完了してClient ID
とClient Secret
が使えるようになります.
アクセストークンを取得する
上の画面のOAuth 2.0 tutorial page
というリンクをポチります.
Flow type
のImplicit Grant Flow
は非推奨になったはずなので,Authorization Code Flow
に変更し,https://www.fitbit.com/oauth2/authorize で始まっているURLをポチります.
※OAuthの知識を忘れかけていたので,雰囲気で使わずきちんと理解する!整理してOAuth2.0を使うためのチュートリアルガイドをKindleで確認しながら進めました.
すべて許可する
を選択して許可ボタンをポチります.
リダイレクトされるのでブラウザのURLが http://localhost/?code=00000ABC12345XYZ#= のようになっているので?code
の後ろから#_=_
の間の00000ABC12345XYZ
の部分をコピペします.
コピペしたものをOAuth 2.0 tutorial page(Authorization Code Flow
に変更したページ)の1A Get Codeの部分に貼り付けるとcurlコマンドを自動で作成してくれます.
作成されたcurlをターミナルなどでたたくとアクセストークンが取得できます.
{
"access_token": "<アクセストークン>",
"expires_in": "<有効期限>",
"refresh_token": "<アクセストークン>",
"scope": "<許可したスコープ>",
"token_type": "<トークンタイプ>",
"user_id": "<ユーザーID>"
}
ここで使ったWebAPIは,Authorize,OAuth2 Tokenのあたりです.
Get ProfileAPIをリクエストしてみる
次にGet ProfileAPIをリクエストしてみます.
下記のcurlの<取得したアクセストークン>
の部分を先程取得したアクセストークンにするとユーザープロフィールのデータが取得できます.
curl -X GET "https://api.fitbit.com/1/user/-/profile.json" \
-H "accept: application/json" \
-H "authorization: Bearer <取得したアクセストークン>"
ユーザープロフィールだと面白みがないんですが,睡眠のデータ取得などは分析などに使えそうです.
Discussion