Fitbit APIでスプレッドシートに体重を記録(Node.js利用)

Withingsの体重計のデータを、FitbitのAPIから取得することができました。今回は、取得した体重データをスプレッドシートに記録します。

デバイスと環境

体重計・・・Withings「Body +」
活動量計・・・Fitbit「Alta HR」

Windows10
Node.js 14.15.4

スプレッドシートをサーバー化

まずは記録用のスプレッドシートを簡易サーバーとして設定ます。

Google Spreadsheet を簡易 Webサーバーとして動かして、手軽にWebHookを受け取る方法」を参考にしながら、下記のコードを用意しました。

デプロイ時にWebアプリケーションURLが発行されます。

Node.jsでFitbitのAPIを取得

Fitbitの体重データAPIの取得は、Node.jsを利用しました。

Fitbitのトークンと、先ほどスプレッドシートで発行したWebアプリケーションURLを使って、下記のJavaScriptを用意します。

これをapp.jsなどの名前で保存して、コマンドプロントで「node app.js」を実行すれば、スプレッドシートに体重・体脂肪などが記入されていきます。

体重データ取得の注意

Fitbitの体重取得APIで、不思議な結果が返ってくることがあります。

なぜか今日23時59分59秒の体重が返ってきます。まだ朝です。

取得しているデータをNode.jsのログで見てみます。

23時59分59秒に、fat(体脂肪率)がないデータが存在します。fatが記録できないのも問題なので、このデータは除外しましょう。前述のコードでは、fatがない時に1つ前のデータを取得するようにしています。

なぜこのデータが存在するのかは分かっていません。

スプレッドシートの確認

問題なく動作していれば、スプレッドシートに今日の体重が追記されます。

今回作ったNode.jsアプリを1日1回、体重を測った後に実行させると、体重推移を確認できます。

日付と体重の列を指定してグラフを作成すれば、データと連動してグラフも更新されていきます。

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

日本語が含まれない投稿は無視されますのでご注意ください。(スパム対策)