এপিআই স্পেসিফিকেশন বিভাগে প্ল্যাটফর্মের সাথে ইন্টিগ্রেশনের জন্য প্রয়োজনীয় প্রযুক্তিগত উপাদানগুলির একটি বিশদ বিবরণ দেওয়া হয়েছে, যার মধ্যে রয়েছে অথরাইজেশন স্কোপ, ডেটা টাইপ ডেফিনিশন এবং এন্ডপয়েন্ট স্ট্রাকচার। এই এপিআইটি হলো পুরোনো ফিটবিট ওয়েব এপিআই-এর একটি কৌশলগত বিবর্তন, যা আরও স্থিতিশীল এবং সামঞ্জস্যপূর্ণ ডেভেলপার অভিজ্ঞতা নিশ্চিত করার জন্য আধুনিক পরিকাঠামোর উপর পুনর্নির্মাণ করা হয়েছে।
স্কোপ
Google Health API স্কোপ ব্যবহার করার জন্য আপনাকে অবশ্যই আপনার অনুমোদন অনুরোধ আপডেট করতে হবে। স্কোপগুলো নির্ধারণ করে যে আপনার অ্যাপ রিড বা রাইট অপারেশন সমর্থন করে কিনা। স্কোপ বাস্তবায়নের নির্দেশাবলী অনুসরণ করুন, যেখানে শুধুমাত্র প্রয়োজনীয় স্কোপের জন্য অনুরোধ করা, কেবল ডেটা পাঠানোর সময় রাইট অ্যাক্সেস কনফিগার করা এবং আংশিক সম্মতি সুষ্ঠুভাবে পরিচালনা করার কথা বলা হয়েছে।
গুগল হেলথ এপিআই স্কোপগুলো হলো একটি HTTP URL যা https://www.googleapis.com/auth/googlehealth.{scope} দিয়ে শুরু হয়। উদাহরণস্বরূপ, https://www.googleapis.com/auth/googlehealth.activity_and_fitness.writeonly।
স্কোপ ম্যাপিং
ফিটবিট ওয়েব এপিআই স্কোপগুলো গুগল হেলথ এপিআই স্কোপের সাথে যেভাবে সংযুক্ত হয়, তা নিচে দেওয়া হলো:
| ফিটবিট ওয়েব এপিআই স্কোপ | গুগল হেলথ এপিআই স্কোপ |
|---|---|
| কার্যকলাপ | .activity_and_fitness.readonly .activity_and_fitness.writeonly |
| রক্তে গ্লুকোজ | .health_metrics_and_measurements.readonly .health_metrics_and_measurements.writeonly |
| কার্ডিও_ফিটনেস | .activity_and_fitness.readonly .activity_and_fitness.writeonly |
| ইলেক্ট্রোকার্ডিওগ্রাম | .ecg.readonly |
| হৃদস্পন্দন | .health_metrics_and_measurements.readonly .health_metrics_and_measurements.writeonly |
| অনিয়মিত ছন্দ বিজ্ঞপ্তি | .irn.readonly |
| অবস্থান | .location.readonly |
| পুষ্টি | .nutrition.readonly .nutrition.writeonly |
| অক্সিজেন_স্যাচুরেশন | .health_metrics_and_measurements.readonly .health_metrics_and_measurements.writeonly |
| প্রোফাইল | .profile.readonly .profile.writeonly |
| শ্বাস-প্রশ্বাসের হার | .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 |
ডেটা টাইপ
এখানে গুগল হেলথ এপিআই ডেটা টাইপগুলোর একটি তালিকা এবং ফিটবিট ওয়েব এপিআই-এর সাথে সেগুলোর সামঞ্জস্য তুলে ধরা হলো।
এই প্রকারগুলির জন্য ডেটা কীভাবে রিপোর্ট করা হয় সে সম্পর্কে আরও তথ্যের জন্য, " ডেটা উপস্থিতি এবং প্রকৃত শূন্য" নির্দেশিকাটি দেখুন। এই নির্দেশিকায় নিষ্ক্রিয়তা এবং অন-রিস্ট ফিল্টারিং সম্পর্কিত বিশদ বিবরণ রয়েছে।
| ফিটবিট ওয়েব এপিআই ডেটা টাইপ | গুগল হেলথ এপিআই ডেটা টাইপdataType | বর্ণনা |
|---|---|---|
| কার্যকলাপের ক্যালোরি | সক্রিয় শক্তি ব্যয়িতactive-energy-burned | এটি সক্রিয় সময়কালে ব্যয় হওয়া ক্যালোরির পরিমাণ নির্দেশ করে, যার মধ্যে সেই সময়কালের BMR অন্তর্ভুক্ত থাকে। গুগল হেলথ এপিআই-তে, active-energy-burned ডেটা টাইপের (যা বেসাল রেট বাদে শুধুমাত্র কার্যকলাপের ফলে হওয়া ক্যালোরি খরচ ট্র্যাক করে) সাথে BMR যোগ করে এটি পুনর্গঠন করা যায়। |
| সক্রিয় অঞ্চলের মিনিট | সক্রিয় অঞ্চলের মিনিটactive-zone-minutes | |
| ব্যবহারকারীর কার্যকলাপের স্তরের পরিবর্তন অন্তর্ভুক্ত। | কার্যকলাপের স্তরactivity-level | |
| উচ্চতা | উচ্চতাaltitude | |
কার্যকলাপের caloriesBMR | ভিত্তি শক্তি ব্যয়িতbasal-energy-burned | একটি নির্দিষ্ট সময়কালে বেসাল মেটাবলিক রেট (বিএমআর)-এর কারণে যে ক্যালোরি খরচ হয়। |
| রক্তে গ্লুকোজ | রক্তে গ্লুকোজblood-glucose | |
| শরীরের চর্বি | শরীরের চর্বিbody-fat | |
প্রতিটি হার্ট রেট জোনে caloriesOut | হার্ট রেট জোনে ক্যালোরিcalories-in-heart-rate-zone | |
| তাপমাত্রা (মূল) | শরীরের মূল তাপমাত্রাcore-body-temperature | |
| এইচআরভি সারাংশ | দৈনিক হৃদস্পন্দন পরিবর্তনশীলতাdaily-heart-rate-variability | |
| SpO2 সারাংশ | দৈনিক অক্সিজেন স্যাচুরেশনdaily-oxygen-saturation | |
| বিশ্রামের সময় হৃদস্পন্দন | দৈনিক বিশ্রামকালীন হৃদস্পন্দনdaily-resting-heart-rate | |
| ত্বকের তাপমাত্রা | দৈনিক ঘুমের তাপমাত্রা নির্ণয়daily-sleep-temperature-derivations | |
| দূরত্ব | দূরত্বdistance | |
| ইলেক্ট্রোকার্ডিওগ্রাম (ইসিজি) | ইলেক্ট্রোকার্ডিওগ্রাম (ইসিজি)electrocardiogram | |
| রেকর্ডকৃত কার্যকলাপ | ব্যায়ামexercise | রেকর্ড করা ওয়ার্কআউট বা ব্যায়াম সেশন, যার মধ্যে শুরু/শেষের সময়, কার্যকলাপের ধরণ এবং সেশনের মেট্রিক অন্তর্ভুক্ত থাকে। |
| মেঝে | মেঝেfloors | |
| খাবার | খাবারfood | |
| খাদ্য পরিমাপের একক | খাদ্য পরিমাপের এককfood-measurement-unit | |
| হৃদস্পন্দন | হৃদস্পন্দনheart-rate | |
| এইচআরভি ইন্ট্রাডে | হৃদস্পন্দন পরিবর্তনশীলতাheart-rate-variability | |
| অনিয়মিত ছন্দ বিজ্ঞপ্তি (IRN) | অনিয়মিত ছন্দ বিজ্ঞপ্তিirregular-rhythm-notification | |
| খাদ্য তালিকা | পুষ্টি লগnutrition-log | |
| SpO2 ইন্ট্রাডে | অক্সিজেন স্যাচুরেশনoxygen-saturation | |
| ব্যবহারকারী যখন দৌড়ায় তখন VO2 Max এর মান | রান ভিও২ ম্যাক্সrun-vo2-max | |
| কার্যকলাপের সময় সিরিজ মিনিট নিষ্ক্রিয় | নিষ্ক্রিয় সময়কালsedentary-period | |
| ঘুম | ঘুমsleep | |
| পদক্ষেপ | পদক্ষেপsteps | |
| কার্যকলাপের সময় সিরিজ সাঁতারের স্ট্রোক | সাঁতারের দৈর্ঘ্যের ডেটাswim-lengths-data | |
কার্যকলাপের ফলে caloriesOut | মোট ক্যালোরিtotal-calories | একটি নির্দিষ্ট সময়কালে একজন ব্যবহারকারীর দ্বারা ব্যয়িত মোট ক্যালোরির পরিমাণ, যার মধ্যে বেসাল এনার্জি বার্নড এবং অ্যাক্টিভ এনার্জি বার্নড অন্তর্ভুক্ত। |
| VO2 সর্বোচ্চ মান | ভিও২ ম্যাক্সvo2-max | |
| ওজন | ওজনweight |
গণনা
গুগল হেলথ এপিআই-এর ম্যাপিং এবং নিয়মকানুন ফিটবিট ওয়েব এপিআই থেকে ভিন্ন।
কার্যকলাপের স্তর, METs, এবং পদক্ষেপের সীমা
গুগল হেলথ এপিআই-তে, একজন ব্যবহারকারীর মিনিট-প্রতি-মিনিট কার্যকলাপের মাত্রা তার মেটাবলিক ইকুইভ্যালেন্ট অফ টাস্ক (MET) এবং পদক্ষেপের সংখ্যা থেকে নির্ণয় করা হয়।
| কার্যকলাপের স্তর | হার্ট রেট ডিভাইস | নন-হার্ট রেট ডিভাইস |
|---|---|---|
| অলস | ≤ ১.৫ METs | ≤ ১.৫ METs |
| হালকা সক্রিয় | ১.৫ METs এবং ≤ ৪.২ METs | ১.৫ METs এর বেশি এবং ৩.৫ METs এর কম বা সমান |
| মাঝারি সক্রিয় | ৪.২ METs এবং ৬.০ METs এর কম (যদি না 'অত্যন্ত সক্রিয়'- এর শর্তগুলো পূরণ হয়) | ৩.৫ METs এর বেশি এবং ৬.০ METs এর কম (যদি না 'অত্যন্ত সক্রিয়'- এর শর্তগুলো পূরণ হয়) |
| খুব সক্রিয় | ≥ ৬.০ METs, অথবা ≥ ৫.০ METs সহ প্রতি মিনিটে ১৫০ বা তার বেশি পদক্ষেপের হার | ≥ ৬.০ METs, অথবা ≥ ৫.০ METs সহ প্রতি মিনিটে ১৫০ বা তার বেশি পদক্ষেপের হার |
সক্রিয় মিনিট বলতে MODERATELY_ACTIVE এবং VERY_ACTIVE মিনিটগুলোকে বোঝায়। তবে, একটি অত্যন্ত সক্রিয় মিনিট তখনই গণনা করা হয়, যদি তা কমপক্ষে ১০ মিনিটের একটি অবিচ্ছিন্ন ধারার মধ্যে ঘটে, যেখানে কম কার্যকলাপের সর্বাধিক ২ মিনিটের বিরতি অনুমোদিত।
নিষ্ক্রিয় মিনিট এবং ঘুম
নিষ্ক্রিয় মিনিটের মধ্যে ঘুমের সময় অন্তর্ভুক্ত নয়। দৈনিক হিসাব গণনায়, দিনের মোট মিনিট (১,৪৪০ মিনিট) থেকে ঘুমের মিনিট এবং সক্রিয় মিনিট (সামান্য সক্রিয়, মাঝারি সক্রিয় এবং খুব সক্রিয়) বিয়োগ করে নিষ্ক্রিয় মিনিট গণনা করা হয়:
Sedentary Minutes = 1440 - Sleep Minutes - Lightly Active Minutes - Moderately Active Minutes - Very Active Minutes
বডি মাস ইনডেক্স (BMI)
যেহেতু গুগল হেলথ এপিআই-তে কোনো বিল্ট-ইন BMI ডেটা টাইপ নেই, তাই অ্যাপ্লিকেশনগুলোকে উচ্চতা এবং ওজনের রেকর্ড ব্যবহার করে ক্লায়েন্ট-সাইডে বডি মাস ইনডেক্স গণনা করতে হয়:
- Weight ডেটা টাইপের
weightGramsফিল্ড থেকে ব্যবহারকারীর ওজন গ্রামে সংগ্রহ করুন। এটিকে কিলোগ্রামে (১,০০০ দিয়ে ভাগ করে) অথবা পাউন্ডে (৪৫৩.৫৯২৩৭ দিয়ে ভাগ করে) রূপান্তর করুন। - Height ডেটা টাইপের
heightMillimetersফিল্ড থেকে ব্যবহারকারীর উচ্চতা মিলিমিটারে সংগ্রহ করুন। এটিকে মিটারে (১,০০০ দিয়ে ভাগ করে) অথবা ইঞ্চিতে (২৫.৪ দিয়ে ভাগ করে) রূপান্তর করুন। - BMI-এর মান নির্ণয় করতে নিচের সূত্রগুলোর মধ্যে যেকোনো একটি ব্যবহার করুন:
- মেট্রিক সূত্র:
BMI = weight (kg) / [height (m)]^2 - ইম্পেরিয়াল সূত্র:
BMI = (weight (lbs) / [height (in)]^2) * 703
- মেট্রিক সূত্র:
প্রাপ্ত BMI মানগুলো নিম্নলিখিত বিভাগগুলোর সাথে সামঞ্জস্যপূর্ণ:
| ওজন বিভাগ | বিএমআই পরিসর |
|---|---|
| কম ওজন | ১৮.৫ এর নিচে |
| স্বাস্থ্যকর ওজন | ১৮.৫ থেকে ২৪.৯ |
| অতিরিক্ত ওজন | ২৫ থেকে ২৯.৯ |
| স্থূল | ৩০ বা তার বেশি |
বেসাল মেটাবলিক রেট (বিএমআর)
বেসাল মেটাবলিক রেট (BMR) হলো বিশ্রামরত অবস্থায় শরীরের মৌলিক কার্যকলাপের জন্য প্রয়োজনীয় ন্যূনতম ক্যালোরির পরিমাণ। যেহেতু গুগল হেলথ এপিআই-তে কোনো বিল্ট-ইন BMR ডেটা টাইপ নেই, তাই অ্যাপ্লিকেশনগুলোকে হ্যারিস-বেনেডিক্ট সূত্র ব্যবহার করে ক্লায়েন্ট-সাইডে এটি গণনা করতে হয়। এ বিষয়ে আরও জানতে উইকিপিডিয়ায় হ্যারিস-বেনেডিক্ট সমীকরণ সম্পর্কিত নিবন্ধটি দেখুন।
এই গণনাটি সম্পাদন করতে:
- Weight ডেটা টাইপের
weightGramsফিল্ড থেকে ব্যবহারকারীর ওজন গ্রামে নিন এবং কিলোগ্রামে রূপান্তর করুন (১,০০০ দিয়ে ভাগ করে)। পাউন্ডকে কিলোগ্রামে রূপান্তর করতে, ২.২ দিয়ে ভাগ করুন। - Height ডেটা টাইপের
heightMillimetersফিল্ড থেকে ব্যবহারকারীর উচ্চতা মিলিমিটারে নিন এবং সেন্টিমিটারে রূপান্তর করুন (১০ দিয়ে ভাগ করে)। ইঞ্চি থেকে সেন্টিমিটারে রূপান্তর করতে, ২.৫৪ দিয়ে গুণ করুন। - প্রোফাইল রিসোর্সের
ageক্ষেত্র থেকে ব্যবহারকারীর বয়স (বছরে) সংগ্রহ করুন। - জৈবিক লিঙ্গটি স্বাধীনভাবে সংগ্রহ করুন (উদাহরণস্বরূপ, ব্যবহারকারীকে জিজ্ঞাসা করে অথবা আপনার নিজস্ব ডেটাবেসে এটি সংরক্ষণ করে), কারণ গুগল হেলথ এপিআই এই ফিল্ডটি প্রকাশ করে না।
- ব্যবহারকারীর জৈবিক লিঙ্গের উপর ভিত্তি করে নিম্নলিখিত সূত্রগুলির মধ্যে একটি ব্যবহার করুন:
- পুরুষ:
BMR = 66 + (13.7 x weight_kg) + (5 x height_cm) - (6.8 x age_years) - মহিলা:
BMR = 655 + (9.6 x weight_kg) + (1.8 x height_cm) - (4.7 x age_years)
- পুরুষ:
মোট দৈনিক শক্তি ব্যয় (TDEE)
দৈনিক মোট শক্তি ব্যয় (TDEE) হলো একজন ব্যক্তি সারাদিনে মোট কত ক্যালোরি খরচ করেন তার একটি আনুমানিক হিসাব, যেখানে বেসাল মেটাবলিক রেট (BMR) এবং শারীরিক কার্যকলাপ উভয়ই বিবেচনা করা হয়। ব্যবহারকারীর TDEE অনুমান করার জন্য, BMR মানটিকে তার জীবনযাত্রার সাথে সামঞ্জস্যপূর্ণ একটি অ্যাক্টিভিটি ফ্যাক্টর দিয়ে গুণ করুন:
| কার্যকলাপের স্তর | বর্ণনা | গুণক |
|---|---|---|
| অলস | খুব কম বা একেবারেই ব্যায়াম না করা। | BMR x 1.2 |
| হালকা সক্রিয় | সপ্তাহে ১-৩ দিন ব্যায়াম। | BMR x 1.375 |
| মাঝারি সক্রিয় | সপ্তাহে ৩-৫ দিন ব্যায়াম। | BMR x 1.55 |
| খুব সক্রিয় | সপ্তাহে ৬-৭ দিন ব্যায়াম। | BMR x 1.725 |
| অতিরিক্ত সক্রিয় | খুব কঠিন ব্যায়াম বা শারীরিক কাজ। | BMR x 1.9 |
এন্ডপয়েন্ট
REST এন্ডপয়েন্টগুলো সকল ডেটা টাইপের জন্য একটি সামঞ্জস্যপূর্ণ সিনট্যাক্স অনুসরণ করে।
- সার্ভিস এন্ডপয়েন্ট : মূল HTTP URL পরিবর্তিত হয়ে https://health.googleapis.com হবে।
- এন্ডপয়েন্ট সিনট্যাক্স : গুগল হেলথ এপিআই সীমিত সংখ্যক এন্ডপয়েন্ট সমর্থন করে, যা বেশিরভাগ সমর্থিত ডেটা টাইপ দ্বারা ব্যবহার করা যায়। এটি সমস্ত ডেটা টাইপের জন্য একটি সামঞ্জস্যপূর্ণ সিনট্যাক্স প্রদান করে এবং এন্ডপয়েন্টগুলো ব্যবহার করা সহজ করে তোলে।
- ব্যবহারকারী শনাক্তকারী : এন্ডপয়েন্ট সিনট্যাক্সে হয় ইউজার আইডি অথবা 'me' উল্লেখ করতে হবে। 'me' ব্যবহার করার ক্ষেত্রে, অ্যাক্সেস টোকেন থেকে ইউজার আইডি অনুমান করা হয়।
উদাহরণ : এখানে গুগল হেলথ এপিআই ব্যবহার করে কল করা GET প্রোফাইল এন্ডপয়েন্টের একটি উদাহরণ দেওয়া হলো।
GET https://health.googleapis.com/v4/users/me/profile
এন্ডপয়েন্ট ম্যাপিং
উপলব্ধ ডেটা টাইপ এবং সেগুলোর সমর্থিত এপিআই মেথডগুলোর তালিকার জন্য গুগল হেলথ এপিআই ডেটা টাইপ টেবিলটি দেখুন।
| ফিটবিট ওয়েব এপিআই এন্ডপয়েন্ট টাইপ | গুগল স্বাস্থ্য এপিআই |
|---|---|
| GET (লগ | সারাংশ | দৈনিক সারাংশ) যেখানে আপনি শুধুমাত্র একদিনের ডেটা অনুরোধ করছেন | windowSize = 1 day` সহ dailyRollup পদ্ধতি |
| GET (ইন্ট্রাডে) যেখানে আপনি সুনির্দিষ্ট ডেটার জন্য অনুরোধ করছেন | list পদ্ধতি |
| তারিখ বা ব্যবধান অনুসারে সময় সিরিজ (GET) | তারিখের পরিসর সহ rollUp বা dailyRollUp পদ্ধতি |
| GET (লগ তালিকা) | list পদ্ধতি |
| লগ তৈরি ও আপডেট করুন | patch পদ্ধতি |
| লগ মুছে ফেলুন | batchDelete পদ্ধতি |
| প্রোফাইল পান | 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 সমস্ত সাবস্ক্রিপশন তালিকাভুক্ত করে। |