كيفية تسجيل تمرين

ويصف هذا المستند كيفية تسجيل تمرين باستخدام واجهة برمجة تطبيقات REST Fitness.

الخطوة 1: إعداد مشروع

عليك إعداد مشروع في وحدة تحكّم Google API وتفعيل الوصول إلى Fitness REST API، كما هو موضّح في البدء.

الخطوة 2: مصادقة تطبيقك

يحتاج تطبيقك إلى مصادقة الطلبات المقدّمة إلى Fitness API باستخدام رمز الدخول. للحصول على رمز الدخول، يتضمن تطبيقك بيانات اعتماد خاصة بالعميل ونطاق وصول، كما هو موضّح في تفويض الطلبات.

الخطوة 3: إنشاء مصدر بيانات

يمثل مصدر البيانات مصدر بيانات جهاز الاستشعار من نوع معيّن. يجب ربط كل البيانات المُدرَجة في متجر اللياقة البدنية بمصدر بيانات. يمكنك إنشاء مصادر البيانات مرة واحدة وإعادة استخدامها للجلسات المستقبلية.

لإنشاء مصدر بيانات، أرسِل طلب HTTP تمت مصادقته باستخدام المعلمات التالية:

طريقة HTTP
نشر
المورد

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

ويشير رقم تعريف المستخدم me إلى المستخدم الذي يفوّض رمز الدخول الخاص به الطلب.

نص الطلب
{
"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"
}

يؤدي هذا الطلب إلى إنشاء مصدر بيانات يمثل أداة مراقبة معدّل نبضات القلب، والتي توفّر بيانات عن اللياقة البدنية من النوع com.google.heart_rate.bpm. يجب تحديد رقم تعريف مصدر البيانات، ويمكن أن يكون أي قيمة. يتبع رقم تعريف مصدر البيانات في هذا المثال اصطلاحًا معقولاً لتسمية المحتوى يمكنك اعتماده. يُعد مكوّن الجهاز اختياريًا في حال تم إنشاء البيانات من خلال تطبيق فقط.

إذا كان الطلب ناجحًا، ستكون الاستجابة رمز حالة 200 OK.

لمزيد من المعلومات حول مصادر البيانات، يُرجى الاطّلاع على مرجع واجهة برمجة التطبيقات للمورد Users.dataSources.

الخطوة 4: إضافة نقاط بيانات

ويمكنك استخدام مجموعات البيانات لإدراج نقاط البيانات في متجر اللياقة البدنية. مجموعة البيانات هي مجموعة من نقاط البيانات من مصدر بيانات واحد مرتبط بالوقت.

ولإنشاء مجموعة بيانات وإضافة نقاط إليها، أرسِل طلب HTTP مصادقًا فيه هذه المعلمات:

طريقة HTTP
رمز تصحيح
المورد

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 رقم تعريف مصدر البيانات ووقتَي البدء والانتهاء لمجموعة البيانات بالنانو ثانية.

نص الطلب
{
"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
    }
  ]
}
]
}

ينشئ هذا الطلب مجموعة بيانات تتضمّن ثلاث نقاط بيانات لمعدّل نبضات القلب خلال ساعة لمصدر البيانات في الخطوة السابقة.

إذا كان الطلب ناجحًا، ستكون الاستجابة رمز حالة 200 OK.

لمزيد من المعلومات حول مجموعات البيانات، يُرجى الرجوع إلى مرجع واجهة برمجة التطبيقات للمورد Users.dataSources.datasets.

إنشاء طوابع زمنية صالحة

الطوابع الزمنية في المثال أعلاه هي نانو ثانية. لإنشاء طوابع زمنية صالحة، يمكنك استخدام النص البرمجي Python التالي:

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: إنشاء جلسة

الآن بعد أن أدرجت البيانات في متجر اللياقة البدنية، يمكنك إدراج جلسة لتقديم بيانات وصفية إضافية لهذا التمرين. تمثّل الجلسات فاصلاً زمنيًا يجري خلاله المستخدمون نشاطًا للياقة البدنية.

لإنشاء جلسة لهذا التمارين، أرسِل طلب HTTP تمت مصادقته باستخدام المعلمات التالية:

طريقة HTTP
النقطة
المورد

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

يتم اختيار sessionId بشكل عشوائي ويجب أن يكون فريدًا لجميع الجلسات المرتبطة بالمستخدم الذي تمت المصادقة عليه.

نص الطلب
{
"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
}

اختَر اسم جلسة يمكن للمستخدمين قراءته ووصفًا لأنّه قد تستخدمه تطبيقات أخرى لتلخيص الجلسة. وقتا البدء والانتهاء للجلسات بالمللي ثانية (وليس نانو ثانية). استخدِم اسم الحزمة نفسه لجلساتك ومصادر بياناتك، ما يجعل البيانات أكثر اتساقًا ويضمن ربط بيانات البيانات بتطبيقك.

تغطي الفترة الزمنية المحدّدة في هذه الجلسة بيانات معدّل نبضات القلب المُدرَجة سابقًا، لذا يربط Google Fit نقاط البيانات هذه بهذه الجلسة.

لمزيد من المعلومات عن الجلسات، يُرجى الاطِّلاع على مرجع واجهة برمجة التطبيقات للمورد Users.sessions.

الخطوة 6: إنشاء شرائح النشاط

تساعدك شرائح النشاط على تمثيل أنشطة مختلفة ضمن الجلسة. شريحة النشاط هي شريحة زمنية تغطي نشاطًا واحدًا. على سبيل المثال، إذا قضى المستخدم جولة لمدة ساعة واحدة، يمكنك إنشاء شريحة نشاط من النوع running (8) لمدة ساعة كاملة. إذا كان المستخدم يعمل لمدة 25 دقيقة، وأخذ استراحة لمدة 5 دقائق، ثم تم تشغيله لمدة نصف ساعة أخرى، يمكنك إنشاء ثلاث شرائح نشاط متتابعة من أنواع running وunknown وrunning على التوالي.

يتطابق إنشاء شريحة نشاط مع إضافة أي نقطة بيانات أخرى. لإنشاء شرائح النشاط، عليك أولاً إنشاء مصدر بيانات لشريحة النشاط، ثم إنشاء مجموعة بيانات وإضافة نقاط بيانات شرائح النشاط إليها.

ينشئ المثال التالي ثلاث شرائح (قيد التشغيل والراحة والجري) في الإطارات الزمنية نفسها مثل قراءات معدّل نبضات القلب، بافتراض أنك أنشأت مصدر بيانات عن شريحة النشاط ورقم تعريف مصدر البيانات هو "raw:com.google.activity.segment:1234567890:Example Fit:example-fit-hrm-1:123456":

طريقة HTTP
رمز تصحيح
المورد
https://www.googleapis.com/fitness/v1/users/me/dataSources/
raw:com.google.activity.segment:1234567890/datasets/1411053997000000000-1411057556000000000
نص الطلب
{
"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
    }
  ]
}
]
}

تتم إضافة نقاط بيانات شرائح النشاط هذه إلى مصدر بيانات تم إنشاؤه خصيصًا للتعامل مع شرائح النشاط. يمكنك إنشاء مصدر بيانات جديد لكل مجموعة من الشرائح، ولكن عليك إعادة استخدام مصدر مخصص لنوع معيّن من الجلسات، مثل التشغيل.

تحدد الجلسات نوع النشاط، الذي يجب أن يتطابق مع النشاط العام الذي يتفاعل معه المستخدم. وحتى إذا أخذ المستخدم استراحة أثناء الجري، يظل التمارين بصفة عامة قيد التشغيل. بوجهٍ عام، سيتطابق نوع النشاط للجلسة مع نوع شريحة النشاط السائد.

استخدِم نوع النشاط غير معروف (4) للإشارة إلى أن المستخدم يسترخي لأنك قد لا تعرف ما يفعله المستخدم: قد يكون ما زال مستخدمًا على عِلم به أو قد يمدّده أو يشرب المياه وما إلى ذلك. وإذا كنت تعرف أنّ المستخدم لا يتحرك، يمكنك استخدام صورة ثابتة (3).

للحصول على قائمة مفصّلة بأنواع الأنشطة، يمكنك الاطّلاع على أنواع الأنشطة.

ملخّص

في هذا البرنامج التعليمي، أنشأت مصادر بيانات لأنواع البيانات وشرائح النشاط، وأدرجت نقاط بيانات في متجر اللياقة البدنية، وأنشأت شرائح نشاط لتمثيل الأنشطة المختلفة التي تحدث أثناء ممارسة التمارين، وضمّنت جلسة تغطي التمرين بالكامل.

يربط تطبيق Google Fit البيانات التي أدرجتها وأي بيانات أخرى متاحة لهذه الفترة الزمنية مع جلسة تمثّل تمرين المستخدم.