Melakukan panggilan Google Health API pertama Anda

1. Pengantar

Visual Studio Code (VS Code) dan ekstensi Rest Client oleh Huachao Mao dapat memungkinkan Anda menguji alur izin Google OAuth dan Google Health API. Codelab ini akan menunjukkan cara menyiapkan ekstensi Rest Client, cara memulai alur otorisasi, dan melakukan panggilan pertama ke salah satu endpoint Google Health API. Setelah itu, Anda dapat membaca dokumentasi Rest Client dan dokumentasi Fitbit untuk membuat endpoint lainnya dalam project HTTP Anda.

Jika Anda tidak ingin menggunakan VS Code dan Rest Client, panggilan API dapat dilakukan dengan perintah curl.

Yang akan Anda pelajari

  • Cara menyiapkan VS Code dengan ekstensi Rest client.
  • Cara menyiapkan client ID dalam konsol Google Cloud.
  • Cara melewati alur otorisasi Google OAuth 2.0 untuk mendapatkan token akses dan token refresh.
  • Cara melakukan panggilan ke endpoint Google Health API menggunakan klien Rest.

Yang Anda butuhkan

Untuk menyiapkan aplikasi seluler Fitbit:

  1. Di Apple App Store atau Google Play Store, telusuri aplikasi seluler Fitbit dan download.
  2. Pilih ikon aplikasi.
  3. Klik Login dengan Google.
  4. Pilih Akun Google Anda, lalu tekan tombol Lanjutkan.

Untuk menginstal alat Visual Studio:

  1. Download VS Code. Biasanya, hasil download berisi file yang dapat dieksekusi.
  2. Mulai VS Code.
  3. Instal ekstensi Rest Client oleh Huachao Mao.
    • Klik ikon ekstensi extension di sisi kiri IDE.
    • Telusuri REST Client by Huachao Mao, lalu tekan Install.

2. Menyiapkan project Google Cloud

Anda akan menggunakan konsol Google Cloud untuk membuat client ID dan mengaktifkan penggunaan Google Health API.

  1. Login ke konsol Google Cloud.
  2. Untuk membuat project baru:
    1. Klik Pilih project dari pemilih project.
    2. Di pojok kanan atas, pilih Project Baru.
    3. Masukkan Nama project Anda.
    4. Masukkan Lokasi Anda (misalnya, "Tidak ada organisasi").
    5. Klik tombol Buat.
    6. Pilih project Anda.

Mengaktifkan Google Health API

  1. Di sudut kiri atas, klik ikon menu:menu
  2. Pilih APIs & Services > Library.
  3. Telusuri "Google Health API" dan aktifkan.

Menyiapkan kredensial OAuth Anda

Jika Anda tidak berada di Konsol Google Cloud, buka Konsol Google Cloud.

  1. Di sudut kiri atas, klik ikon menu:menu
  2. Pilih API & Layanan > Kredensial.
  3. Di bagian tengah atas, pilih + Create Credentials > OAuth client ID.
  4. Klik tombol Konfigurasi layar izin. Jika pesan "Google Auth Platform not configured yet" muncul, klik tombol Get Started.
  5. Di bagian 1:
    1. Masukkan Nama aplikasi.
    2. Masukkan Email dukungan pengguna.
    3. Klik tombol Berikutnya.
  6. Di bagian 2:
    1. Pilih Eksternal.
    2. Klik tombol Berikutnya.
  7. Di bagian 3:
    1. Masukkan alamat email Anda di kolom Informasi Kontak.
    2. Klik tombol Berikutnya.
  8. Di bagian 4:
    1. Klik kotak centang untuk menyetujui Kebijakan Data Pengguna Layanan API Google.
    2. Klik tombol Buat.
  9. Di bagian metrik, tekan tombol Buat klien OAuth.
  10. Pilih jenis aplikasi Web Application.
  11. Masukkan nama ID klien.
  12. Kosongkan Authorized JavaScript origins.
  13. Di bagian URI pengalihan yang sah, tekan tombol + Tambahkan URI. Masukkan "https://www.google.com" sebagai URI pengalihan Anda.
  14. Klik tombol Buat.
  15. Konsol Google akan menampilkan pesan bahwa client ID Anda telah dibuat. Klik link Download JSON untuk mendownload client ID dan client secret, atau catat nilainya. Anda tidak akan dapat memulihkan rahasia klien Anda setelahnya.
  16. Klik Oke. Anda akan kembali ke halaman "OAuth 2.0 Client IDs".
  17. ID klien Anda akan ditambahkan ke project Anda. Klik URL ID klien untuk melihat detailnya.

Menambahkan pengguna pengujian

  1. Di panel kiri, pilih Audiens. Anda akan melihat "Status publikasi" disetel ke Pengujian, dan "Jenis pengguna" disetel ke Eksternal.
  2. Di bagian "Pengguna pengujian", klik tombol + Tambahkan pengguna. Masukkan alamat email pengguna yang datanya ingin Anda ambil.
  3. Klik tombol Simpan.

Tambahkan cakupan ke ID klien

  1. Di panel kiri, pilih Akses Data.
  2. Klik tombol Tambahkan atau hapus cakupan.
  3. Di kolom API, telusuri "Google Health API". Untuk codelab ini, kita menggunakan cakupan .../auth/googlehealth.activity_and_fitness.readonly
  4. Setelah memilih cakupan, tekan tombol Perbarui untuk kembali ke halaman Akses Data.
  5. Klik tombol Simpan.

Anda telah selesai menyiapkan client ID.

3. Membuat alur otorisasi

  1. Buka aplikasi VS Code di komputer Anda.
  2. Di layar Selamat Datang, pilih Buka.
  3. Pilih folder untuk membuat project ini, lalu tekan Open. Layar Anda akan terlihat seperti ini, yang menampilkan nama folder atau project Anda di Explorer.VSC
  4. Dari menu utama, pilih File -> New Text file.
  5. Simpan file untuk memberinya nama. Dari menu utama, pilih File -> Save As -> Codelab.http. Tindakan ini akan menempatkan file di project Anda. Ekstensi file harus berupa .http atau .rest. Untuk codelab ini, kita menggunakan .http.

Selama project ini, kita akan menggunakan beberapa nilai berkali-kali. Nilai tersebut adalah:

client_id

Nilai client ID dari konsol Google.

secret

Nilai rahasia klien dari konsol Google.

redirect_uri

Endpoint di aplikasi Anda yang memproses kode otorisasi. Untuk codelab ini, kita menggunakan https://www.google.com

access_token

Token akses yang dibuat untuk pengguna setelah alur izin selesai.

refresh_token

Token refresh yang dibuat untuk pengguna setelah alur izin selesai.

Tambahkan kode berikut yang menentukan variabel yang digunakan dengan project ini. File tersebut harus berada di bagian atas Codelab.http. Isi nilai untuk client_id dan secret.

### File Variables for the Codelab
@client_id =
@secret =
@redirect_uri = https://www.google.com
@accessToken={{user.response.body.access_token}}
@refreshToken={{user.response.body.refresh_token}}

URL otorisasi, yang digunakan untuk memulai alur izin, akan dikirim ke setiap pengguna yang datanya ingin Anda akses. Untuk membuat URL otorisasi, kita perlu mengetahui endpoint Google OAuth dan menggunakan parameter kueri untuk menentukan ID klien, cakupan yang ingin kita akses, dan ke mana pengguna akan dialihkan saat mereka menyetujui cakupan. Dokumentasi lengkap untuk membuat string otorisasi Google dapat ditemukan di dokumentasi.

Endpoint OAuth 2.0 Google ada di https://accounts.google.com/o/oauth2/v2/auth. Endpoint ini hanya dapat diakses melalui HTTPS. Koneksi HTTP biasa ditolak.

Server otorisasi Google mendukung banyak parameter string kueri untuk aplikasi server web guna menyesuaikan alur otorisasi. Kita akan menggunakan parameter kueri wajib berikut: client_id, redirect_uri, response_type, dan scope. Dokumentasi ini menyediakan daftar semua parameter kueri dan deskripsinya.

Nilai untuk parameter kueri adalah

client_id

Nilai client ID dari konsol Google

redirect_uri

Endpoint di aplikasi Anda yang memproses kode otorisasi. Untuk codelab, gunakan https://www.google.com

response_type

code (nilai yang didukung untuk aplikasi web)

scope

Cakupan berasal dari konsol Google dengan sintaksis https://www.googleapis.com diikuti dengan nama cakupan. Misalnya, https://www.googleapis.com/auth/googlehealth.activity_and_fitness.

Untuk meminta beberapa cakupan, sertakan semua cakupan dalam parameter cakupan, yang dipisahkan dengan spasi (misalnya, scope1 scope2 scope3). Jika merupakan bagian dari URL, spasi harus dienkode ke URL (misalnya, %20).

Setelah variabel, tulis URL otorisasi seperti yang ditunjukkan. Parameter yang ditentukan di bagian atas project tidak dapat digunakan dalam string otorisasi. Oleh karena itu, kita perlu menyertakan nilai untuk client_id dan redirect_uri. Ganti string client-id dengan client ID Anda.

### Google Health API Rest Client Example

### Authorization String
https://accounts.google.com/o/oauth2/v2/auth?client_id=client-id&redirect_uri=https://www.google.com&response_type=code&access_type=offline&scope=https://www.googleapis.com/auth/googlehealth.activity_and_fitness.readonly

Saat pengguna memberikan izin, Google akan memberikan kode otorisasi yang Anda tukarkan dengan token akses dengan memanggil endpoint token Google. Tambahkan definisi berikut untuk memanggil endpoint token ke Codelab.http di bawah string otorisasi. Anda akan mengganti authorization-code dengan kode otorisasi pada langkah berikutnya.

### AUTHORIZATION ENDPOINTS
######################################################################
# @name user
POST https://oauth2.googleapis.com/token
Content-Type: application/x-www-form-urlencoded

code=authorization-code&client_id={{clientId}}&client_secret={{secret}}&redirect_uri={{redirect_uri}}&grant_type=authorization_code

@name user merujuk pada pengguna saat ini yang datanya Anda akses.

4. Memberikan otorisasi akun dan mendapatkan token

Sekarang kita akan membahas alur otorisasi untuk mendapatkan token otorisasi.

String otorisasi di Codelab.http digunakan untuk memulai alur izin berbasis browser Google. Ekstensi Rest Client dapat menampilkan link Send Request untuk URL ini. Jangan gunakan Kirim Permintaan untuk URL tertentu ini. Sebagai gantinya, salin dan tempel ke browser Anda, atau gunakan Ctrl+Klik (Windows/Linux) atau Cmd+Klik (Mac) di VS Code untuk membukanya di browser default Anda.

https://accounts.google.com/o/oauth2/v2/auth?client_id=client-id&redirect_uri=https://www.google.com&response_type=code&access_type=offline&scope=https://www.googleapis.com/auth/googlehealth.activity_and_fitness.readonly
  1. Anda akan diminta untuk login ke Akun Google Anda. Anda harus login menggunakan salah satu akun pengguna uji coba yang Anda konfigurasi di bagian Tambahkan pengguna uji coba.
  2. Anda mungkin melihat pesan yang menyatakan bahwa aplikasi tidak diverifikasi. Hal ini karena aplikasi belum dipublikasikan. Tekan "Lanjutkan".

Screenshot yang menampilkan peringatan aplikasi yang tidak terverifikasi.

  1. Halaman izin mencantumkan cakupan yang diminta. Pengguna memiliki kesempatan untuk memilih cakupan mana pun yang ingin mereka bagikan ke aplikasi ini. Klik "Lanjutkan".

Setelah menyetujui untuk membagikan cakupan yang diminta, Anda akan dialihkan ke redirect_uri yang Anda tentukan (dalam codelab ini, https://www.google.com). Google menambahkan kode otorisasi dan parameter lainnya ke redirect_uri, sehingga URL di kolom URL browser Anda akan terlihat seperti ini:

https://www.google.com/?code=4/0Ab32j93oyGWqaXE112sP1IKmh3kV1fE4tcHIMXYJQYWgNEtAa_0-YsfkS9Ekj3Be89u3fw&scope=https://www.googleapis.com/auth/googlehealth.activity_and_fitness.readonly

Kode otorisasi adalah nilai alfanumerik antara "code=" dan "&scope". Dalam contoh di atas, nilainya adalah:

4/0Ab32j93oyGWqaXE112sP1IKmh3kV1fE4tcHIMXYJQYWgNEtAa_0-YsfkS9Ekj3Be89u3fw

Di aplikasi produksi, server Anda akan menguraikannya dari parameter URL. Untuk codelab ini, salin kode otorisasi dari URL di browser Anda.

Sekarang, tukarkan kode otorisasi ini dengan access_token dan refresh_token. Di Codelab.http, ganti authorization-code di isi permintaan POST /token dengan kode otorisasi yang Anda salin.

POST https://oauth2.googleapis.com/token
Content-Type: application/x-www-form-urlencoded

code=authorization-code&client_id={{client_id}}&client_secret={{secret}}&redirect_uri={{redirect_uri}}&grant_type=authorization_code

Klik link Kirim Permintaan tepat di atas baris POST https://oauth2.googleapis.com/token.

Responsnya akan terlihat seperti ini:

{
  "access_token": "ya29.a0ATi6K2uasci7FyyIClNLtQou6z...",
  "expires_in": 3599,
  "refresh_token": "1//05EuqYpEXjJCHCgYIA...",
  "scope": "https://www.googleapis.com/auth/googlehealth.activity_and_fitness",
  "token_type": "Bearer",
  "refresh_token_expires_in": 604799
}

Saat Anda menerima respons ini, Rest Client akan otomatis mengisi variabel @accessToken dan @refreshToken yang ditentukan di bagian atas Codelab.http untuk digunakan dalam permintaan berikutnya.

Tentang token refresh

Saat Anda menukar kode otorisasi, respons dapat menyertakan refresh_token selain access_token. access_token bersifat sementara (biasanya 1 jam). Saat access_token berakhir, Anda harus menggunakan refresh_token untuk mendapatkan access_token baru tanpa mengharuskan pengguna login atau memberikan izin lagi. Hal ini dimungkinkan karena kami menyertakan access_type=offline dalam permintaan otorisasi kami.

Jika Anda tidak menerima refresh_token dalam respons, hal ini mungkin karena Anda telah memberikan izin untuk aplikasi dan cakupan ini. Token refresh biasanya hanya dikeluarkan saat pertama kali pengguna memberikan izin untuk aplikasi Anda, atau saat prompt=consent ditambahkan ke URL otorisasi untuk memaksa layar izin muncul meskipun pada otorisasi berikutnya.

refresh_token memiliki masa berlaku yang lama, tetapi dapat berakhir atau menjadi tidak valid jika tidak digunakan selama 6 bulan, jika pengguna mencabut akses ke aplikasi Anda, atau karena alasan lain. Anda harus menyimpan refresh_token dengan aman untuk penggunaan di masa mendatang.

Untuk mengetahui detail selengkapnya, lihat Memperbarui token akses (akses offline).

5. Menambahkan data ke aplikasi seluler Fitbit

Untuk pengguna baru Fitbit, Anda mungkin tidak memiliki data di akun Fitbit Anda untuk dikueri. Kita akan menambahkan log latihan secara manual yang dapat kita kueri melalui salah satu endpoint. Untuk mencatat latihan fisik secara manual, ikuti langkah-langkah berikut:

  1. Buka aplikasi seluler Fitbit di perangkat Anda. Login ke akun Fitbit Anda jika perlu.
  2. Di pojok kanan bawah layar, ketuk tombol +.
  3. Di bagian "Log manual", ketuk Aktivitas
  4. Telusuri jenis latihan Berjalan dan pilih.
  5. Masukkan waktu mulai untuk hari ini.
  6. Ubah durasi menjadi 15 menit.
  7. Biarkan jarak 1,0 mil.
  8. Ketuk Tambahkan.
  9. Sinkronkan aplikasi seluler ke server Fitbit dengan menekan lama layar dan menggesernya ke bawah. Saat Anda melepaskan jari, Anda akan melihat sinkronisasi aplikasi seluler.
  10. Di bagian "Aktivitas", Anda akan melihat entri Jalan yang dicatat secara manual.Screenshot yang menampilkan aktivitas berjalan kaki.

6. Mengambil data menggunakan metode list

Untuk memanggil metode list, tambahkan kode berikut ke Codelab.http, tepat di bawah endpoint /token.

### users.dataTypes.dataPoints
#####################################################

### LIST exercise
GET https://health.googleapis.com/v4/users/me/dataTypes/exercise/dataPoints
Authorization: Bearer {{accessToken}}
Accept: application/json

Kode ini memanggil endpoint list untuk menampilkan langkah-langkah yang direkam oleh pengguna di akun Fitbit-nya. Jumlah langkah untuk setiap menit akan ditampilkan dalam respons, mirip dengan endpoint Aktivitas Intraday Fitbit Web API v1.

Untuk mengeksekusi panggilan, tekan link Send Request untuk endpoint GET. Respons Anda akan terlihat seperti ini:

{
  "dataPoints": [
    {
      "name": "users/2515055256096816351/dataTypes/exercise/dataPoints/8896720705097069096",
      "dataSource": {
        "recordingMethod": "MANUAL",
        "platform": "FITBIT"
      },
      "exercise": {
        "interval": {
          "startTime": "2026-02-23T13:10:00Z",
          "startUtcOffset": "-18000s",
          "endTime": "2026-02-23T13:25:00Z",
          "endUtcOffset": "-18000s"
        },
        "exerciseType": "WALKING",
        "metricsSummary": {
          "caloriesKcal": 16,
          "distanceMillimiters": 1609344,
          "steps": "2038",
          "averagePaceSecondsPerMeter": 0.55923407301360051,
          "activeZoneMinutes": "0"
        },
        "exerciseMetadata": {},
        "displayName": "Walk",
        "activeDuration": "900s",
        "exerciseEvents": [
          {
            "eventTime": "2026-02-23T13:10:00Z",
            "eventUtcOffset": "-18000s",
            "exerciseEventType": "START"
          },
          {
            "eventTime": "2026-02-23T13:25:00Z",
            "eventUtcOffset": "-18000s",
            "exerciseEventType": "STOP"
          }
        ],
        "updateTime": "2026-02-24T01:19:22.450466Z"
      }
    },
    {
      "name": "users/2515055256096816351/dataTypes/exercise/dataPoints/5870930690409355408",
      "dataSource": {
        "recordingMethod": "MANUAL",
        "platform": "FITBIT"
      },
      "exercise": {
        "interval": {
          "startTime": "2026-02-23T06:00:00Z",
          "startUtcOffset": "-18000s",
          "endTime": "2026-02-23T06:15:00Z",
          "endUtcOffset": "-18000s"
        },
        "exerciseType": "WALKING",
        "metricsSummary": {
          "caloriesKcal": 17,
          "distanceMillimiters": 1609344,
          "steps": "2038",
          "averagePaceSecondsPerMeter": 0.55923407301360051,
          "averageHeartRateBeatsPerMinute": "81",
          "activeZoneMinutes": "0",
          "heartRateZoneDurations": {
            "lightTime": "900s"
          }
        },
        "exerciseMetadata": {},
        "displayName": "Walk",
        "activeDuration": "900s",
        "exerciseEvents": [
          {
            "eventTime": "2026-02-23T06:00:00Z",
            "eventUtcOffset": "-18000s",
            "exerciseEventType": "START"
          },
          {
            "eventTime": "2026-02-23T06:15:00Z",
            "eventUtcOffset": "-18000s",
            "exerciseEventType": "STOP"
          }
        ],
        "updateTime": "2026-02-23T08:29:39.480437Z"
      }
    }
  ],
  "nextPageToken": ""
}

Banyak endpoint mendukung parameter kueri untuk pemfilteran atau penomoran halaman. Misalnya, latihan mendukung filter interval.civil_start_time. Tambahkan permintaan berikut ke Codelab.http untuk mencantumkan latihan dalam rentang waktu tertentu:

### LIST exercise >= civil start time
GET https://health.googleapis.com/v4/users/me/dataTypes/exercise/dataPoints?filter=exercise.interval.civil_start_time >= "2026-02-22T00:00:00"
Authorization: Bearer {{accessToken}}
Accept: application/json

7. Selamat

Selamat!

Anda telah menyelesaikan codelab dasar dan berhasil mempelajari cara menggunakan Visual Studio Code dan ekstensi Rest Client untuk menguji otorisasi OAuth 2.0 dan melakukan panggilan ke endpoint Google Health API. Dari sini, Anda dapat menambahkan endpoint tambahan seperti yang Anda lakukan di awal bagian Mengambil Data menggunakan metode List.

Semoga Anda menikmati pembuatan aplikasi yang terintegrasi dengan ekosistem Google Health API. Untuk mengetahui informasi selengkapnya, jelajahi endpoint Google Health API lainnya dalam dokumentasi referensi dan pelajari lebih lanjut Google OAuth 2.0 untuk Aplikasi Server Web.