rcmdnk's blog

20240715_ouraapi_200_200

以前ちょっと作っておいたGoogle Apps Scriptを使ってOura ringの情報をGoogle Sheetsに 保存しておくツールをアップデートしたのでその話。

API + GAS + Sheets

APIを公開しているサービスなら、GASを使ってそのAPIを叩いて情報を取得して Google Sheetsに保存する、というのが 無料で情報を保存しておくのに一番手軽な方法だと思います。

csvでexportできたりそもそもアプリで見れば十分なものもありますが、 取り敢えず一度設置しておけば常にSheetsに最新情報が保存されてる状態に なるので、何かと便利です。

Oura API

Oura API

2024年にV1 APIが廃止されて現在はV2 APIが提供されています。

この変更もあって、以前のスクリプトは使えなくなったので、 新しいスクリプトを作り直しました。

基本的な使い方はV1/V2でそれほど変わらないと思います。

一つひっかっかった点として、

Oura API Documentation (2.0)

このAPIのドキュメントの中にある

各APIの説明のGETのところを押すと見れるURLがAPIのURLとは違う点。

20240715_ouraapi.jpg

https://cloud.ouraring.com/...

となってますが、これは Oura on the webのURLで その下のV2…などは無いように見えます。

実際にはcloudではなくapi

https://api.ouraring.com/...

すぐ下のcURLなどの実際の使用例を見ればURLがapiになっているのでそちらを最初から参照すれば良いですが、 最初、このcloud...の方を使ってしまって少しハマりました。

Oura-gas

ということで作り直したスクリプト集がこれ。

使い方はREADME参照。

現状は以下のような関数があります。

  • fillPerosnalInfo: 入力した年齢や身長などの個人情報、
  • fillDailyReadiness: 日毎のスコア、及び関連するデータ
  • fillDailySleep: 日毎の睡眠スコア、及び関連するデータ
  • fillDailyStress: 日毎のストレスデータ
  • fillSleep: 睡眠ごとのデータ

これらの関数を適当なTriggerで1日1回実行するなりしてデータをSheetsに保存しておくことができます。

睡眠のデータに関して、Daily Sleep Routesという項目がfillDailySleepで保存できるようになってますが、 これで取れるデータは日毎の睡眠総合スコアに加えてcontributorsという項目があります。 その中にtotal_sleepdeep_sleepといったデータが入っていますが、 これらは睡眠時間とかではなく、0~100までの値が入っています。

アプリとかで睡眠の項目を見ると睡眠コントリビューターという欄があって合計時間深い睡眠という項目がありますが、 実際の時間とともに色のついたバーがあると思いますが、これが0~100で高いほうが良いスコアでそれらを統合して総合スコアを出しているようです。

合計時間がどれくらいならスコアがいくつになるかは人それぞれでなにか計算しているようです。

Oura APIの公式にはこの辺書いてませんが、取得できるデータはアプリやOura on the web で得られる情報が全てっぽいので それらと比べながら見てみるとどれがどの値を示しているか大体分かると思います。

Oura APIの説明してるブログとかだとこのコントリビューターの値を”時間”と言い切ってるものも結構あるので注意。

GASでのOAuth2.0認証を使ったAPIの利用

同じようなことは他のAPIでも使えます。

認証の仕方に関してGoogleが色々とサンプルを提供してくれてるので有名どころは 直接使えるものもあります。

apps-script-oauth2/samples

以下はこれまでに作ったもの。

OuraのようにWithingsに記録されたデータをGoogle Sheetsに保存するスクリプト。

Slackが無料利用で90日より前のメッセージが見れなくなってしまったのでバックアップしておくシステム。

NatureRemoの情報を保存しておくスクリプト。

GitHubのOrganization内のmemberのこれまでに得たstarの数やPRなどのアクティビティを取得するスクリプト。

Sponsored Links
Sponsored Links

« macOSのScroll Reverserで内蔵トラックパッドがマウス認識される問題 macOSで勝手にミラーリング状態になってしまっていた話(HHKB Studio導入後) »

}