Antrenman Nasıl Kaydedilir?

Bu dokümanda, Fitness REST API kullanarak antrenman kaydetme işlemi açıklanmaktadır.

1. Adım: Bir proje oluşturun

Google API Konsolu'nda bir proje oluşturmanız ve Fitness REST API, Başlarken bölümünde açıklanmıştır.

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

Uygulamanızın, Fitness API'ye gelen isteklerin kimliğini erişim jetonu kullanarak doğrulaması gerekir. Elde etmek için erişim jetonunu, uygulamanız istemciye özel kimlik bilgilerini ve bir erişim kapsamını içeriyorsa açıklandığı şekilde İstekleri Yetkilendirme bölümünde bulabilirsiniz.

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ı yalnızca bir kez sonraki oturumlarda yeniden kullanabilirsiniz.

Veri kaynağı oluşturmak için aşağıdaki parametrelerle kimliği doğrulanmış bir HTTP isteği gönderin:

HTTP yöntemi
YAYINLA
Kaynak

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

me kullanıcı kimliği, erişim jetonuyla 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, form koruma sağlayan nabız monitörünü temsil eden bir veri kaynağı oluşturuyor com.google.heart_rate.bpm türündeki veriler. Veri kaynağının kimliğini ve herhangi bir değer olabilir. Bu örnekteki veri kaynağı kimliği, makul bir adlandırma kuralına uyuyor yaygın bir şekilde ele alacağız. Veriler yalnızca bir uygulama tarafından oluşturuluyorsa cihaz bileşeni isteğe bağlıdır.

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

Veri kaynakları hakkında daha fazla bilgi için Users.dataSources kaynağı.

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, veriler için bir saat içinde üç nabız veri noktası içeren bir veri kümesi oluşturur kaynağı seçin.

İ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ğı.

Geçerli zaman damgaları oluşturma

Yukarıdaki örnekte yer alan zaman damgaları nanosaniye cinsindendir. 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, şimdi bir oturum ekleyerek ek meta verileri var. Oturumlar, kullanıcıların bir fitness aktivitesi yapmasına olanak tanır.

Bu antrenman için oturum oluşturmak için aşağıdaki parametrelerle 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
}

Başka uygulamalar tarafından kullanılabileceğinden, kullanıcıların okuyabileceği ve açıklayıcı bir oturum adı seçin oturumu özetlemeyi düşünebilirsiniz. Oturumların başlangıç ve bitiş zamanları milisaniye cinsinden belirtilir. (nanosaniye 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 kapsadığından Google Fit bu veri noktalarını bu oturumla ilişkilendirir.

Oturumlar hakkında daha fazla bilgi için Users.sessions kaynağı.

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 zaman segmentidir. Örneğin, bir kullanıcı bir saatlik koşu için, running (8) türünde bir aktivite segmenti oluşturabilirsiniz: tam bir saat. Bir kullanıcı 25 dakika koşu yaparsa 5 dakika ara verir, ardından yarım saat daha koşar. running türünde, art arda üç aktivite segmenti oluşturabilirsiniz. Sırasıyla unknown ve running.

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 örnek, aynı zaman aralıklarında üç segment (koşu, dinlenme ve koşu) oluşturur bir aktivite segmenti oluşturduğunuzu varsayarsak nabız ölçümleri veri kaynağı ve veri kaynağı kimliği "raw:com.google.activity.segment:1234567890:Example Fit:example-fit-hrm-1:123456" ise:

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ı, özel olarak oluşturulmuş bir veri kaynağına eklenir izin verdi. 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 antrenman yine de devam eder. 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ı bilmek önemlidir: hareketsiz olabilir, 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 yapılan 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.