概要
本稿では、OURA APIとは何か、そして、OURA APIを使用するための「Personal Access Tokens」の作成方法を紹介します。
OURA ring(Gen2以降)を既にお持ちで、OURAメンバーシップをサブスクしている方が対象となる投稿です。(OURAメンバーシップは個人的に嫌いなやり口ですが、APIを使ってデータを取得するにはOURA ringを保有するだけではなく、メンバーシップに登録する必要があります。)
OURA APIとは
まずは、OURA APIとは何かを説明します。その前に、簡単にAPIを説明します。
API (Application programming interface)
APIとはApplication Programming Interfaceの略称で、「広義ではソフトウェアコンポーネント同士が互いに情報をやりとりするのに使用するインタフェースの仕様である。」(参照)と説明されています。商業的な狭義としては、各種システムやサービスを利用するAppを開発・プログラミングするためのインターフェースで、OURA APIに関してもこの定義に当てはまる意味合いを持っています。
OURA API
OURA公式サイトにアクセスすると以下のように説明されています。
Oura APIを使用すると、Ouraリングによって生成されたデータに簡単にアクセスすることができます。 Oura APIを使用するには、Ouraアカウントに加えて、パーソナル アクセストークンまたはAPIアプリが必要です。
Oura APIを使用することにより、Ouraのデータを取得したり、サードパーティサービスとの間でOuraデータを共有できる連携機能を利用することができます。
ざっくりとしすぎているので、私のOURA Appダッシュボードを参照にOURA APIについてもう少し詳しく、具体的に説明します。スマートフォン上のOURA Appでは、プログラム化されたデータ表示方法により一部のトラッキングデータが選択的に表示されています。例えば、「睡眠」のダッシュボードでは、心拍数(HR)については「Lowest heart rate __ bpm」と「Average __ bpm」が、心拍変動(HRV)については「Average HRV __ ms」と「Max __ ms」が表示されているはずです。下記は私のダッシュボードです。
一方で、HRとHRVの両方で、トレンドデータが青色の折れ線グラフにより表示されています。このことから、OURA ringは、睡眠時には定期的にHRとHRVデータを取得、算出していることが分かります。OURA Appではこのトレンドから特徴的なデータ(HRでは最低値および平均値、HRVでは平均値および最大値)を抽出、演算し、表示するようにプログラム化されているということです。
確かに、睡眠時のHRでは最低値や平均値が、HRVでは平均値や最高値が気になります。一方で、解析者たちは「HRと睡眠の深さの関係性はどうなっているだろう?」とか、「HRVとHRとREM睡眠は関係しているんじゃないか?」とか思うわけです。これらの関係性を調べるためには、本来取得できているはずの「定期取得データ」(睡眠中OURA ringは、実際に5分毎にデータを取得しています)にアクセスする必要があります。
これを可能とするのがOURA APIです。OURA APIを使えば、気になる未抽出データにアクセスし、選択的に抽出し、演算・解析ソフト等を使ってデータを分析することができます。
Personal Access Tokens (PATs) の作成
それでは、OURA APIにアクセスするためのPersonal Access Tokensを作成していきましょう。作成は公式Webを参考に行いましょう。
パーソナル アクセストークンを作成する手順は、以下のとおりです。
1.パーソナルアクセストークンページに移動します
2.ページの右上にある新しいパーソナル アクセストークンの作成をクリックします
3.作成する新しいパーソナル アクセストークンの一意のメモを入力します
4.[パーソナル アクセストークンの作成]をクリックしてフォームを送信し、新しいパーソナル アクセストークンを作成します
[パーソナル アクセストークン]ページに新規アクセストークンが表示されます。
このページから移動するとトークンを表示できなくなるため、必ず新規トークンをコピーしてください。 [コピー]をクリックして、トークンをクリップボードにコピーします。
任意のノートを付与します。
生成されたPATs(注:個人情報を含む)をテキストファイル等にコピー/ペーストすることを忘れないでください。英文で記載のあるように、このページを一度離れて同じページに戻った時には作成されたPATsは暗号化(*******で示されているもの)されます。もう一度作成すればいいだけですが面倒です。
(※このPATsは削除済みです)
以上でPATsの作成は完了です。作成まではとても簡単ですね。作成が簡単な割にとても、とても注意しなければならないことがあります:
公式Webでは重要なポイントが欠けていますが、作成したPATsは個人情報へのアクセスが可能となる機密情報です。アカウントに紐づくメールアドレスや、ユーザの体重、身長等は全てこのPATsからアクセス可能ですので、取り扱いには十分に注意していください。例えば、他者と共有することはあまりお勧めできません。
URLパラメータによる確認
作成したPATsが有効かどうかを「URLパラメータ」という方法により確認していきましょう。これは、抽出したい情報を呼び出すパラメータの後ろにPATsを付与してブラウザで検索する方法です。
試しに私のアカウントの登録情報を呼び出してみます。ご自身でお試しになる場合は、下記のURLアドレスの <自分のPATsを入力> にPATsを挿入してブラウザで検索してみてください。
https://api.ouraring.com/v1/userinfo?access_token= <自分のPATsを入力>
このような結果が返ってきました。作成したPATsが有効であることが確認できました。
生データ操作による可能性
私たちのチームでは、既に、OURA ringのみで取得できるデータの中に強い相関関係を示す(複数のデータ同士が関わり合って変化する)ものをたくさん見つけています。これらは今のところ「ただの関係性を持つ変数たち」ですが、機械学習やAIを用いることで「今日は22時に眠くなるから、質の高い睡眠をするためには21時に寝る支度を始めましょう」や「今日のエクササイズの効果が発揮されるのは4日後です」なぁんてことも予測、提案できると考えています。
Fitness Trackerは、どれもまだ「フィードバック(こんなデータが出ましたという報告)ツール」に過ぎません。OURA ringをフル活用して、実生活をより良くするためのツール化していきましょう。
次回からは、OURA APIを使った実際のデータ分析編を始めていきます。恐らく解析ソフトウェアのダウンロード編を投稿すると思います。それではまた!