Dokumen ini menjelaskan cara merekam olahraga menggunakan REST API Kebugaran.
Langkah 1: Siapkan project
Anda perlu menyiapkan project di Konsol API Google dan mengaktifkan akses ke Fitness REST API, seperti yang dijelaskan dalam Memulai.
Langkah 2: Autentikasi aplikasi
Aplikasi Anda perlu mengautentikasi permintaan ke Fitness API menggunakan token akses. Untuk mendapatkan token akses, aplikasi Anda menyertakan kredensial khusus klien dan cakupan akses, seperti yang dijelaskan dalam Permintaan Mengizinkan.
Langkah 3: Membuat sumber data
Sumber data mewakili sumber data sensor dari jenis tertentu. Semua data yang dimasukkan ke dalam penyimpanan kebugaran harus dikaitkan dengan sumber data. Anda dapat membuat sumber data sekali dan menggunakannya kembali untuk sesi selanjutnya.
Untuk membuat sumber data, kirim permintaan HTTP yang diautentikasi dengan parameter ini:
- Metode HTTP
- POST
- Resource
https://www.googleapis.com/fitness/v1/users/me/dataSources
ID pengguna
me
merujuk ke pengguna yang token aksesnya mengizinkan permintaan tersebut.- Isi permintaan
{ "name": "example-fit-heart-rate", "dataStreamId": "raw:com.google.heart_rate.bpm:1234567890:Example Fit:example-fit-hrm-1:123456", "dataType": { "field": [{ "name": "bpm", "format": "floatPoint" }], "name": "com.google.heart_rate.bpm" }, "application": { "packageName": "com.example.fit.someapp", "version": "1.0" }, "device": { "model": "example-fit-hrm-1", "version": "1", "type": "watch", "uid": "123456", "manufacturer":"Example Fit" }, "type": "raw" }
Permintaan ini membuat sumber data yang mewakili pemantau detak jantung yang menyediakan data
kebugaran jenis com.google.heart_rate.bpm
. Anda harus menentukan ID sumber data, dan ID ini dapat berupa nilai apa pun. ID sumber data dalam contoh ini mengikuti konvensi penamaan yang wajar yang dapat Anda gunakan. Komponen perangkat bersifat opsional jika data hanya dibuat oleh aplikasi.
Jika permintaan berhasil, responsnya adalah kode status 200 OK
.
Untuk mengetahui informasi selengkapnya tentang sumber data, lihat referensi API untuk
resource Users.dataSources
.
Langkah 4: Tambahkan titik data
Anda menggunakan {i>dataset<i} untuk menyisipkan titik data di penyimpanan kebugaran. {i>Dataset<i} adalah kumpulan titik data dari satu sumber data yang dibatasi waktu.
Untuk membuat set data dan menambahkan titik ke set data tersebut, kirim permintaan HTTP yang diautentikasi dengan parameter berikut:
- Metode HTTP
- PATCH
- Resource
https://www.googleapis.com/fitness/v1/users/me/dataSources/
raw:com.google.heart_rate.bpm:1234567890:Example%20Fit:example-fit-hrm-1:123456/datasets/1411053997000000000-1411057556000000000URL tersebut mencakup ID sumber data serta waktu mulai dan berakhir set data dalam nanodetik.
- Isi permintaan
{ "minStartTimeNs": 1411053997000000000, "maxEndTimeNs": 1411057556000000000, "dataSourceId": "raw:com.google.heart_rate.bpm:1234567890:Example Fit:example-fit-hrm-1:123456", "point": [ { "startTimeNanos": 1411053997000000000, "endTimeNanos": 1411053997000000000, "dataTypeName": "com.google.heart_rate.bpm", "value": [ { "fpVal": 78.8 } ] }, { "startTimeNanos": 1411055000000000000, "endTimeNanos": 1411055000000000000, "dataTypeName": "com.google.heart_rate.bpm", "value": [ { "fpVal": 89.1 } ] }, { "startTimeNanos": 1411057556000000000, "endTimeNanos": 1411057556000000000, "dataTypeName": "com.google.heart_rate.bpm", "value": [ { "fpVal": 62.45 } ] } ] }
Permintaan ini membuat set data dengan tiga titik data detak jantung dalam waktu satu jam untuk sumber data di langkah sebelumnya.
Jika permintaan berhasil, responsnya adalah kode status 200 OK
.
Untuk mengetahui informasi selengkapnya tentang set data, lihat referensi API untuk resource
Users.dataSources.datasets
.
Buat stempel waktu yang valid
Stempel waktu pada contoh di atas adalah dalam nanodetik. Untuk membuat stempel waktu yang valid, Anda dapat menggunakan skrip Python berikut:
from datetime import datetime, timedelta import calendar def date_to_nano(ts): """ Takes a datetime object and returns POSIX UTC in nanoseconds """ return calendar.timegm(ts.utctimetuple()) * int(1e9) if __name__ == '__main__': print 'Current time is %d' % date_to_nano(datetime.now()) print 'Time 1 hour ago was %d' % date_to_nano(datetime.now() + timedelta(hours=-1))
Langkah 5: Buat sesi
Setelah memasukkan data ke penyimpanan kebugaran, Anda dapat menyisipkan sesi untuk memberikan metadata tambahan untuk olahraga ini. Sesi mewakili interval waktu saat pengguna melakukan aktivitas kebugaran.
Untuk membuat sesi latihan fisik ini, kirim permintaan HTTP yang diautentikasi dengan parameter berikut:
- Metode HTTP
- PUT
- Resource
https://www.googleapis.com/fitness/v1/users/me/sessions/sessionId
sessionId bersifat arbitrer dan harus unik untuk semua sesi yang terkait dengan pengguna yang diautentikasi.
- Isi permintaan
{ "id": "example-fit-1411053997", "name": "Example Fit Run on Sunday Afternoon", "description": "Example Fit Running Session", "startTimeMillis": 1411053997000, "endTimeMillis": 1411057556000, "application": { "name": "Foo Example App", "version": "1.0" }, "activityType": 8 }
Pilih nama sesi yang dapat dibaca manusia dan deskriptif, karena mungkin digunakan oleh aplikasi lain untuk meringkas sesi. Waktu mulai dan berakhir untuk sesi dalam milidetik (bukan nanodetik). Gunakan nama paket yang sama untuk sesi dan sumber data; hal ini akan membuat data lebih konsisten dan memastikan atribusi data akan ditautkan kembali ke aplikasi Anda.
Interval waktu yang ditentukan dalam sesi ini mencakup data detak jantung yang disisipkan sebelumnya, sehingga Google Fit mengaitkan titik data tersebut dengan sesi ini.
Untuk mengetahui informasi selengkapnya tentang sesi, lihat referensi API untuk resource
Users.sessions
.
Langkah 6: Buat segmen aktivitas
Segmen aktivitas membantu Anda mewakili berbagai aktivitas dalam sebuah sesi.
Segmen aktivitas adalah segmen waktu yang mencakup satu aktivitas. Misalnya, jika pengguna berlari selama satu jam, Anda dapat membuat segmen aktivitas jenis running
(8) selama satu jam penuh. Jika pengguna berlari selama 25 menit, beristirahat selama 5 menit, lalu berlari selama setengah
jam lagi, Anda dapat membuat tiga segmen aktivitas berturut-turut dari jenis running
,
unknown
, dan running
.
Membuat segmen aktivitas sama dengan menambahkan titik data lainnya. Untuk membuat segmen aktivitas, pertama-tama buat sumber data segmen aktivitas, lalu buat set data dan tambahkan titik data segmen aktivitas ke sumber data tersebut.
Contoh berikut membuat tiga segmen (berlari, istirahat, dan berlari) dalam jangka waktu yang sama dengan pembacaan detak jantung, dengan asumsi Anda telah membuat sumber data segmen aktivitas dan ID sumber datanya adalah "raw:com.google.activity.segment:1234567890:Example Fit:example-fit-hrm-1:123456":
- Metode HTTP
- PATCH
- Resource
https://www.googleapis.com/fitness/v1/users/me/dataSources/
raw:com.google.activity.segment:1234567890/datasets/1411053997000000000-1411057556000000000- Isi permintaan
{ "minStartTimeNs": 1411053997000000000, "maxEndTimeNs": 1411057556000000000, "dataSourceId": "raw:com.google.activity.segment:1234567890", "point": [ { "startTimeNanos": 1411053997000000000, "endTimeNanos": 1411053997000000000, "dataTypeName": "com.google.activity.segment", "value": [ { "intVal": 8 } ] }, { "startTimeNanos": 1411055000000000000, "endTimeNanos": 1411055000000000000, "dataTypeName": "com.google.activity.segment", "value": [ { "intVal": 4 } ] }, { "startTimeNanos": 1411057556000000000, "endTimeNanos": 1411057556000000000, "dataTypeName": "com.google.activity.segment", "value": [ { "intVal": 8 } ] } ] }
Titik data segmen aktivitas ini ditambahkan ke sumber data yang telah dibuat khusus untuk menangani segmen aktivitas. Anda dapat membuat sumber data baru untuk setiap kumpulan segmen, tetapi Anda harus menggunakan kembali satu sumber data yang dikhususkan untuk jenis sesi tertentu, seperti berlari.
Sesi menentukan jenis aktivitas, yang harus cocok dengan keseluruhan aktivitas yang dilakukan pengguna. Meskipun pengguna beristirahat saat berlari, latihan fisik secara keseluruhan tetaplah berlari. Secara umum, jenis aktivitas untuk sesi akan cocok dengan jenis segmen aktivitas dominan.
Gunakan jenis aktivitas tidak diketahui (4) untuk menunjukkan bahwa pengguna sedang beristirahat, karena Anda mungkin tidak tahu apa yang dilakukan pengguna: mereka mungkin diam, atau melakukan peregangan, air minum, dan sebagainya. Jika mengetahui bahwa pengguna tidak bergerak, Anda dapat menggunakan still (3).
Untuk daftar mendetail tentang jenis aktivitas, lihat Jenis Aktivitas.
Ringkasan
Dalam tutorial ini, Anda membuat sumber data untuk jenis data dan segmen aktivitas; Anda menyisipkan titik data ke dalam penyimpanan kebugaran; Anda membuat segmen aktivitas untuk mewakili berbagai aktivitas yang terjadi selama olahraga; dan Anda menyisipkan sesi yang mencakup seluruh olahraga.
Google Fit mengaitkan data yang Anda sisipkan dan data lain yang tersedia untuk interval waktu tersebut dengan sesi yang merepresentasikan olahraga pengguna.