FitbitのAPIで取得したデータを、GAS(Google Apps Script)を用いてスプレッドシートに書き込みます。毎日タイマーを使って、記録を自動的に行えます。
FitbitのAPIを利用できるように
まずはFitbitのデータを持ってこれるように、APIを利用可能な状態にします。
「FitbitのAPIを手っ取り早く試してみる方法」が参考になります。
スプレッドシートとGAS
FitbitのAPIを使えるようになったら、新規のスプレッドシートを作ります。
メニューの「ツール」から「スクリプト エディタ」を選択。
GASのエディタが現れたら、下記のコードを記述します。これは体重を取得してスプレッドシートに書き込むサンプルです。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 |
function getFitbitAPI() { var FITBIT_TOKEN = [token]; var options = { 'method': 'get', 'headers': { 'Authorization': 'Bearer ' + FITBIT_TOKEN } }; var res = UrlFetchApp.fetch('https://api.fitbit.com/1/user/[user-id]/body/log/weight/date/today.json', options); res = JSON.parse(res); if(res.weight.length){ let data = res.weight.slice(-1)[0];//最新のデータ if(!data.fat){ data = res.weight.slice(-2)[0];//体脂肪率がなければ1つ前のデータ } Logger.log(data); writeSheet([data.date + " " + data.time, data.weight, data.fat.toFixed(1), data.bmi]); } } function writeSheet(list) { let ss = SpreadsheetApp.getActive(), sheet = ss.getActiveSheet(); sheet.appendRow(list); } |
[token]と[user-id]は自分のID(英数字の羅列)を入れます。
これを実行して、スプレッドシートに体重データが書き込まれれば成功です。
グラフを作っておくと、より変化が分かりやすくなるでしょう。
1日1回タイマーで記録
体重の場合は、1日1回測れば十分です。記録も1日1回タイマーで行います。
スクリプト エディタの左メニューから「トリガー」を選択。
右下の「トリガー追加」を選び、セレクトボックスを下記のように設定します。
- 実行する関数を選択・・・getFitbitAPI
- イベントのソースを選択・・・時間主導型
- 時間ベースのトリガーのタイプを選択・・・日付ベースのタイマー
- 時刻を選択・・・(好きな時間帯)
体重のように時間帯で変わってしまうものは、午後12時~1時をトリガーにして、午前のデータのみ記録するのも良いでしょう。体重推移が正確に分かります。