Bagian Spesifikasi API memberikan ringkasan mendetail tentang komponen teknis yang penting untuk berintegrasi dengan platform, termasuk cakupan otorisasi, definisi jenis data, dan struktur endpoint. API ini merupakan evolusi strategis dari Fitbit Web API lama, yang dibangun ulang di infrastruktur modern untuk memastikan pengalaman developer yang lebih stabil dan konsisten.
Cakupan
Anda harus memperbarui permintaan otorisasi untuk menggunakan cakupan Google Health API. Cakupan menentukan apakah aplikasi Anda mendukung operasi baca atau tulis. Jangan gunakan cakupan yang tidak diperlukan untuk aplikasi Anda. Anda dapat menambahkan lebih banyak cakupan nanti jika desain aplikasi Anda berubah.
Cakupan Google Health API adalah URL HTTP yang diawali dengan https://www.googleapis.com/auth/googlehealth.{scope}. Misalnya, https://www.googleapis.com/auth/googlehealth.activity_and_fitness.writeonly.
Pemetaan cakupan
Berikut cara cakupan Fitbit Web API dipetakan ke cakupan Google Health API:
| Cakupan Fitbit Web API | Cakupan Google Health API |
|---|---|
| aktivitas | .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 |
| elektrokardiogram | .ecg.readonly
|
| detak jantung | .health_metrics_and_measurements.readonly
.health_metrics_and_measurements.writeonly |
| irregular_rhythm_notifications | .irn.readonly
|
| lokasi | .location.readonly
|
| gizi | .nutrition.readonly
.nutrition.writeonly |
| oxygen_saturation | .health_metrics_and_measurements.readonly
.health_metrics_and_measurements.writeonly |
| profil | .profile.readonly
.profile.writeonly |
| respiratory_rate | .health_metrics_and_measurements.readonly
.health_metrics_and_measurements.writeonly |
| setelan | .settings.readonly
.settings.writeonly |
| sleep | .sleep.readonly
.sleep.writeonly |
| suhu | .health_metrics_and_measurements.readonly
.health_metrics_and_measurements.writeonly |
| bobot | .health_metrics_and_measurements.readonly
.health_metrics_and_measurements.writeonly |
Jenis data
Berikut daftar jenis data Google Health API dan cara pemetaannya ke Fitbit Web API.
| Jenis Data Fitbit Web API | Jenis Data Google Health APIdataType |
|---|---|
| Kalori Aktivitas | Energi Aktif yang Terbakaractive-energy-burned
|
| Menit Zona Aktif | Menit Zona Aktifactive-zone-minutes
|
| Berisi perubahan pada tingkat aktivitas pengguna | Tingkat Aktivitasactivity-level
|
| Elevasi | Ketinggianaltitude
|
| Gula Darah | Glukosa Darahblood-glucose
|
| Lemak tubuh | Lemak Tubuhbody-fat
|
caloriesOut di setiap zona detak jantung |
Kalori dalam Zona Detak Jantungcalories-in-heart-rate-zone
|
| Suhu (Inti) | Suhu Tubuh Inticore-body-temperature
|
| Ringkasan HRV | Variabilitas Detak Jantung Hariandaily-heart-rate-variability
|
| Ringkasan SpO2 | Saturasi Oksigen Hariandaily-oxygen-saturation
|
| Detak jantung saat istirahat | Detak Jantung Saat Istirahat Hariandaily-resting-heart-rate
|
| Suhu kulit | Turunan Suhu Tidur Hariandaily-sleep-temperature-derivations
|
| Jarak | Jarakdistance
|
| Elektrokardiogram (EKG) | Elektrokardiogram (EKG)electrocardiogram
|
| Aktivitas yang direkam | Exerciseexercise
|
| Lantai | Lantaifloors
|
| Makanan | Makananfood
|
| Satuan Pengukuran Makanan | Satuan Ukur Makananfood-measurement-unit
|
| Detak Jantung | Detak Jantungheart-rate
|
| HRV Intrahari | Variabilitas Detak Jantungheart-rate-variability
|
| Notifikasi Irama Tidak Teratur (IRN) | Notifikasi Irama Tidak Teraturirregular-rhythm-notification
|
| Catatan Makanan | Log Nutrisinutrition-log
|
| SpO2 Intrahari | Saturasi Oksigenoxygen-saturation
|
| Nilai VO2 Maks saat pengguna berlari | VO2 Maks Larirun-vo2-max
|
| Deret waktu aktivitas dalam menit tidak bergerak | Periode Tidak Aktifsedentary-period
|
| Tidur | Tidursleep
|
| Langkah | Langkah-langkahsteps
|
| Deret waktu aktivitas gaya renang | Data Panjang Kolamswim-lengths-data
|
Aktivitas caloriesOut |
Total Kaloritotal-calories
|
| Nilai VO2 Maks | VO2 Maksvo2-max
|
| Berat | Beratweight
|
Endpoint
Endpoint REST mengadopsi sintaksis yang konsisten untuk semua jenis data.
- Service Endpoint: URL HTTP dasar berubah menjadi https://health.googleapis.com.
- Sintaksis Endpoint: Google Health API mendukung sejumlah kecil endpoint, yang dapat digunakan oleh sebagian besar jenis data yang didukung. Hal ini memberikan sintaksis yang konsisten untuk semua jenis data dan membuat endpoint lebih mudah digunakan.
- ID Pengguna: ID pengguna atau me harus ditentukan dalam sintaksis endpoint. Saat menggunakan saya, ID pengguna disimpulkan dari token akses.
Contoh: Berikut adalah contoh endpoint GET Profile yang dipanggil menggunakan Google Health API
GET https://health.googleapis.com/v4/users/me/profile
Pemetaan endpoint
Lihat tabel jenis data Google Health API untuk mengetahui daftar jenis data yang tersedia dan metode API yang didukungnya.
| Jenis Endpoint Fitbit Web API | Google Health API |
| GET (Log | Ringkasan | Ringkasan Harian) tempat Anda meminta data satu hari | Metode dailyRollup dengan windowSize = 1 hari |
| GET (Intraday) jika Anda meminta data terperinci | Metode list |
| GET (Deret Waktu) menurut Tanggal atau Interval | Metode rollUp atau dailyRollUp yang mencakup rentang tanggal |
| GET (Daftar Log) | Metode list |
| MEMBUAT & MEMPERBARUI Log | Metode patch |
| HAPUS Log | Metode batchDelete |
| GET Profile | users.getProfile menampilkan informasi spesifik pengguna
users.getSettings menampilkan unit dan zona waktu pengguna |
| PERBARUI Profil | users.updateProfile mengubah informasi spesifik pengguna
users.updateSettings mengubah unit dan zona waktu pengguna |
| Mendapatkan ID Pengguna | users.getIdentity menampilkan ID pengguna Google dan ID pengguna lama Fitbit. |
| Mendapatkan Perangkat | users.pairedDevices menampilkan daftar perangkat yang disambungkan |
| Membuat Langganan | projects.subscribers.subscriptions.create membuat langganan secara manual |
| Menghapus Langganan | projects.subscribers.subscriptions.delete menghapus langganan |
| Mendapatkan Daftar Langganan | projects.subscribers.subscriptions.list mencantumkan semua langganan |