3万円の体組成計「InBody Dial H30」を購入して毎日測定し始めたが……

データ閲覧はInBodyのアプリを使う必要がある
今まで 自作のWebサイトでグラフや筋トレ結果と一緒に管理していたので不便だ。
それでも、GoogleFitなどの他サービスと連携してAPIでデータ取得が可能だろうと思ってた……。
が、今年の5月にGoogleFit APIサービスの終了が正式に発表された。
Google Fit API:2025年12月で直接連携が終了予定
ただ調べてみると GoogleFit APIで取得していた身体活動情報は、Health Connect(ヘルスコネクト)というアプリ&APIを使用して取得すれば良いらしい。

であれば、
Health ConnectからInBodyデータを取得し、HTTPリクエストで自身のサーバーに転送する
これが実現出来れば事が足りる。そして その手段は2つある。
- 1) 他人のAndroidアプリを活用(Tasker + Health Connect Plugin + HTTPリクエスト)
- 2) Androidアプリを自作(Kotlin + Health Connect SDK + OkHttp)
Androidアプリの自作は敷居が高いので、他人のAndroidアプリ(Tasker)を使って実現してみる。
Taskerとは、Android用の自動化ツール。
特定の条件やイベントが発生した時に、あらかじめ設定したアクションを自動的に実行させることができる。
Tasker + Health Connect Plugin でHealth Connect のデータを抽出
Tasker は有料Androidアプリだ。
実はプライベートでのAndroidアプリ購入は初めて。
そもそも実現できないのであれば無駄になるから購入したくない……。
それは大丈夫。Android のHealth Connectと連携するTaskerプラグインが存在する事が分かってる。

さらに、他の自動化にも便利っぽいので値段も安いし購入。
大まかな流れは次のとおり。
- InBodyアプリがHealth Connectにデータを書き込むよう設定
- Tasker Health Connect PluginをTaskerと連携し、InBodyデータを取得
- Taskerでのタスク作成しデータをJSON形式で取得し、必要に応じて処理
- スケジュール設定: 定期的にデータを取得・送信する(任意)
Tasker を利用したことが無いので、そこに関して記載しておく。
Taskerアプリで 新しいタスクを作成
「Health Connect Tasker Plugin」のAPKはダウンロードし ADBを使ってインストールを行う。
Taskerのホーム画面で「+」をタップし、新しいタスクを作成
タスク名を入力(InBodyDataFetch)
プラグイン連携&設定を行う
「+」をタップ > 「Plugin」 > 「Tasker Health Connect」を選択し、タスク内でアクションを追加する。
さらに「Read Data」を選択し「Configuration」をタップしてプラグイン設定画面を開く。
プラグイン設定画面は英語。
ヘルスレコードのクラスには、取得したいデータ種別を直接指定する。
- 体重: WeightRecord
- 体脂肪: BodyFatRecord
- 基礎代謝率: BasalMetabolicRateRecord
Time Range(データの取得期間)であるスタート、エンド期間は、他の箇所で設定するので
「%StartTime」「%EndTime」
と書いておこう。
「%StartTime」「%EndTime」の設定
最初はこの手順を踏まなかったのでハマったが、乗算(×)を使った数式(%TIMES×1000)は直接入力不可らしい。
このためTaskerの「変数の設定」アクションで予め計算結果を変数に保存しておく必要がある。
%StartTimeの設定
%TIMEMS – 86400000
%EndTimeの設定
%TIMEMS
ファイルに書き込み
データを格納する変数(%healthconnectresult)と、保存フォルダを指定する。
ボタンを押せば選択肢が出る。
これによりJSON形式のデータが変数に保存される。
実行する
実行ボタン「▶」を押して実行ログを見ると動作してる。
設定したフォルダにJSONファイルがあることも確認。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 |
{ "records": [ { "time": 1755553140000, "zoneOffset": "+09:00", "weight": { "grams": 59900.001525878906, "kilograms": 59.900001525878906, "micrograms": 5.990000152587891E10, "milligrams": 5.9900001525878906E7, "ounces": 2112.9106075121877, "pounds": 132.05689841272883 }, "metadata": { "recordingMethod": 0, "id": "5faa3a15-7852-417c-ac5b-8eb4674d9cf3", "dataOrigin": { "packageName": "com.inbody2014.inbody" }, "lastModifiedTime": 1755553208905, "clientRecordId": null, "clientRecordVersion": 0, "device": null } } ], "pageToken": "" } |
このJSONは、2025年8月19日 15:39:00 JST頃にInBodyアプリで記録された、体重約59.9 kgのデータ を表している。
【番外】サーバー側でコード取得
次のようなPHPのコードを作成する。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 |
header('Content-Type: application/json'); header('Access-Control-Allow-Origin: *'); // CORS対応(必要に応じて制限) // POSTデータを受け取る $input = file_get_contents('php://input'); $data = json_decode($input, true); if ($data === null) { http_response_code(400); echo json_encode(['error' => 'Invalid JSON data']); exit; } // ログに保存(例: ファイルに書き込み) $logFile = 'health_data_' . date('Ymd') . '.json'; file_put_contents($logFile, json_encode($data, JSON_PRETTY_PRINT), FILE_APPEND); // 応答を返す echo json_encode(['status' => 'success', 'message' => 'Data saved']); ?> |
次のように事前に動作を確認できる。
1 |
curl -X POST -H "Content-Type: application/json" -d '{"records":[{"time":1755553140000,"weight":{"kilograms":59.9}}]}' https://サーバ名/healthdata.php |
でもTaskerでの実現は止めた。理由は次。
おわりに
まとめると、次の設定を登録する必要がある。
- 「%StartTime」の変数を設定
- 「%EndTime」の変数を設定
- 「Read Data」データ取得の設定
- 「ファイルに書き込み」または「HTTP転送」の設定
そして順番も重要なので次のように並び替える。
最初は本当に分からなかった。実現できたのは GrokAI3 様の御神託のおかげ。
© 泡沫に神は微睡む/安田 のら/KADOKAWA
で取得して分かったこと。
Health Connectがサポートするデータ型は限られており、InBodyのような高度な体組成分析(筋肉量や骨格筋量など)を直接抽出する機能は現時点では完全には提供されてない。
「体重」「体脂肪」「基礎代謝」しかデータを管理してないっぽい。

ズコーーーーー
欲しいのは「筋肉量」と「骨格筋量」だよ……そのためにInBody買ったんだからさ……