API স্পেসিফিকেশন

এপিআই স্পেসিফিকেশন বিভাগে প্ল্যাটফর্মের সাথে ইন্টিগ্রেশনের জন্য প্রয়োজনীয় প্রযুক্তিগত উপাদানগুলির একটি বিশদ বিবরণ দেওয়া হয়েছে, যার মধ্যে রয়েছে অথরাইজেশন স্কোপ, ডেটা টাইপ ডেফিনিশন এবং এন্ডপয়েন্ট স্ট্রাকচার। এই এপিআইটি হলো পুরোনো ফিটবিট ওয়েব এপিআই-এর একটি কৌশলগত বিবর্তন, যা আরও স্থিতিশীল এবং সামঞ্জস্যপূর্ণ ডেভেলপার অভিজ্ঞতা নিশ্চিত করার জন্য আধুনিক পরিকাঠামোর উপর পুনর্নির্মাণ করা হয়েছে।

স্কোপ

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 ডেটা টাইপ নেই, তাই অ্যাপ্লিকেশনগুলোকে উচ্চতা এবং ওজনের রেকর্ড ব্যবহার করে ক্লায়েন্ট-সাইডে বডি মাস ইনডেক্স গণনা করতে হয়:

  1. Weight ডেটা টাইপের weightGrams ফিল্ড থেকে ব্যবহারকারীর ওজন গ্রামে সংগ্রহ করুন। এটিকে কিলোগ্রামে (১,০০০ দিয়ে ভাগ করে) অথবা পাউন্ডে (৪৫৩.৫৯২৩৭ দিয়ে ভাগ করে) রূপান্তর করুন।
  2. Height ডেটা টাইপের heightMillimeters ফিল্ড থেকে ব্যবহারকারীর উচ্চতা মিলিমিটারে সংগ্রহ করুন। এটিকে মিটারে (১,০০০ দিয়ে ভাগ করে) অথবা ইঞ্চিতে (২৫.৪ দিয়ে ভাগ করে) রূপান্তর করুন।
  3. BMI-এর মান নির্ণয় করতে নিচের সূত্রগুলোর মধ্যে যেকোনো একটি ব্যবহার করুন:
    • মেট্রিক সূত্র: BMI = weight (kg) / [height (m)]^2
    • ইম্পেরিয়াল সূত্র: BMI = (weight (lbs) / [height (in)]^2) * 703

প্রাপ্ত BMI মানগুলো নিম্নলিখিত বিভাগগুলোর সাথে সামঞ্জস্যপূর্ণ:

ওজন বিভাগ বিএমআই পরিসর
কম ওজন ১৮.৫ এর নিচে
স্বাস্থ্যকর ওজন ১৮.৫ থেকে ২৪.৯
অতিরিক্ত ওজন ২৫ থেকে ২৯.৯
স্থূল ৩০ বা তার বেশি

বেসাল মেটাবলিক রেট (বিএমআর)

বেসাল মেটাবলিক রেট (BMR) হলো বিশ্রামরত অবস্থায় শরীরের মৌলিক কার্যকলাপের জন্য প্রয়োজনীয় ন্যূনতম ক্যালোরির পরিমাণ। যেহেতু গুগল হেলথ এপিআই-তে কোনো বিল্ট-ইন BMR ডেটা টাইপ নেই, তাই অ্যাপ্লিকেশনগুলোকে হ্যারিস-বেনেডিক্ট সূত্র ব্যবহার করে ক্লায়েন্ট-সাইডে এটি গণনা করতে হয়। এ বিষয়ে আরও জানতে উইকিপিডিয়ায় হ্যারিস-বেনেডিক্ট সমীকরণ সম্পর্কিত নিবন্ধটি দেখুন।

এই গণনাটি সম্পাদন করতে:

  1. Weight ডেটা টাইপের weightGrams ফিল্ড থেকে ব্যবহারকারীর ওজন গ্রামে নিন এবং কিলোগ্রামে রূপান্তর করুন (১,০০০ দিয়ে ভাগ করে)। পাউন্ডকে কিলোগ্রামে রূপান্তর করতে, ২.২ দিয়ে ভাগ করুন।
  2. Height ডেটা টাইপের heightMillimeters ফিল্ড থেকে ব্যবহারকারীর উচ্চতা মিলিমিটারে নিন এবং সেন্টিমিটারে রূপান্তর করুন (১০ দিয়ে ভাগ করে)। ইঞ্চি থেকে সেন্টিমিটারে রূপান্তর করতে, ২.৫৪ দিয়ে গুণ করুন।
  3. প্রোফাইল রিসোর্সের age ক্ষেত্র থেকে ব্যবহারকারীর বয়স (বছরে) সংগ্রহ করুন।
  4. জৈবিক লিঙ্গটি স্বাধীনভাবে সংগ্রহ করুন (উদাহরণস্বরূপ, ব্যবহারকারীকে জিজ্ঞাসা করে অথবা আপনার নিজস্ব ডেটাবেসে এটি সংরক্ষণ করে), কারণ গুগল হেলথ এপিআই এই ফিল্ডটি প্রকাশ করে না।
  5. ব্যবহারকারীর জৈবিক লিঙ্গের উপর ভিত্তি করে নিম্নলিখিত সূত্রগুলির মধ্যে একটি ব্যবহার করুন:
    • পুরুষ: 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 সমস্ত সাবস্ক্রিপশন তালিকাভুক্ত করে।