目的
ウェアラブルデバイスって近未来間あってかっこよくない?
なんかおもちゃ買って遊びたいよね
利用サービス・言語
-
JINS MEME
3点式眼電位センサー、3軸加速度センサー、3軸ジャイロ(角速度)センサーのついたメガネです。
BLEでスマホに接続し、データを収集します。 -
JINS MEME SDK
Android,iOS,MONACA,Node.js,WebAPIが用意されています。
今回は~~容易に用意できる(爆笑)~~WebAPIを使います -
Advanced REST client
Chrome拡張のRESTクライアントになります。
これしか知らないので他に良いものがあれば教えてください。
準備
1.アカウント作成、スマホへのインストール。
2.JINS MEME DEVELOPERSへの登録(https://jins-meme.github.io/sdkdoc/api/register.html)
プライバシーポリシーURLとOAuthリダイレクトURLはhttp://google.comにしました。
アクセス権はOFFICE,RUN,DRIVEすべてチェック入れましょう。
作成後、アプリIDとアプリSecretは控えておいてください。
3.元データを取得するため、メガネ掛けて外走ってきてください。
注意
JINSから出ているアプリは
- MEME
- MEME OFFICE
- MEME RUN
- MEME RUNNext
- MEME DRIVE(現・DRIVE2)
- MEME TAIKAN
- MEME ZEN
の7種です。
WebAPIで取得することが可能なデータはこの中のOFFICE,RUNNext,DRIVEのみとなります。
また、GoogleStoreにはOFFICE,RUNNextがリリースされていないのでAndroidユーザは一生懸命ランニングしても無駄になります。
一週間走った結果が無駄になった人が当記事を書いています。
|アプリ|データ取得|AppStore|GoogleStore|
|:-:|:-:|:-:|:-:|:-:|
|MEME|×|〇|〇|
|OFFICE|〇|〇|×|
|RUN Next|〇|〇|×|
|DRIVE|〇|〇|〇|
|RUN|×|〇|〇|
|TAIKAN|×|〇|〇|
|ZEN|×|〇|×|
-
OFFICE
JINS MEME OFFICEは、あなたのポテンシャルを最大限に引き出す、初めての「集中力計測アプリ」です。JINS MEMEメガネのセンサーで、アタマ・ココロ・カラダのデータを計測。集中力を可視化。計測データを振り返ることで、集中を使いこなすための勝ちパターンやルーティンが見つかります。さらに、カレンダーを連携すると、自分が何をしている時に集中できていたかがわかり、より詳細な振り返りを可能にします。 -
RUN Next
6軸センサーで、ランニング中の体の動きを正確に測定。メガネで測定したデータを解析し、ランニングの無駄や弱点発見をサポート。効率的で、疲れにくく故障しづらい、理想の走りへとあなたを導きます。 -
DRIVE2
JINS MEME メガネの眼電位センサーと6軸センサーが、疲労や眠気に伴うまばたき・視線の変化と頭の動きも捕捉。ドライバーの覚醒度の変化を検知し、アプリを通じて眠気の可能性を画面と音声でお知らせ。毎日の通勤から週末のファミリードライブまで、あなたの安全運転をアシストします。
解説
認可コードの取得
Getリクエストでトークン取得用の認可コードを取得します。
下記のコードをchromeのアドレスバーに張り付けてください。
https://accounts.jins.com/jp/ja/oauth/authorize?response_type=code&client_id=XXXXXXXXXXXX&redirect_uri=http://google.com&state=hoge&scope=office%20run%20drive&service_id=meme
client_idとredirect_uriは適宜書き換えてください。
redirect_uriはJINS MEME DEVELOPERS登録時に記入したURIを記載。(今回はhttp://google.com)
成功するとリダイレクト先に飛ばされ、クエリパラメータに認可コードとstateが入っています。
アクセストークンの取得
認可コードを使ってアクセストークンを取得します。
次はPOSTリクエストのため、RESTクライアントを使用します。
・MethodにPOST
・ReqestURLにhttps://apis.jins.com/meme/v1/oauth/token
・HeaderNameにContent-Type
・Headervalueにapplication/x-www-form-urlencoded
を指定
Bodyタブに移動し
・grant_typeにauthorization_code
・codeに先ほど取得した認可コード
・redirect_uriにhttp://google.com
・client_idにDEVELOPERS登録時のアプリID
・client_secretにDEVELOPERS登録時のアプリSecret
SENDボタンを押して正しく入力されていれば
アクセストークンが返ってきます。
{
"access_token": "XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX",
"token_type": "bearer",
"expires_in": 2592000,
"refresh_token": "XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX",
"scope": "office run drive"
}
パーソナルデータの取得
アクセストークンまで取得出来たら最後にデータをGetでとってきます。
https://apis.jins.com/meme/v1/users/me/drive2/computed_data?type=computed_data2&date_from=2018-06-17T00%3A00%3A00%2B00%3A00&date_to=2018-06-17T23%3A59%3A59%2B00%3A00
クエリパラメータはdate_fromとdate_toが必須、項目数が多いのでオプションでfieldsを指定することで絞ることもできます。
date_**はYYYY-MM-DDThh:mm:ssTZD
の書式で指定します。コロンとプラス記号はエンコードし%3A,%2Bになります。
例)2019年1月2日3時4分5秒(日本時間)→2019-01-02T03:04:05+09:00→2019-01-02T03%3A04%3A05%2B09%3A00
ヘッダには
・acceptにapplication/json
・authorizationにBearer XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX(アクセストークン)
を指定し、SENDボタンを押します
結果
うまくいくとこんな感じでデータが取れます。
{
"computed_data": {
"12": [
{
"date": "2018-06-17T12:20:15Z",
"cat": 11,
"r_bk": 58,
"r_eu": 24,
"r_ed": 36,
"r_er": 26,
"r_el": 38,
"nd": 4,
"stp": 2,
"nptm_b": 0.0154,
"npts_b": 0.0147,
"nptm_a": 0.0154,
"npts_a": 0.0147,
"vpwm_a": 0,
"bkil": 0,
"bkir": 0,
"p_vld": 1,
"m_npt": 0.0395,
"m_npt_c": 0.0395,
"m_npt_cl": 0.0182,
"m_bki": 0,
"m_vpw": 0.1099,
"bk": 2,
"d_ivd": 0,
"npt_t": 65.1,
"npt_ts": 65.1,
"npt_tl": 52,
"ss_t": 0,
"bts_t": 0,
"lb_t": 0,
"npt": 38.5,
"npt_d": 29.6,
"spn": 29.6,
"lng": 135.69193,
"lat": 34.88692,
"spd": 0.7,
"hmc": 20,
"til": 0.6,
"wtr": "100",
"in_mes": 0,
"dist": 0,
"isl": false
},
{
"date": "2018-06-17T12:18:45Z",
"cat": 10,
"r_bk": 14,
"r_eu": 6,
"r_ed": 4,
"r_er": 3,
"r_el": 4,
"nd": 0,
"stp": 1,
"nptm_b": 0.0085,
"npts_b": 0.0052,
"nptm_a": 0.0085,
"npts_a": 0.0052,
"vpwm_a": 0,
"bkil": 0,
"bkir": 0,
"p_vld": 0,
"m_npt": 0,
"m_npt_c": 0,
"m_npt_cl": 0,
"m_bki": 0,
"m_vpw": 0,
"bk": 0,
"d_ivd": 1,
"npt_t": 0,
"npt_ts": 0,
"npt_tl": 0,
"ss_t": 0,
"bts_t": 0,
"lb_t": 0,
"npt": 0,
"npt_d": 29.6,
"spn": 29.2,
"lng": 135.69193,
"lat": 34.88692,
"spd": 1.7,
"hmc": 2,
"til": -6.9,
"wtr": "100",
"in_mes": 0,
"dist": 0,
"isl": false
}
]
},
"cursor": null
}
つぎ
Androidアプリを作る予定だったんですがコケまくりで記事にもならないのでWebAPIを使ってみました。
サポートへメールを投げたので返事待ちです。