API 仕様のセクションでは、プラットフォームとの統合に不可欠な技術コンポーネント(認証スコープ、データ型定義、エンドポイント構造など)について詳しく説明します。この API は、従来の Fitbit Web API の戦略的な進化を表しています。最新のインフラストラクチャ上に再構築され、より安定した一貫性のあるデベロッパー エクスペリエンスを実現します。
スコープ
Google Health API スコープを使用するには、認証リクエストを更新する必要があります。 スコープは、アプリが読み取りオペレーションと書き込みオペレーションのどちらをサポートするかを定義します。 必要なスコープのみをリクエストし、データの送信時にのみ書き込みアクセスを構成し、部分的な同意を適切に処理する スコープ実装の手順に沿って操作してください。
Google Health API スコープは、https://www.googleapis.com/auth/googlehealth.{scope} で始まる HTTP URL です。例: https://www.googleapis.com/auth/googlehealth.activity_and_fitness.writeonly
スコープ マッピング
Fitbit Web API スコープと Google Health API スコープのマッピングは次のとおりです。
| Fitbit Web API スコープ | Google Health API スコープ |
|---|---|
| アクティビティ | .activity_and_fitness.readonly
.activity_and_fitness.writeonly |
| blood_glucose | .health_metrics_and_measurements.readonly
.health_metrics_and_measurements.writeonly |
| cardio_fitness | .activity_and_fitness.readonly
.activity_and_fitness.writeonly |
| 心電図 | .ecg.readonly
|
| 心拍数 | .health_metrics_and_measurements.readonly
.health_metrics_and_measurements.writeonly |
| irregular_rhythm_notifications | .irn.readonly
|
| ロケーション | .location.readonly
|
| 栄養 | .nutrition.readonly
.nutrition.writeonly |
| oxygen_saturation | .health_metrics_and_measurements.readonly
.health_metrics_and_measurements.writeonly |
| プロフィール | .profile.readonly
.profile.writeonly |
| respiratory_rate | .health_metrics_and_measurements.readonly
.health_metrics_and_measurements.writeonly |
| 設定 | .settings.readonly
.settings.writeonly |
| 睡眠 | .sleep.readonly
.sleep.writeonly |
| 温度 | .health_metrics_and_measurements.readonly
.health_metrics_and_measurements.writeonly |
| 体重 | .health_metrics_and_measurements.readonly
.health_metrics_and_measurements.writeonly |
データ型
Google Health API のデータ型と Fitbit Web API へのマッピングのリストを以下に示します。
これらのタイプのデータのレポート方法について詳しくは、 データの存在と真のゼロのガイドをご覧ください。 このガイドには、非アクティブとオンリストのフィルタリングの詳細が含まれています。
| Fitbit Web API データ型 | Google Health API データ型dataType |
|---|---|
| アクティビティのカロリー | 消費カロリーactive-energy-burned
|
| アクティブ ゾーン時間 | アクティブ ゾーン時間active-zone-minutes
|
| ユーザーのアクティビティ レベルの変更を含む | アクティビティ レベルactivity-level
|
| 高度 | 高度altitude
|
| 血糖値 | 血糖値blood-glucose
|
| 体脂肪 | 体脂肪body-fat
|
各心拍ゾーンの caloriesOut |
心拍ゾーンのカロリーcalories-in-heart-rate-zone
|
| 温度(深部) | 深部体温core-body-temperature
|
| HRV の概要 | 1 日の心拍変動daily-heart-rate-variability
|
| SpO2 の概要 | 1 日の酸素飽和度daily-oxygen-saturation
|
| 安静時の心拍数 | 1 日の安静時の心拍数daily-resting-heart-rate
|
| 皮膚温 | 1 日の睡眠温度の派生値daily-sleep-temperature-derivations
|
| 距離 | 距離distance
|
| 心電図 | 心電図electrocardiogram
|
| 録画アクティビティ | 運動exercise
|
| 階数 | 階数floors
|
| 食べ物 | 食べ物food
|
| 食べ物 | 食べ物food
|
| 食品の測定単位 | 食品の測定単位food-measurement-unit
|
| 食品の測定単位 | 食品の測定単位food-measurement-unit
|
| 心拍数 | 心拍数heart-rate
|
| HRV 1 日以内 | 心拍変動heart-rate-variability
|
| 不整脈の通知 | 不整脈の通知irregular-rhythm-notification
|
| 食事の記録 | 栄養摂取量の記録nutrition-log
|
| 食事の記録 | 栄養摂取量の記録nutrition-log
|
| SpO2 1 日以内 | 酸素飽和度oxygen-saturation
|
| ユーザーが実行しているときの最大酸素摂取量 | ランニング時の最大酸素摂取量run-vo2-max
|
| アクティビティの時系列(分) | 座りがちな時間sedentary-period
|
| 睡眠 | 睡眠sleep
|
| 手順 | 手順steps
|
| アクティビティの時系列(水泳のストローク) | プールの長さのデータswim-lengths-data
|
アクティビティ caloriesOut |
総カロリーtotal-calories
|
| 最大酸素摂取量 | 最大酸素摂取量vo2-max
|
| 体重 | 体重weight
|
エンドポイント
REST エンドポイントでは、すべてのデータ型で一貫した構文が採用されています。
- サービス エンドポイント: 基本 HTTP URL が https://health.googleapis.com に変更されます。
- エンドポイントの構文: Google Health API は、サポートされているほとんどのデータ型で使用できる エンドポイントの数が限られています。これにより、すべてのデータ型で一貫した構文が提供され、エンドポイントを簡単に使用できます。
- ユーザー識別子: エンドポイントの構文では、ユーザー ID または me を指定する必要があります。me を使用すると、ユーザー ID はアクセス トークンから推測されます。
例: Google Health API を使用して呼び出される GET プロフィール エンドポイントの例を次に示します。
GET https://health.googleapis.com/v4/users/me/profile
エンドポイント マッピング
利用可能なデータ型と、それらがサポートする API メソッドのリストについては、Google Health API のデータ型 の表をご覧ください。
| Fitbit Web API エンドポイント タイプ | Google Health API |
| GET(ログ | 概要 | 1 日の概要)で、1 日分のデータをリクエストする場合 | windowSize = 1 日の dailyRollup メソッド |
| GET(イントラデイ)で、粒度の高いデータをリクエストする場合 | list メソッド |
| 日付または間隔で GET(時系列) | 日付範囲を含む rollUp メソッドまたは dailyRollUp メソッド |
| GET(ログリスト) | list メソッド |
| ログの作成と更新 | patch メソッド |
| ログの削除 | batchDelete メソッド |
| プロフィールの取得 | users.getProfile はユーザーの固有情報を返します
users.getSettings はユーザーの単位とタイムゾーンを返します |
| プロフィールの更新 | users.updateProfile はユーザーの固有情報を変更します
users.updateSettings はユーザーの単位とタイムゾーンを変更します |
| ユーザー ID の取得 | users.getIdentity は、ユーザーの Fitbit レガシーと Google のユーザー ID を返します。 |
| デバイスの取得 | users.pairedDevices は、ペア設定されたデバイスのリストを返します |
| サブスクリプションの作成 | projects.subscribers.subscriptions.create は、 サブスクリプションを手動で作成します |
| サブスクリプションの削除 | projects.subscribers.subscriptions.delete は、 サブスクリプションを削除します |
| サブスクリプション リストの取得 | projects.subscribers.subscriptions.list は、すべての サブスクリプションを一覧表示します |