Ouraリングは指輪型のウェアラブルデバイスです。
今回はそのデータの取得方法をご紹介します。
私が試したNode-REDのノードを使うとデータ取得の手順は簡単で、以下の3ステップでデータを取得できました。
- アクセストークンを入手
- Ouraノードをインストール
- Node-REDのフローを作成
Oura Developer!
まず、準備としてOuraRingのユーザーサイトにアクセスし、左下のOura Developerをクリックします。
開発者向けサイトがあります。ここでMy Applicationから自分のアプリのアクセストークンを取得します。
右上のCreate New Personal Access Tokenボタンをクリックします。
適当なアプリケーションの名前を入力して、Create〜のボタンをクリックすれば、
トークンが発行されます。
このトークンはあとでノードのプロパティに貼り付けますので、画面はそのままにしましょう。
Oura ノード
enebular editorを開きましょう!(Web エディターでもOK!)
Node-REDはパレットの管理からノードをインストールできるのはご存じかと思います。
Ouraと検索すると、node-red-contrib-get-oura-dataというノードが見つかると思いますので、ノードを追加します。
トークンをセットしよう
Ouraノードを配置して、クリックしてプロパティを編集しましょう。まずはトークンのセットからです。
APIのバージョンを選択します。まずはVersion1です。Data TypeはPersonal Infoにします。
Node-REDのフロー
フローはまずはシンプルにInjectノードとdebugノードの間にOuraノードを配置して線で繋ぎます。
保存ボタン(またはデプロイボタン)を押してフローを保存してから、Injectノードのボタンをクリックします。すると、私がOura Ringのサービスに登録しておいた個人情報がdebugノードに表示されました。
次に、APIのVersion2を試してみます。
Daily Activityに関するデータが取得できました。
現在APIのバージョンは、V1とV2の2種類あり、ノードでそのどちらかのデータを取得できる様になっています。同じデータタイプもありますが、例えば睡眠データはV1でのみ取得できるようです。
詳しくは、ドキュメントを参照してみてください。
日付の指定
プロパティで日付を指定できますが、フローのなかで指定したい場合もあると思います。injectノードのtimestampには対応していないようです。msg.payloadで文字列で、2022/05/31,2022/06/01などと渡して上げればその区間に該当するデータが返ってきます。
詳しくは、ノードの説明をご覧ください。
https://flows.nodered.org/node/node-red-contrib-get-oura-data
イベントのご案内
enebular meetupでは、8月に以下の様なイベントを開催予定です。ぜひご参加ください!
Oura RingをAPIで使い倒す!ミートアップ
ウェアラブル デバイスを一歩進んで使ってみよう Vol.1
お申込みは以下のリンクからよろしくお願いします😀