データの種類

Google Fit は、com.google 名前空間に健康とウェルネスに関するデータ型のセットを提供します。

データ型は、データポイント内の値の形式を定義します。データポイントは、以下のものを表します。

  • 瞬間的な読み取りまたは観察
  • 一定期間内の統計を含む集計

Google Fit では、瞬間的な測定を行うためのデータ型と集計データのデータ型を定義しています。データポイントは、データ型フィールドの値とタイムスタンプ情報で構成されます。瞬間的な観測値を表すポイントにはタイムスタンプが含まれ、集計データのポイントには間隔の開始時間も含まれます。

Google Fit では新しいデータ型を定義することもできます。

データ型グループ

Google Fit には次のデータ型があります。

パブリック データ型
プラットフォームで提供される標準のデータ型には、接頭辞「com.google」が付いています。例: com.google.step_count.delta。これらのデータ型は、フィットネス アクティビティ、睡眠、栄養を含む健康とウェルネスに関するデータの即時読み取りをキャプチャします。どのアプリも、これらのデータ型を読み書きするための適切な権限をリクエストできます。ただし、位置情報を書き込んだアプリからのみ読み取れる少数のロケーション データ型は除きます。

詳しくは以下をご覧ください。

健康に関するデータの種類
プラットフォームで提供されるデータ型。機密データが存在する可能性があるため、アクセスが制限されています。詳細については、ヘルスデータ型をご覧ください。
集計データ型
時間またはアクティビティのタイプ別に集計された健康とウェルネスに関する情報を読み取るためのデータ型。詳細については、集計データ型をご覧ください。
非公開のカスタム データ型
特定のアプリで定義されたカスタムデータ型。そのデータ型を定義するアプリのみが、そのタイプのデータの読み取りと書き込みを行うことができます。詳細については、カスタムデータ型をご覧ください。

データ型の使用

Android

Android では、データ型は DataType クラスのパブリック フィールドとして定義されます。データ型を使って Fitness API を呼び出す方法は、達成する内容によって異なります。

  • データを記録するには、Recording API を使用して、記録するデータの種類ごとにサブスクリプションを作成します。
  • データを読み取るには、History API を使用して、データ型ごとに読み取りリクエストを送信します。
  • 過去の履歴データを挿入するには、History API を使用して、データタイプごとに挿入リクエストを送信します。
  • セッションを作成するには、Sessions API を使用して、セッション メタデータを含むデータを挿入または記録します。

ネイティブ DataType オブジェクトのデータポイントを作成するには、正しい形式の値を割り当てます。次の例は、食品を文字列として割り当て、食事の種類を Field クラスの定数として、栄養成分をマッピングされた浮動小数点値として割り当てる方法を示しています。

val nutritionSource = DataSource.Builder()
    .setDataType(DataType.TYPE_NUTRITION)
    ...
    .build()

val nutrients = mapOf(
    Field.NUTRIENT_TOTAL_FAT to 0.4f,
    Field.NUTRIENT_SODIUM to 1f,
    Field.NUTRIENT_POTASSIUM to 422f
)
val banana = DataPoint.builder(nutritionSource)
    .setTimestamp(now, TimeUnit.MILLISECONDS)
    .setField(Field.FIELD_FOOD_ITEM, "banana")
    .setField(Field.FIELD_MEAL_TYPE, Field.MEAL_TYPE_SNACK)
    .setField(Field.FIELD_NUTRIENTS, nutrients)
    .build()

アプリにデータポイントを設定した後、History API を使用して履歴データの挿入、読み取り、削除ができます。

REST

dataSources リソースには、各データソースのデータ型(およびそのフィールドのリスト)が含まれます。データソースの作成時にこれらのデータ型のいずれかを指定できます。また、フィットネス ストアからデータソースを取得するときに、データ型の名前とフィールドのリストを取得できます。

たとえば、データソース表現では、次のようにデータ型を指定します。

{
"dataStreamId": "exampleDataSourceId",
...
"dataType": {
  "name": "com.google.step_count.delta"
},
...
}

認証スコープ

承認スコープは、ユーザーがアプリにアクセスを許可するデータタイプのグループをカバーします。これにより、ユーザーはアプリがどのような種類のデータにアクセスする必要があるかを把握できます。また、個々のデータ型を承認する必要がないため、そのデータを使用する権限をアプリに付与しやすくなります。ユーザーはアプリのダウンロード後にこれらの権限を付与します。

OAuth スコープの同意画面の例
図 2. OAuth スコープの同意画面

少数のユーザーでアプリをテストした後、アプリを起動する前に、それらのデータタイプに関連するスコープに基づいて確認をリクエストする必要があります。上に示したデータ型のページを確認して、各データ型に適用されるスコープを理解してください。

たとえば、アプリが血圧の読み取りと書き込みを必要とする場合は、読み取りと書き込みの両方を行い、両方のスコープをリクエストすることが必要です。血圧データを Google Fit プラットフォームに書き込むだけの場合は、書き込みスコープをリクエストするだけで済みます。

データタイプを責任を持って選択します。アプリで必要な場合に備えて、すべてのデータ型をリクエストするわけではありません。指定されたタイプによって、ユーザーに権限の付与を求めるスコープが決まります。ユーザーがアプリにアクセスしやすいよう、アプリに必要なデータの種類のみを尋ねてください。ユーザーは、範囲が明確で限定された範囲へのアクセス権を付与しやすくなります。

この表を使用して、アプリがアクセスする必要があるスコープが機密か制限付きかを確認します。これにより、確認手順を実施する必要があります。

スコープ 説明 カテゴリ
https://www.googleapis.com/auth/fitness.activity.read Google Fit プラットフォームからアクティビティ データを読み取ります。 制限付き
https://www.googleapis.com/auth/fitness.activity.write アクティビティ データを Google Fit プラットフォームに書き込む 制限付き
https://www.googleapis.com/auth/fitness.blood_glucose.read Google Fit プラットフォームから血糖値データを読み取ります。 制限付き
https://www.googleapis.com/auth/fitness.blood_glucose.write 血糖値を Google Fit プラットフォームに書き込みます。 制限付き
https://www.googleapis.com/auth/fitness.blood_pressure.read Google Fit プラットフォームから血圧データを読み取る。 制限付き
https://www.googleapis.com/auth/fitness.blood_pressure.write 血圧データを Google Fit プラットフォームに書き込みます。 制限付き
https://www.googleapis.com/auth/fitness.body.read Google Fit プラットフォームから身体測定データ(身長、体重、体脂肪率)を読み取ります。 制限付き
https://www.googleapis.com/auth/fitness.body.write 身体測定データを Google Fit プラットフォームに書き込みます。 制限付き
https://www.googleapis.com/auth/fitness.body_temperature.read Google Fit プラットフォームから体温データを読み取ります。 制限付き
https://www.googleapis.com/auth/fitness.body_temperature.write 体温データを Google Fit プラットフォームに書き込みます。 制限付き
https://www.googleapis.com/auth/fitness.heart_rate.read Google Fit プラットフォームから心拍数データを読み取ります。 制限付き
https://www.googleapis.com/auth/fitness.heart_rate.write 心拍数データを Google Fit プラットフォームに書き込みます。 制限付き
https://www.googleapis.com/auth/fitness.location.read Google Fit プラットフォームから位置情報を読み取ります。 制限付き
https://www.googleapis.com/auth/fitness.location.write 位置情報を Google Fit プラットフォームに書き込みます。 制限付き
https://www.googleapis.com/auth/fitness.nutrition.read Google Fit プラットフォームから栄養データを読み取ります。 制限付き
https://www.googleapis.com/auth/fitness.nutrition.write 栄養データを Google Fit プラットフォームに書き込みます。 制限付き
https://www.googleapis.com/auth/fitness.oxygen_saturation.read Google Fit プラットフォームから酸素飽和度データを読み取ります。 制限付き
https://www.googleapis.com/auth/fitness.oxygen_saturation.write 酸素飽和度データを Google Fit プラットフォームに書き込みます。 制限付き
https://www.googleapis.com/auth/fitness.reproductive_health.read Google Fit プラットフォームからリプロダクティブ ヘルス データを読み取ります。 制限付き
https://www.googleapis.com/auth/fitness.reproductive_health.write リプロダクティブ ヘルスデータを Google Fit プラットフォームに書き込みます。 制限付き
https://www.googleapis.com/auth/fitness.sleep.read Google Fit プラットフォームから睡眠データを読み取ります。 制限付き
https://www.googleapis.com/auth/fitness.sleep.write 睡眠データを Google Fit プラットフォームに書き込みます。 制限付き

既存のアプリに新しいスコープを追加する

新しいスコープをリクエストするようにアプリを更新すると(新しい睡眠スコープや心拍数スコープを追加する、読み取りスコープを追加するなど)、アプリがこれらのスコープへのアクセスをリクエストするように求められ、ユーザーはアクセスの許可または拒否を選択できます。

リソースの承認は、適切なタイミングでユーザーにリクエストすることをおすすめします。段階的な承認のリクエストのガイドラインに従います。

アプリがこのデータを使用する理由/仕組みを理解すれば、ユーザーがアクセスできるようになる可能性が高くなります。

  • これらのスコープの使用を求められることをユーザーに警告する画面を追加することをご検討ください。
  • アプリが十分な情報に基づいて判断できるように、アプリがこれらのスコープ/データへのアクセスを必要とする理由を明確に説明します。

詳しくは、Android アプリのアプリの許可に関するおすすめの設定をご覧ください。