🧑‍⚕️

Withings APIで体重を取得する

2023/01/17に公開

Withingsはいろーんなヘルスデータを取得できるガジェットを出しています。

どれも少し値段は高いですが、デザインがシンプルなのでお気に入りです。

Body Composition Smart Scales by Withings

Witings Bodyは、いわゆるスマート体重計です。

記録したヘルスデータをAPI経由で取得できるので、APIを活用して自分のヘルスデータを確認するページを作ったりしてます。

今回は、Withings API経由で自分の体重を取得した際のメモを書き残そうと思います。

Postmanを使ってWithings APIから体重を取得する

環境

  • macOS BigSur (M1)
  • Postman(8.4.0)

事前準備

Postmanをインストール

Postman

Postmanを使うと、手軽にAPIを検証できるのでおすすめです。

PostmanはWeb版とクライアント版がありますが、今回はクライアント版を利用しました。

Withingsのアカウントを作成

Withings Healthmate

Withingsのアカウントを作成します。既に登録済みの方は不要です。

Withings Developer登録

Withings Developer

APIを利用するためにWithings Developerとしてパートナー登録をします。

Postmanで利用するため、コールバックURLにはhttps://oauth.pstmn.io/v1/callbackを入力します。

(Web版を使うとエンドポイントが異なる可能性があります)

登録が完了すると、Client ID, Client Secretが発行されます。

これで事前準備は完了です。

PostmanでAccess Tokenを取得する

APIドキュメントを参考にしながら体重を取得していきます。

CollectionsをImportする

2021年7月2日時点で、公式からPostmanのコレクションが配布されています。

CollectionsのImport -> Linkで以下のURLを入れると使うことができます。

https://raw.githubusercontent.com/withings-sas/api-oauth2-postman/master/Public_API.postman_collection.json

Authorizationを設定する

インポートしたCollectionsのAuthorizationで認証情報を設定していきます。

Oauth2.0認証を利用するため、設定値は以下のようになります。

「Get New Access Token」を押すと、Withingsのログイン画面になります。

自分のアカウントを入力して、連携を許可するとAccess Tokenを取得できます。

(ブラウザの設定によってはポップアップブロックされるので許可する)

use Tokenをクリックすると、Current Tokenに取得されたAccess Tokenが表示されます。

体重を取得する

いよいよ体重を取得します。

CollectionsのMeasures -> Getmeasのリクエストを開き、AuthorizationのTypeをInherit auth from parentに設定します。

これで先ほど取得したAccess Tokenを利用して体重を取得することができます。

Bodyタブからパラメータは設定します。

ドキュメントを参考にmeastype: 1, category: 1とすると体重を取得できます。

Measure - Getmeas

結果

以下のようなJSONが返ってきたら成功です。

{
    "status": 0,
    "body": {
        "updatetime": 1625217057,
        "timezone": "Asia/Tokyo",
        "measuregrps": [
            {
                "grpid": xxxxxx,
                "attrib": 0,
                "date": 1624975530,
                "created": 1624975558,
                "category": 1,
                "deviceid": "xxxxxx",
                "hash_deviceid": "xxxxxx",
                "measures": [
                    {
                        "value": 53600,
                        "type": 1,
                        "unit": -3,
                        "algo": 0,
                        "fm": 131
                    }
                ],
                "comment": null
            }
        ]
    }
}


valueの値が体重ですが、value * 10^(unit) kgという形で提供されています。

53.6kgということで問題なく取得できていますね。

おわりに

ヘルスデータを手軽に取得できるWeb APIは少なく、Withingsはヘルスデータを使って何か開発する際の選択肢になるかと思います。

体重計の他にも睡眠計やスマートウォッチもあり、身に付けておくだけで色々なヘルスデータを取得できます。 私はSleepSteel HRを愛用しています。

日々の健康を可視化したい方は、試してみてはいかがでしょうか!

Discussion