[OURA APIシリーズ_1] OURA API 「Personal Access Tokens」の作成

# 概要
本稿では、[OURA API](https://support.ouraring.com/hc/ja/articles/4415266939155-Oura-API)とは何か、そして、OURA APIを使用するための[「Personal Access Tokens」](https://support.ouraring.com/hc/ja/articles/4415266939155-Oura-API)の作成方法を紹介します。

OURA ring(Gen2以降)を既にお持ちで、[OURAメンバーシップ](https://support.ouraring.com/hc/ja/articles/4409086524819-Ouraメンバーシップに関するよくある質問)をサブスクしている方が対象となる投稿です。(OURAメンバーシップは個人的に嫌いなやり口ですが、APIを使ってデータを取得するにはOURA ringを保有するだけではなく、メンバーシップに登録する必要があります。)




# OURA APIとは
まずは、OURA APIとは何かを説明します。その前に、簡単にAPIを説明します。
#### API (Application programming interface)
<font color="Green">API</font>とは<font color="Green">A</font>pplication <font color="Green">P</font>rogramming <font color="Green">I</font>nterfaceの略称で、「広義ではソフトウェアコンポーネント同士が互いに情報をやりとりするのに使用するインタフェースの仕様である。」([参照](https://ja.wikipedia.org/wiki/アプリケーションプログラミングインタフェース))と説明されています。商業的な狭義としては、各種システムやサービスを利用するAppを開発・プログラミングするためのインターフェースで、OURA APIに関してもこの定義に当てはまる意味合いを持っています。

#### OURA API
[OURA公式サイト](https://support.ouraring.com/hc/ja/articles/4415266939155-Oura-API#h_01H5B94SP4P9YHG9ZKN1H69E7Z)にアクセスすると以下のように説明されています。

*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」が表示されているはずです。下記は私のダッシュボードです。
<img width="300" alt="HR" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3570080/69099889-2ee1-961e-1c94-11d040995f1b.jpeg">
<img width="300" alt="HRV" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3570080/96d22d4d-0037-4eb9-7239-dc435554f398.jpeg">
一方で、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](https://support.ouraring.com/hc/ja/articles/4415266939155-Oura-API#h_01H5B94SP4P9YHG9ZKN1H69E7Z)を参考に行いましょう。

*パーソナル アクセストークンを作成する手順は、以下のとおりです。
1.[パーソナルアクセストークン](https://cloud.ouraring.com/personal-access-tokens)ページに移動します
2.ページの右上にある[新しいパーソナル アクセストークンの作成](https://cloud.ouraring.com/personal-access-tokens/new)をクリックします
3.作成する新しいパーソナル アクセストークンの一意のメモを入力します
4.[パーソナル アクセストークンの作成]をクリックしてフォームを送信し、新しいパーソナル アクセストークンを作成します
[パーソナル アクセストークン]ページに新規アクセストークンが表示されます。
このページから移動するとトークンを表示できなくなるため、必ず新規トークンをコピーしてください。 [コピー]をクリックして、トークンをクリップボードにコピーします。*
![スクリーンショット 2023-10-05 12.27.18.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3570080/683c64c4-f3d2-bbeb-7106-7bc97f7012a1.png)
任意のノートを付与します。
![スクリーンショット 2023-10-05 12.31.23.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3570080/734bdb56-d97d-5be9-95a4-5a71eb8d36f3.png)
生成されたPATs（注：個人情報を含む）をテキストファイル等にコピー/ペーストすることを忘れないでください。英文で記載のあるように、このページを一度離れて同じページに戻った時には作成されたPATsは暗号化（*******で示されているもの）されます。もう一度作成すればいいだけですが面倒です。
![スクリーンショット 2023-10-05 12.32.41.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3570080/7b03bc5b-0233-9488-f3ff-0298342728f3.png)
（※このPATsは削除済みです）

以上でPATsの作成は完了です。作成まではとても簡単ですね。作成が簡単な割にとても、とても注意しなければならないことがあります：
<font color="Red">公式Webでは重要なポイントが欠けていますが、作成したPATsは個人情報へのアクセスが可能となる機密情報です。アカウントに紐づくメールアドレスや、ユーザの体重、身長等は全てこのPATsからアクセス可能ですので、取り扱いには十分に注意していください。例えば、他者と共有することはあまりお勧めできません。</font>

# URLパラメータによる確認
作成したPATsが有効かどうかを[「URLパラメータ」](https://support.ouraring.com/hc/ja/articles/4415266939155-Oura-API#h_01H5B94MRMQ8CF30TTBN1GDCR1)という方法により確認していきましょう。これは、抽出したい情報を呼び出すパラメータの後ろにPATsを付与してブラウザで検索する方法です。

試しに私のアカウントの登録情報を呼び出してみます。ご自身でお試しになる場合は、下記のURLアドレスの　<自分のPATsを入力>　にPATsを挿入してブラウザで検索してみてください。

```
https://api.ouraring.com/v1/userinfo?access_token= <自分のPATsを入力>
```

![スクリーンショット 2023-10-05 13.39.09.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3570080/b4f5f55d-f390-91fc-ae91-4269f246f744.png)

このような結果が返ってきました。作成したPATsが有効であることが確認できました。
![スクリーンショット 2023-10-05 13.41.20.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3570080/24e27148-e313-00da-3cb1-d650c2f5f6fc.png)


# 生データ操作による可能性

私たちのチームでは、既に、OURA ringのみで取得できるデータの中に強い相関関係を示す(複数のデータ同士が関わり合って変化する)ものをたくさん見つけています。これらは今のところ「ただの関係性を持つ変数たち」ですが、機械学習やAIを用いることで「今日は22時に眠くなるから、質の高い睡眠をするためには21時に寝る支度を始めましょう」や「今日のエクササイズの効果が発揮されるのは4日後です」なぁんてことも予測、提案できると考えています。

Fitness Trackerは、どれもまだ「フィードバック(こんなデータが出ましたという報告)ツール」に過ぎません。OURA ringをフル活用して、実生活をより良くするためのツール化していきましょう。

次回からは、OURA APIを使った実際のデータ分析編を始めていきます。恐らく解析ソフトウェアのダウンロード編を投稿すると思います。それではまた！