Fitbit Web API + pixela で歩数を可視化するぞー (ローカル実行編)
最近、界隈でこのFitbit Web APIとpixela使ってみた記事をよく見かけるので、私もやってみたくなった。
といっても
やり方は↓こちらの記事をほぼそのままトレース。(これ以降、「もとの記事」と書いているところはすべてこちらの記事を指している)
FitbitのAPIの呼び方やPixelaの使い方も詳しくまとめて書かれていて本当に読みやすい。
”やっていること”のうち
のところまで。自動化は次のステップで頑張ってみる。
Rubyで書いた
Ruby 2.7.5。最近RubyのSilverを取得したので、こういうところで積極的に使っていきたいなぁと。
(業務レベルでは書いたことがないので、変な使い方をしているかもしれない。)
もとの記事ではTypeScriptで書かれている。
TOKEN系の管理はもとの記事を習って.env
ファイルで管理できるようにした。
もちろんpushしないように、.gitignore
に入れてある。
ローカルファイルで管理しているFitbitのRefresh Tokenの値を上書きするところは
↓こちらの記事のやり方を参考にして
Rubyでファイルの内容を書き換えるサンプル(置換する) - Qiita
.env
の中身を変数に展開してgsub()
+正規表現を使って、変数の中のRefresh Tokenのところだけをうまいこと新しい値に置き換えて- 元のファイルに書き戻す
とやることにした。
(とりあえず動いているけど、正規表現がイマイチなのでもうちょっとブラッシュアップしたい)
完成したもの
2022年2月から3月中旬まで値が空白なのは、Fitbitが壊れてたから。 何ならこれがやりたいがためにFitbit買い替えたまである。
次はこれを自動化したい
まだ自分のローカルPCで手動で動かせるようにしかできていない。 勝手に更新し続けておいてほしいので、次はこのscriptの実行を自動化したいなぁと思っている。
おまけ(無駄な話)
rubyのgsub
を使うときに、何を思ったのか正規表現を'
でくくってしまったので、当たり前だけど検索したい文字列が見つからなくて詰まった。
めちゃくちゃ恥ずかしいミスして時間が溶けた。
# 間違い buffer.gsub!('/FITBIT_REFRESH_TOKEN=.+/', "FITBIT_REFRESH_TOKEN=#{new_refresh_token}") # 正しくはこう buffer.gsub!(/FITBIT_REFRESH_TOKEN=.+/, "FITBIT_REFRESH_TOKEN=#{new_refresh_token}")