どうも、こんにちは。
この世界のどこかで掲題の件で困っている人がいると思い、記事を書かせていただきました。
自分の経験が助けになればうれしいです。
事象
ご存じ、ウェアラブルデバイスのFitbitにはWeb APIが用意されており、呼び出すことでFitbitに蓄積されたデータを気軽に取得できるのです。
Fitbit APIについて
※APIの叩き方については以下を参考にさせていただきました
Fitbit Web APIを利用して心拍数の生データを取得する方法【動画版あり】
そんなFitbit APIを使って開発(ユーザー登録してもらった人の心拍数などを取得してグラフ表示するようなアプリ)をしている中で事件は起きました。
以下のエンドポイントに対してリクエストを送りました。(指定された日中の時間の心拍数のデータを取得する)
GET https://api.fitbit.com/1/user/-/activities/heart/date/2022-08-01/1d/1min/time/08:00/08:30.json
すると以下のエラーが。
{
errorType: 'insufficient_permissions',
message: 'API client is not authorized by Fitbit to access the resource requested. Visit https://dev.fitbit.com/docs/oauth2 for more information on the Fitbit Web API authorization process.'
}
むむ・・・
状況
原因
日中のFitbitデータを取得するためにはFitbitへの申請が必要でした(Oauth2.0 Application Typeが「Personal」以外の場合)
※「Personal」の場合は、申請を行わなくても情報取得が可能です。
解決方法
以下の申請画面から必要な情報を入力し、Fitbitに提出します。(英語のフォームになっているので、英語で各情報を入力しました)
申請画面
提出後、大体2週間(10営業日)ちょっと経つと、Fitbitから「日中データ取得してもいいよー」という旨のメールが来ます。(自分の場合はそうでした、早くなることもある)
※審査?にかなり時間がかかるので、もし開発に期限がある場合は早めに申請を行うことをお勧めします。
そのあと、Fitbit Web APIを呼び出すと日中のデータが取得できるようになります。やったー。
最後に
Fitbit、いいですよね。
Fitbit Web APIの確認をするためにわざわざ運動しました。
ついでに健康になれてよかったです。