Antrenman Nasıl Kaydedilir?

Bu belgede, Fitness REST API'yi kullanarak bir antrenmanın nasıl kaydedileceği açıklanmaktadır.

1. Adım: Proje oluşturun

Google API Konsolu'nda bir proje oluşturmanız ve Başlangıç bölümünde açıklandığı gibi Fitness REST API'ye erişimi etkinleştirmeniz gerekir.

2. Adım: Uygulamanızın kimliğini doğrulayın

Uygulamanızın, Fitness API'ye gönderilen isteklerin kimliğini bir erişim jetonu kullanarak doğrulaması gerekir. Erişim jetonunu almak için uygulamanız, İstekleri Yetkilendirme bölümünde açıklandığı gibi istemciye özgü kimlik bilgilerini ve bir erişim kapsamını içerir.

3. Adım: Veri kaynağı oluşturun

Veri kaynağı, belirli bir türdeki sensör verilerinin kaynağını temsil eder. Tüm veriler şuraya eklendi: fitness mağazası bir veri kaynağıyla ilişkilendirilmiş olmalıdır. Veri kaynaklarını bir kez oluşturup gelecekteki oturumlarda yeniden kullanabilirsiniz.

Veri kaynağı oluşturmak için aşağıdaki parametrelerle kimlik doğrulaması yapılmış bir HTTP isteği gönderin:

HTTP yöntemi
POST
Kaynak

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

me kullanıcı kimliği, erişim jetonu isteği yetkilendiren kullanıcıyı ifade eder.

İstek içeriği
{
"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"
}

Bu istek, com.google.heart_rate.bpm türündeki fitness verilerini sağlayan bir nabız monitörünü temsil eden bir veri kaynağı oluşturur. Veri kaynağının kimliğini belirtmeniz gerekir. Bu kimlik herhangi bir değer olabilir. Bu örnekteki veri kaynağı kimliği, benimseyebileceğiniz makul bir adlandırma kuralını izler. Veriler yalnızca bir uygulama tarafından oluşturuluyorsa cihaz bileşeni isteğe bağlıdır.

İstek başarılıysa yanıt 200 OK durum kodudur.

Veri kaynakları hakkında daha fazla bilgi için Users.dataSources kaynağının API referansına bakın.

4. Adım: Veri noktaları ekleyin

Fitness mağazasına veri noktaları eklemek için veri kümelerini kullanırsınız. Veri kümesi, bir veri kümesidir tek bir veri kaynağından sınırlanan noktalardır.

Veri kümesi oluşturmak ve bu veri kümesine nokta eklemek için aşağıdakilerle kimliği doğrulanmış bir HTTP isteği gönderin parametre:

HTTP yöntemi
YAMA
Kaynak

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, veri kaynağı kimliğini ve veri kümesinin başlangıç ve bitiş zamanlarını nanosaniye cinsinden içerir.

İstek içeriği
{
"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
    }
  ]
}
]
}

Bu istek, önceki adımdaki veri kaynağı için bir saat içinde üç nabız verisi noktası içeren bir veri kümesi oluşturur.

İstek başarılı olursa yanıt bir 200 OK durum kodu olur.

Veri kümeleri hakkında daha fazla bilgi için Users.dataSources.datasets kaynağının API referansına bakın.

Geçerli zaman damgalarını oluşturma

Yukarıdaki örnekteki zaman damgalarının birimi nanosaniyedir. Geçerli zaman damgaları oluşturmak için aşağıdakileri kullanabilirsiniz: aşağıdaki Python komut dosyasını kullanın:

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

5. adım: Oturum oluşturun

Fitness mağazasına veri eklediğinize göre, bu antrenman için ek meta veriler sağlamak üzere bir oturum ekleyebilirsiniz. Oturumlar, kullanıcıların bir fitness aktivitesi yapmasına izin verir.

Bu antrenman için oturum oluşturmak üzere aşağıdaki parametreleri içeren kimliği doğrulanmış bir HTTP isteği gönderin:

HTTP yöntemi
KUT
Kaynak

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

sessionId rastgele bir değerdir ve tüm oturumlar için benzersiz olmalıdır kimlik doğrulaması yapılmış kullanıcıyla ilişkilidir.

İstek içeriği
{
"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
}

Oturum adı, diğer uygulamalar tarafından oturumu özetlemek için kullanılabileceğinden, kullanıcıların okuyabileceği ve açıklayıcı bir ad seçin. Oturumların başlangıç ve bitiş zamanları milisaniye cinsindendir (nanosaniye cinsinden değil). Oturumlarınız ve veri kaynaklarınız için aynı paket adını kullanın, bu durum ve veri ilişkilendirmesinin uygulamanızla yeniden bağlanmasını sağlar.

Bu oturumda belirtilen zaman aralığı, daha önce eklenen nabız verilerini kapsar. Bu nedenle Google Fit, bu veri noktalarını bu oturumla ilişkilendirir.

Oturumlar hakkında daha fazla bilgi için Users.sessions kaynağının API referansına bakın.

6. adım: Etkinlik segmentleri oluşturun

Etkinlik segmentleri, bir oturumdaki farklı etkinlikleri temsil etmenize yardımcı olur. Etkinlik segmenti, tek bir etkinliği kapsayan bir zaman segmentidir. Örneğin, bir kullanıcı bir saat boyunca koşuya çıkarsa bir saat boyunca running (8) türü bir etkinlik segmenti oluşturabilirsiniz. Bir kullanıcı 25 dakika koşar, 5 dakika ara verir ve yarım saat daha koşarsa sırasıyla running, unknown ve running türünde üç ardışık aktivite segmenti oluşturabilirsiniz.

Etkinlik segmenti oluşturma işlemi, başka herhangi bir veri noktası ekleme işlemiyle aynıdır. Etkinlik oluşturmak için önce bir etkinlik segmenti veri kaynağı oluşturun, ardından veri kümesi oluşturun ve veri noktası da budur.

Aşağıdaki örnekte, bir etkinlik segmenti veri kaynağı oluşturduğunuz ve veri kaynağı kimliğinin "raw:com.google.activity.segment:1234567890:Example Fit:example-fit-hrm-1:123456" olduğu varsayılarak, nabız ölçümleriyle aynı zaman aralıklarında üç segment (koşu, dinlenme ve koşu) oluşturulur:

HTTP yöntemi
YAMA
Kaynak
https://www.googleapis.com/fitness/v1/users/me/dataSources/
raw:com.google.activity.segment:1234567890/datasets/1411053997000000000-1411057556000000000
İstek içeriği
{
"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
    }
  ]
}
]
}

Bu etkinlik segmenti veri noktaları, etkinlik segmentlerini işlemek için özel olarak oluşturulmuş bir veri kaynağına eklenir. Her segment grubu için yeni bir veri kaynağı oluşturabilirsiniz. özel bir oturum türünden (ör. koşu) yararlanmanız gerekir.

Oturumlar, kullanıcının etkileşimde bulunduğu genel etkinlikle eşleşmesi gereken bir etkinlik türü belirtir. Kullanıcı koşarken ara verse bile genel egzersiz yine de koşu olarak kabul edilir. Genel olarak oturumdaki etkinlik türü, baskın etkinlik segmenti türüyle eşleşecek.

Kullanıcının dinlenmede olduğunu belirtmek için unknown (4) etkinlik türünü kullanın. Aksi takdirde, kullanıcının ne yaptığını bilmesini sağlayın: hareketsiz olabilir veya esneyebilir, su içiyor olabilir vb. Şu durumda: kullanıcının hareket etmediğini biliyorsanız still (3) değerini kullanabilirsiniz.

Etkinlik türlerinin ayrıntılı listesi için Etkinlik Türleri bölümüne bakın.

Özet

Bu eğiticide, veri türleri ve etkinlik segmentleri için veri kaynakları oluşturdunuz. sen ekledin ve bunları fitness mağazasına aktarmak; farklı müşterileri temsil eden etkinlik segmentleri antrenman sırasında gerçekleşen aktiviteler; ve dönüşüm hunisinin tamamını kapsayan

Google Fit, eklediğiniz verileri ve bu zaman aralığı için kullanılabilir olan diğer verileri ilişkilendirir kullanıcının antrenmanını temsil eden bir oturumla gösterilir.