Cara Merekam Latihan Fisik

Dokumen ini menjelaskan cara merekam olahraga menggunakan Fitness REST API.

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: Mengautentikasi aplikasi

Aplikasi Anda perlu mengautentikasi permintaan ke Fitness API menggunakan token akses. Untuk mendapatkan token akses, aplikasi Anda mencakup kredensial khusus klien dan ruang lingkup akses, seperti yang dijelaskan di Memberi Otorisasi Permintaan.

Langkah 3: Buat sumber data

Sumber data mewakili sumber data sensor jenis tertentu. Semua data yang disisipkan ke penyimpanan kebugaran harus dikaitkan dengan sumber data. Anda dapat membuat sumber data sekali dan menggunakannya kembali untuk sesi berikutnya.

Untuk membuat sumber data, kirim permintaan HTTP yang diautentikasi dengan parameter berikut:

Metode HTTP
SESUDAH
Resource

https://www.googleapis.com/fitness/v1/users/me/dataSources

ID pengguna me mengacu pada pengguna yang token aksesnya mengizinkan permintaan.

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 memberikan data kebugaran jenis data com.google.heart_rate.bpm. Anda harus menentukan ID sumber data, dan ini dapat berupa nilai apa pun. ID sumber data dalam contoh ini mengikuti konvensi penamaan yang wajar yang dapat Anda adopsi. Komponen perangkat bersifat opsional jika data hanya dihasilkan oleh aplikasi.

Jika permintaan berhasil, responsnya adalah kode status 200 OK.

Untuk informasi selengkapnya tentang sumber data, lihat referensi API untuk Referensi Users.dataSources.

Langkah 4: Tambahkan titik data

Anda menggunakan {i>dataset<i} untuk menyisipkan titik data di penyimpanan kebugaran. {i>Dataset<i} merupakan kumpulan data titik dari satu sumber data yang dibatasi oleh waktu.

Untuk membuat set data dan menambahkan titik, kirim permintaan HTTP yang diautentikasi dengan parameter:

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-1411057556000000000

URL 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 {i>dataset<i} berisi tiga titik data detak jantung dalam waktu satu jam untuk data tersebut pada langkah sebelumnya.

Jika permintaan berhasil, responsnya adalah kode status 200 OK.

Untuk informasi selengkapnya tentang set data, lihat referensi API untuk Referensi Users.dataSources.datasets.

Buat stempel waktu yang valid

Stempel waktu dalam contoh di atas 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 memasukkan sesi untuk {i>metadata<i} tambahan untuk latihan fisik ini. Sesi mewakili interval waktu saat pengguna melakukan aktivitas kebugaran.

Untuk membuat sesi untuk latihan fisik ini, kirim permintaan HTTP yang diautentikasi dengan parameter ini:

Metode HTTP
PUT
Resource

https://www.googleapis.com/fitness/v1/users/me/sessions/sessionId

sessionId bersifat arbitrer dan harus unik untuk semua sesi terkait dengan pengguna yang diotentikasi.

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 dapat digunakan oleh aplikasi lain untuk meringkas sesi. Waktu mulai dan berakhir sesi dalam milidetik (bukan nanodetik). Gunakan nama paket yang sama untuk sesi dan sumber data Anda; hal ini akan membuat lebih konsisten dan memastikan atribusi data akan tertaut kembali ke aplikasi Anda.

Interval waktu yang ditentukan dalam sesi ini mencakup data detak jantung yang dimasukkan sebelumnya, jadi Google Fit mengaitkan titik data tersebut dengan sesi ini.

Untuk informasi selengkapnya tentang sesi, lihat referensi API untuk Referensi 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 menggunakan untuk lari satu jam, Anda dapat membuat segmen aktivitas jenis running (8) untuk dalam satu jam. Jika pengguna berlari selama 25 menit, istirahat selama 5 menit, lalu berlari selama setengah jam, 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 aktivitas pertama, buat sumber data segmen aktivitas, lalu buat set data dan tambahkan segmen aktivitas yang mengarah ke data itu.

Contoh berikut membuat tiga segmen (berlari, istirahat, dan berlari) dalam jangka waktu yang sama sebagai pembacaan detak jantung, dengan asumsi Anda sudah membuat segmen aktivitas sumber data dan ID sumber data 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 secara khusus untuk menangani segmen aktivitas. Anda dapat membuat sumber data baru untuk setiap kumpulan segmen, tetapi Anda harus menggunakan kembali satu yang didedikasikan untuk jenis sesi tertentu, seperti berlari.

Sesi menentukan jenis aktivitas, yang harus cocok dengan keseluruhan aktivitas yang melibatkan pengguna. Meskipun pengguna beristirahat saat berlari, latihan fisik secara keseluruhan tetap berjalan. Secara umum, jenis aktivitas untuk sesi akan cocok dengan jenis segmen aktivitas yang 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, minum air, dan sebagainya. Jika Anda mengetahui bahwa pengguna tidak berpindah, Anda dapat menggunakan still (3).

Untuk mengetahui daftar mendetail tentang jenis aktivitas, lihat Jenis Aktivitas.

Ringkasan

Dalam tutorial ini, Anda membuat sumber data untuk jenis data dan segmen aktivitas; Anda sisipkan {i>data point<i} ke dalam toko kebugaran; Anda membuat segmen aktivitas untuk mewakili berbagai aktivitas yang terjadi selama latihan fisik; dan Anda memasukkan sesi yang mencakup seluruh latihan fisik.

Google Fit mengaitkan data yang Anda masukkan dan data lain yang tersedia untuk interval waktu tersebut dengan sesi yang mewakili latihan fisik pengguna.