يقدّم قسم "مواصفات واجهة برمجة التطبيقات" نظرة عامة مفصّلة على المكوّنات الفنية الأساسية للتكامل مع المنصة، بما في ذلك نطاقات التفويض وتعريفات أنواع البيانات وبِنى نقاط النهاية. تمثّل واجهة برمجة التطبيقات هذه تطوّرًا استراتيجيًا لواجهة Fitbit Web API القديمة، وقد تمت إعادة إنشائها باستخدام بنية أساسية حديثة لضمان تجربة أكثر استقرارًا وتناسقًا للمطوّرين.
المستويات
يجب تعديل طلب الإذن لاستخدام نطاقات Google Health API. تحدّد النطاقات ما إذا كان تطبيقك يتيح عمليات القراءة أو الكتابة. لا تستخدِم النطاقات غير الضرورية لتطبيقك، ويمكنك دائمًا إضافة المزيد من النطاقات لاحقًا إذا تغيّر تصميم تطبيقك.
نطاقات Google Health API هي عناوين URL بتنسيق HTTP تبدأ بـ https://www.googleapis.com/auth/googlehealth.{scope}. على سبيل المثال، https://www.googleapis.com/auth/googlehealth.activity_and_fitness.writeonly.
تعيينات النطاق
في ما يلي كيفية ربط نطاقات Fitbit Web API بنطاقات Google Health API:
| نطاقات Fitbit Web API | نطاقات Google Health API |
|---|---|
| النشاط | .activity_and_fitness.readonly
.activity_and_fitness.writeonly |
| blood_glucose | .health_metrics_and_measurements.readonly
.health_metrics_and_measurements.writeonly |
| cardio_fitness | .activity_and_fitness.readonly
.activity_and_fitness.writeonly |
| مخطط كهربية القلب | .ecg.readonly
|
| معدل نبضات القلب | .health_metrics_and_measurements.readonly
.health_metrics_and_measurements.writeonly |
| irregular_rhythm_notifications | .irn.readonly
|
| الموقع | .location.readonly
|
| المعلومات الغذائية | .nutrition.readonly
.nutrition.writeonly |
| oxygen_saturation | .health_metrics_and_measurements.readonly
.health_metrics_and_measurements.writeonly |
| الملف الشخصي | .profile.readonly
.profile.writeonly |
| respiratory_rate | .health_metrics_and_measurements.readonly
.health_metrics_and_measurements.writeonly |
| الإعدادات | .settings.readonly
.settings.writeonly |
| النوم | .sleep.readonly
.sleep.writeonly |
| درجة الحرارة | .health_metrics_and_measurements.readonly
.health_metrics_and_measurements.writeonly |
| الوزن | .health_metrics_and_measurements.readonly
.health_metrics_and_measurements.writeonly |
أنواع البيانات
في ما يلي قائمة بأنواع بيانات Google Health API وكيفية ربطها بواجهة Fitbit Web API.
| نوع بيانات Fitbit Web API | نوع بيانات Google Health APIdataType |
|---|---|
| السعرات الحرارية المحروقة نتيجة ممارسة نشاط بدني | السعرات الحرارية المحروقة أثناء النشاط البدنيactive-energy-burned
|
| دقائق منطقة نشطة | دقائق قسم النشاطactive-zone-minutes
|
| يحتوي على تغييرات في مستويات نشاط المستخدم | مستوى النشاطactivity-level
|
| الارتفاع | الارتفاعaltitude
|
| الغلوكوز في الدم | الغلوكوز في الدمblood-glucose
|
| نسبة الدهون بالجسم | دهون الجسمbody-fat
|
caloriesOut في كل نطاق من نطاقات معدّل نبضات القلب |
السعرات الحرارية في منطقة معدل ضربات القلبcalories-in-heart-rate-zone
|
| درجة الحرارة (الأساسية) | درجة حرارة الجسم الأساسيةcore-body-temperature
|
| ملخّص معدّل ضربات القلب المتغير | تغيُّر معدّل نبضات القلب اليوميdaily-heart-rate-variability
|
| ملخّص نسبة الأكسجين بالدم | تشبّع الأكسجين اليوميdaily-oxygen-saturation
|
| معدّل النبض أثناء الراحة | معدّل النبض أثناء الراحة اليوميdaily-resting-heart-rate
|
| درجة حرارة الجلد | القيم المشتقة لدرجة حرارة الجسم أثناء النومdaily-sleep-temperature-derivations
|
| المسافة | المسافةdistance
|
| مخطَّط كهربية القلب (ECG) | تخطيط القلب الكهربائي (ECG)electrocardiogram
|
| النشاط المسجّل | ممارسة التمارين الرياضيةexercise
|
| الطوابق | الطوابقfloors
|
| طعام | الطعامfood
|
| وحدة قياس الطعام | وحدة قياس الطعامfood-measurement-unit
|
| معدّل نبضات القلب | معدّل نبضات القلبheart-rate
|
| معدّل ضربات القلب خلال اليوم | تغيُّر معدّل نبضات القلبheart-rate-variability
|
| إشعارات اضطراب نظم القلب | إشعار اضطراب نظم القلبirregular-rhythm-notification
|
| سجلّ الطعام | سجلّ التغذيةnutrition-log
|
| نسبة الأكسجين بالدم خلال اليوم | تشبّع الأكسجينoxygen-saturation
|
| قيمة الحدّ الأقصى لاستهلاك الأكسجين عند الركض | Run VO2 Maxrun-vo2-max
|
| سلسلة الوقت لنشاط الدقائق التي تم قضاؤها في وضع الخمول | فترة الخمولsedentary-period
|
| النوم | موسيقى للنومsleep
|
| الخطوات | الخطواتsteps
|
| سلسلة زمنية للأنشطة: عدد حركات السباحة | بيانات أطوال السباحةswim-lengths-data
|
النشاط caloriesOut |
إجمالي السعرات الحراريةtotal-calories
|
| قيمة الحد الأقصى لاستهلاك الأكسجين | الحد الأقصى لاستهلاك الأكسجينvo2-max
|
| الوزن | الوزنweight
|
نقاط النهاية
تستخدم نقاط نهاية REST بنية متسقة لجميع أنواع البيانات.
- نقطة نهاية الخدمة: يتغيّر عنوان URL الأساسي لبروتوكول HTTP إلى https://health.googleapis.com.
- بنية نقطة النهاية: تتيح Google Health API عددًا محدودًا من نقاط النهاية التي يمكن استخدامها مع معظم أنواع البيانات المتوافقة. يوفّر ذلك بنية متّسقة لجميع أنواع البيانات، ما يسهّل استخدام نقاط النهاية.
- معرّف المستخدم: يجب تحديد معرّف المستخدم أو me في بنية نقطة النهاية. عند استخدامي، يتم استنتاج رقم تعريف المستخدم من رمز الدخول المميز.
مثال: في ما يلي مثال على نقطة نهاية GET Profile التي يتم استدعاؤها باستخدام Google Health API
GET https://health.googleapis.com/v4/users/me/profile
تعيينات نقاط النهاية
راجِع جدول أنواع البيانات في Google Health API للاطّلاع على قائمة بأنواع البيانات المتاحة وطرق واجهة برمجة التطبيقات التي تتوافق معها.
| نوع نقطة نهاية Fitbit Web API | Google Health API |
| GET (Log | Summary | Daily Summary) where you are requesting a single day of data | طريقة dailyRollup مع windowSize = يوم واحد |
| GET (خلال اليوم) حيث تطلب بيانات تفصيلية | طريقة القائمة |
| GET (سلسلة زمنية) حسب التاريخ أو الفاصل الزمني | طريقة rollUp أو dailyRollUp التي تتضمّن نطاقًا زمنيًا |
| GET (قائمة السجلّ) | طريقة القائمة |
| إنشاء سجلات وتعديلها | طريقة patch |
| حذف السجلات | طريقة batchDelete |
| GET Profile | تعرض الدالة users.getProfile معلومات المستخدم المحدّدة
تعرض الدالة users.getSettings وحدات المستخدم والمناطق الزمنية |
| تعديل الملف الشخصي | تعدّل الدالة users.updateProfile المعلومات المحدّدة للمستخدم
تعدّل الدالة users.updateSettings الوحدات والمناطق الزمنية للمستخدم |
| الحصول على رقم تعريف المستخدم | تعرض الدالة users.getIdentity معرّف المستخدم القديم في Fitbit ومعرّف المستخدم في Google. |
| الحصول على الأجهزة | تعرض السمة users.pairedDevices قائمة الأجهزة المقترنة |
| إنشاء اشتراكات | تنشئ الدالة projects.subscribers.subscriptions.create اشتراكًا يدويًا. |
| حذف الاشتراكات | projects.subscribers.subscriptions.delete لحذف اشتراك |
| الحصول على قائمة الاشتراكات | تعرض الدالة projects.subscribers.subscriptions.list جميع الاشتراكات. |