Closed5
Health Planet API を試す
タニタの Health Planet API を試す。
OAuth 2.0 アプリケーションの登録
当APIはOAuth 2.0に準じて作成されております。
https://www.healthplanet.jp/apis/api.html
Health Planet API は OAuth 2.0 で認証するらしい。
はじめに APIの設定 でアプリケーションを登録する。
Client ID と Client secret が発行されるので控えておく。
アクセス許可
アプリケーションの登録で発行した Client ID を使って /oauth/auth
でアクセス許可を行う。
発行されるコードは次のリクエストトークンの発行に使うため控えておく。
リクエストトークンの発行
アクセス許可で発行したコードを使って /oauth/token
でリクエストトークンを発行する。
$ curl -X POST -d 'client_id=xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx&client_secret=xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx&redirect_uri=https://www.healthplanet.jp/success.html&code=xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx&grant_type=authorization_code' 'https://www.healthplanet.jp/oauth/token'
{"access_token":"xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx","expires_in":xxxxxxx,"refresh_token":"xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"}
発行されたアクセストークンで Health Planet の情報にアクセスできるようになった。
体組成測定情報の取得
アクセストークンを使って /status/innerscan
を叩き、体組成測定情報を取得する。
$ curl 'https://www.healthplanet.jp/status/innerscan.json?access_token=xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx&date=1&from=20230101000000&to=20231022234600&tag=6021,6022' | jq
{
"birth_date": "xxxxxxxx",
"data": [
{
"date": "202310221653",
"keydata": "xx.xx",
"model": "01000145",
"tag": "6021"
},
{
"date": "202310221653",
"keydata": "xx.xx",
"model": "01000145",
"tag": "6022"
},
{
"date": "202310220023",
"keydata": "xx.xx",
"model": "01000145",
"tag": "6021"
},
{
"date": "202310220023",
"keydata": "xx.xx",
"model": "01000145",
"tag": "6022"
},
{
"date": "202310211222",
"keydata": "xx.xx",
"model": "01000145",
"tag": "6021"
},
{
"date": "202310211222",
"keydata": "xx.xx",
"model": "01000145",
"tag": "6022"
},
{
"date": "202310210807",
"keydata": "xx.xx",
"model": "01000145",
"tag": "6021"
},
{
"date": "202310210807",
"keydata": "xx.xx",
"model": "01000145",
"tag": "6022"
},
{
"date": "202310200329",
"keydata": "xx.xx",
"model": "01000145",
"tag": "6021"
},
{
"date": "202310200329",
"keydata": "xx.xx",
"model": "01000145",
"tag": "6022"
},
{
"date": "202310190958",
"keydata": "xx.xx",
"model": "01000145",
"tag": "6021"
},
{
"date": "202310190958",
"keydata": "xx.xx",
"model": "01000145",
"tag": "6022"
},
{
"date": "202310190317",
"keydata": "xx.xx",
"model": "01000145",
"tag": "6021"
},
{
"date": "202310190317",
"keydata": "xx.xx",
"model": "01000145",
"tag": "6022"
},
{
"date": "202310181123",
"keydata": "xx.xx",
"model": "01000145",
"tag": "6021"
},
{
"date": "202310181123",
"keydata": "xx.xx",
"model": "01000145",
"tag": "6022"
},
{
"date": "202310180246",
"keydata": "xx.xx",
"model": "01000145",
"tag": "6021"
},
{
"date": "202310180246",
"keydata": "xx.xx",
"model": "01000145",
"tag": "6022"
},
{
"date": "202310171047",
"keydata": "xx.xx",
"model": "01000145",
"tag": "6021"
},
{
"date": "202310171047",
"keydata": "xx.xx",
"model": "01000145",
"tag": "6022"
}
],
"height": "xxx.x",
"sex": "male"
}
tag
は 6021
が 体重(kg)
で 6022
が 体脂肪率 (%)
らしい。
筋肉量 (kg)
や 基礎代謝量 (kcal)
は 2020/6/29 から取得できなくなったらしい、残念。
このスクラップは2023/10/22にクローズされました