Google Health API を使用して歩数エクスペリエンスを開発する

Google Health API は、steps 間隔データ型を使用して、ユーザーの歩数とアクティビティ データをトラッキングします。歩数は、1 日の身体活動の基本的な指標であり、デベロッパーはこれを使用してフィットネスの進捗状況をトラッキングし、エネルギー消費量を計算し、ユーザー向けの 1 日のアクティビティの概要を作成できます。

ユーザーに最適なエクスペリエンスを提供するために、アプリで歩数指標を読み取って構造化する方法を理解してください。

サポートされるデータ型

この API は、歩数をトラッキングするために次のデータ型をサポートしています。

表: Google Health API の歩数データ型
データの種類
  dataType
  filter パラメータ
レコード
タイプ
利用可能な
オペレーション
スコープ Webhook
のサポート
真のゼロ
のサポート
歩数
  steps
  steps
インターバル list、reconcile、rollup、dailyRollup .activity_and_fitness.readonly
.activity_and_fitness.writeonly

以降のセクションでは、REST 表現の例や統合ガイドラインなど、steps データ型の技術的な詳細について説明します。

必要なスコープ

このデータ型にアクセスするには、アプリで次の OAuth スコープをリクエストする必要があります。

  • 既読: https://www.googleapis.com/auth/googlehealth.activity_and_fitness.readonly
  • 書き込み: https://www.googleapis.com/auth/googlehealth.activity_and_fitness.writeonly

ガイドライン

アプリに歩数トラッキングを統合する場合は、次の設計と実装のガイドラインに沿ってください。

1 日の概要

旅行、タイムゾーンの変更、夏時間中に 1 日の歩数を正確に集計するには、クライアントサイドで期間の計算を行わないでください。代わりに、UTC オフセットを使用して身体データのギャップを自動的に調整する dailyRollUp エンドポイントに対してクエリを実行します。ロールアップは、リクエストされた日の累積歩数の合計を表す countSum フィールドを含む StepsRollupValue を返します。

ユーザー インターフェースの描画(調整)

歩数データを表示するユーザー インターフェース要素を作成する場合は、reconcile エンドポイントを使用します。複数のデータソース(スマートウォッチやモバイル デバイスなど)が同時に歩数を記録した場合、reconcile エンドポイントは競合を解決し、ストリームを統合して、調整された単一のデータ ストリームを返します。

日中のトラッキングとヒストグラム

1 日を通してユーザー アクティビティの詳細(グラフなど)を表示するには:

  • 1 時間ごとの歩数ヒストグラム: rollUp エンドポイントに対してクエリを実行し、windowSize パラメータを使用して期間(1 時間の場合は 3600s など)を指定します。
  • すべての歩数レコード: list エンドポイントを使用して、最も詳細な未加工の歩数レコードを取得します。

rollUp エンドポイントと reconcile エンドポイントの両方で dataSourceFamily クエリ パラメータを使用できるため、特定のソースグループのデータをフィルタできます。

Webhook を使用したリアルタイム同期

steps データ型コレクションをサブスクライブすると、新しい歩数データがインポートまたは同期されたときにリアルタイムで通知を受け取ることができます。REST エンドポイントをポーリングするのではなく、これらの Webhook 通知に応じてクライアントサイドのダッシュボードを動的に更新します。サブスクリプションの設定方法について詳しくは、 Webhook サブスクリプションをご覧ください。

真のゼロを処理する

Google Health API は、真のゼロを実装して座りがちな期間を解決します。ユーザーがアクティブであるか、トラッカーを装着しているが歩いていない場合、トラッカーは count"0" の明示的な歩数間隔を書き込みます。これにより、デバイスを装着しているが歩数がゼロの場合と、デバイスを装着していない場合を区別できます。詳細については、 データの存在と真のゼロのガイドをご覧ください。