1. Pengantar
OAuth 2.0 Playground adalah alat berbasis web yang membantu Anda menguji alur OAuth 2.0 Google tanpa menulis kode apa pun. Codelab ini akan menunjukkan cara menyiapkan project Google Cloud, mendapatkan kredensial, memulai alur otorisasi dengan OAuth 2.0 Playground, dan melakukan panggilan pertama ke salah satu endpoint Google Health API.
Yang akan Anda pelajari
- Cara menyiapkan client ID dalam konsol Google Cloud.
- Cara melewati alur otorisasi Google OAuth 2.0 untuk mendapatkan token akses dan token refresh menggunakan OAuth 2.0 Playground.
- Cara melakukan panggilan ke endpoint Google Health API menggunakan OAuth 2.0 Playground.
Yang Anda butuhkan
- Akun Google
- Aplikasi seluler Fitbit
- OAuth 2.0 Playground
Untuk menyiapkan aplikasi seluler Fitbit:
- Di Apple App Store atau Google Play Store, telusuri aplikasi seluler Fitbit dan download.
- Pilih ikon aplikasi.
- Klik Sign in With Google.
- Pilih Akun Google Anda, lalu tekan tombol Lanjutkan.
2. Menyiapkan project Google Cloud
Anda akan menggunakan konsol Google Cloud untuk membuat client ID dan mengaktifkan penggunaan Google Health API.
- Login ke konsol Google Cloud.
- Untuk membuat project baru:
- Klik Pilih project dari pemilih project.
- Di pojok kanan atas, pilih Project Baru.
- Masukkan Nama project Anda.
- Masukkan Lokasi Anda (misalnya, "Tidak ada organisasi").
- Klik tombol Buat.
- Pilih project Anda.
Mengaktifkan Google Health API
- Di sudut kiri atas, klik ikon menu:

- Pilih APIs & Services > Library.
- Telusuri "Google Health API" dan aktifkan.
Menyiapkan kredensial OAuth Anda
Jika Anda tidak berada di Konsol Google Cloud, buka Konsol Google Cloud.
- Di sudut kiri atas, klik ikon menu:

- Pilih API & Layanan > Kredensial.
- Di bagian tengah atas, pilih + Create Credentials > OAuth client ID.
- Klik tombol Konfigurasi layar izin. Jika pesan "Google Auth Platform not configured yet" muncul, klik tombol Get Started.
- Di bagian 1:
- Masukkan Nama aplikasi.
- Masukkan Email dukungan pengguna.
- Klik tombol Berikutnya.
- Di bagian 2:
- Pilih Eksternal.
- Klik tombol Berikutnya.
- Di bagian 3:
- Masukkan alamat email Anda di kolom Informasi Kontak.
- Klik tombol Berikutnya.
- Di bagian 4:
- Klik kotak centang untuk menyetujui Kebijakan Data Pengguna Layanan API Google.
- Klik tombol Buat.
- Buka API & Layanan > Kredensial, lalu pilih + Buat Kredensial > ID klien OAuth.
- Pilih jenis aplikasi Web Application.
- Masukkan nama ID klien.
- Kosongkan Authorized JavaScript origins.
- Di bagian Authorized redirect URIs, klik + Add URI, lalu tambahkan URI berikut:
https://www.google.comhttps://developers.google.com/oauthplayground
- Klik tombol Buat.
- 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.
- Klik Oke. Anda akan kembali ke halaman "OAuth 2.0 Client IDs".
- ID klien Anda akan ditambahkan ke project Anda. Klik URL ID klien untuk melihat detailnya.
Menambahkan pengguna pengujian
- Di panel kiri, pilih Audiens. Anda akan melihat "Status publikasi" ditetapkan ke Pengujian, dan "Jenis pengguna" ditetapkan ke Eksternal.
- Di bagian "Pengguna pengujian", klik tombol + Tambahkan pengguna. Masukkan alamat email pengguna yang datanya ingin Anda ambil.
- Klik tombol Simpan.
Tambahkan cakupan ke ID klien
- Di panel kiri, pilih Akses Data.
- Klik tombol Tambahkan atau hapus cakupan.
- Di kolom API, telusuri "Google Health API". Untuk codelab ini, kita menggunakan cakupan
.../auth/googlehealth.activity_and_fitness.readonly - Setelah memilih cakupan, tekan tombol Perbarui untuk kembali ke halaman Akses Data.
- Klik tombol Simpan.
Anda telah selesai menyiapkan client ID.
3. 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 merekam latihan fisik secara manual, ikuti langkah-langkah berikut:
- Buka aplikasi seluler Fitbit di perangkat Anda. Login ke akun Fitbit Anda jika perlu.
- Di pojok kanan bawah layar, ketuk tombol +.
- Di bagian "Catat secara manual", ketuk Aktivitas
- Cari jenis latihan Berjalan dan pilih.
- Masukkan waktu mulai untuk hari ini.
- Ubah durasi menjadi 15 menit.
- Biarkan jarak 1,0 mil.
- Ketuk Tambahkan.
- Sinkronkan aplikasi seluler ke server Fitbit dengan menekan lama layar dan menggesernya ke bawah. Saat Anda melepaskan jari, Anda akan melihat sinkronisasi aplikasi seluler.
- Di bagian "Aktivitas", Anda akan melihat entri Jalan Kaki yang dicatat secara manual.

4. Melakukan otorisasi di OAuth 2.0 Playground
Buka OAuth 2.0 Playground.
Google Health API mengharuskan Anda menggunakan kredensial OAuth Anda sendiri dengan Playground.
- Klik ikon roda gigi Konfigurasi OAuth 2.0 di kanan atas.
- Pilih Gunakan kredensial OAuth Anda.
- Masukkan Client ID OAuth dan Rahasia klien OAuth yang Anda peroleh selama penyiapan project Google Cloud.
Antarmuka Playground dibagi menjadi tiga langkah utama yang akan kita ikuti:
- Pilih & otorisasi API
- Menukar kode otorisasi dengan token
- Mengirim permintaan ke API
Pilih & otorisasi API
Di sinilah Anda memilih cakupan API yang ingin Anda minta.
- Di Langkah 1, temukan Google Health API v4 dalam daftar API dan perluas.
- Pilih
https://www.googleapis.com/auth/googlehealth.activity_and_fitness.readonly. Jika cakupan yang Anda butuhkan tidak ditampilkan dalam daftar, Anda dapat memasukkannya secara manual di kolom "Masukkan cakupan Anda sendiri". - Klik Authorize APIs.
- Permintaan dikirim ke endpoint otorisasi OAuth 2.0 Google, cakupan yang dipilih disertakan dalam permintaan, lalu Anda akan dialihkan ke layar izin Akun Google.
- Login dengan akun pengguna pengujian yang Anda konfigurasi di bagian Siapkan project Google Cloud (jika belum login).
- Tinjau izin yang diminta, lalu klik Lanjutkan untuk memberikan akses.
Saat Anda memberikan izin, Google akan mengalihkan Anda kembali ke Playground dan memberikan kode otorisasi ke alat, yang akan digunakan pada langkah berikutnya.
Panel Permintaan / Respons di sebelah kanan menampilkan alur pengalihan HTTP lengkap.
Respons dari permintaan otorisasi awal adalah pengalihan 302 Found:
HTTP/1.1 302 Found
Location: https://accounts.google.com/o/oauth2/v2/auth?redirect_uri=https%3A%2F%2Fdevelopers.google.com%2Foauthplayground&prompt=consent&response_type=code&client_id=your_client_id&scope=https%3A%2F%2Fwww.googleapis.com%2Fauth%2Fgooglehealth.activity_and_fitness.readonly&access_type=offline
Permintaan yang dihasilkan dan dialihkan kembali ke Playground berisi kode otorisasi:
GET /oauthplayground/?iss=https://accounts.google.com&code=authorization_code&scope=https://www.googleapis.com/auth/googlehealth.activity_and_fitness.readonly HTTP/1.1
Host: developers.google.com
Kode otorisasi adalah nilai alfanumerik yang diwakili oleh authorization_code antara code= dan &scope di URL permintaan GET. Dalam contoh ini, nilainya mirip dengan: 4/0AbPOj...
Menukar kode otorisasi dengan token
Pada langkah ini, kode ditukarkan dengan token yang memungkinkan Anda membuat permintaan API.
Setelah menyelesaikan Select & authorize APIs, Playground akan otomatis mengisi kolom kode otorisasi. Untuk menukarkannya dengan token:
- Klik tombol Exchange authorization code for tokens di Langkah 2.
- access_token dan refresh_token akan muncul di panel Request/Response di sebelah kanan.
Anda akan melihat respons yang mirip dengan:
{
"access_token": "ya29.a0AFH6S....",
"refresh_token_expires_in": 604799,
"expires_in": 3599,
"token_type": "Bearer",
"scope": "https://www.googleapis.com/auth/googlehealth.activity_and_fitness.readonly",
"refresh_token": "1/og..."
}
Tentang token refresh
Saat Anda menukar kode otorisasi, respons dapat menyertakan refresh_token selain access_token. access_token memiliki masa berlaku singkat (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 pengguna pertama kali 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.
Tentang memperbarui cakupan
Jika aplikasi Anda nantinya memerlukan akses ke cakupan Google Health API tambahan, Anda harus meminta pengguna untuk memberi otorisasi ulang aplikasi Anda dan meminta kumpulan cakupan lengkap (yang sudah ada dan yang baru).
Untuk memperbarui cakupan dalam permintaan otorisasi aplikasi Anda:
- Identifikasi daftar lengkap Cakupan yang dibutuhkan aplikasi Anda.
- Ubah parameter
scopedi URL otorisasi untuk menyertakan daftar nilai cakupan yang diperbarui dan dipisahkan dengan spasi. - Tambahkan
prompt=consentke parameter URI autentikasi Anda. Jikaprompt=consentdisertakan, layar izin akan ditampilkan setiap kali aplikasi Anda meminta otorisasi cakupan, sehingga meminta pengguna untuk menyetujui daftar yang diperbarui.
Setelah pengguna menyelesaikan pemberian izin, Anda akan menerima kode otorisasi baru yang dapat ditukarkan dengan token yang mencakup seluruh set cakupan.
5. Mengirim permintaan ke API
Sekarang Anda dapat menggunakan token akses untuk membuat permintaan ke Google Health API. Di Langkah 3 di Playground, konfigurasikan permintaan HTTP Anda dengan menentukan Request URI, HTTP Method, header, dan isi permintaan.
- Setel HTTP Method ke GET.
- Tetapkan Request URI ke
https://health.googleapis.com/v4/users/me/dataTypes/exercise/dataPoints. - Klik Send the request.
Responsnya 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, untuk mencantumkan latihan dalam rentang waktu tertentu, ubah URI Permintaan untuk menyertakan parameter filter:
https://health.googleapis.com/v4/users/me/dataTypes/exercise/dataPoints?filter=exercise.interval.civil_start_time >= "2026-02-22T00:00:00"
Klik Kirim permintaan lagi untuk melihat hasil yang difilter.
6. Selamat
Selamat!
Anda telah menyelesaikan codelab dasar dan berhasil mempelajari cara menggunakan OAuth2 Playground untuk menguji otorisasi OAuth 2.0 dan melakukan panggilan ke endpoint Google Health API.
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.