মাইগ্রেশন গাইড

গুগল হেলথ এপিআই হলো একেবারে নতুন করে তৈরি করা একটি এপিআই, যা ডেভেলপারদের ফিটবিট ব্যবহারকারীর ডেটা কোয়েরি করার সুযোগ দেয়। এটি শুধু একটি আপডেট নয়, বরং আপনার অ্যাপগুলো যেন সুরক্ষিত, নির্ভরযোগ্য এবং স্বাস্থ্য প্রযুক্তির ভবিষ্যৎ অগ্রগতির জন্য প্রস্তুত থাকে, তা নিশ্চিত করার জন্য এটি একটি কৌশলগত পদক্ষেপ। এই এপিআই আপনার অ্যাপ নিবন্ধন করার জন্য একটি নতুন কনসোল, গুগল ওঅথ ২.০ (Google OAuth 2.0) সাপোর্ট, নতুন ডেটা টাইপ, নতুন এন্ডপয়েন্ট স্কিমা এবং নতুন রেসপন্স ফরম্যাট সমর্থন করে।

এই নির্দেশিকাটি ডেভেলপারদের তাদের বিদ্যমান ফিটবিট ওয়েব এপিআই অ্যাপগুলোকে নতুন গুগল হেলথ এপিআই-তে স্থানান্তরিত করতে সাহায্য করার জন্য তৈরি করা হয়েছে।

আপনার কেন অভিবাসন করা উচিত?

গুগল হেলথ এপিআই ব্যবহারের সুবিধাগুলো হলো:

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

অ্যাপ নিবন্ধন

সমস্ত গুগল হেলথ এপিআই অ্যাপ অবশ্যই গুগল ক্লাউড কনসোল ব্যবহার করে নিবন্ধন করতে হবে, যা আপনার সমস্ত গুগল অ্যাপ পরিচালনার জন্য একটি কেন্দ্রীয় কেন্দ্র হিসেবে কাজ করে।

আপনার অ্যাপ নিবন্ধন করার নির্দেশাবলীর জন্য, 'শুরু করা' (Getting Started) অংশের ধাপগুলো অনুসরণ করুন। আপনার অ্যাপ নিবন্ধন করার সময় আপনি যে পার্থক্যগুলো লক্ষ্য করবেন তা এখানে দেওয়া হলো।

ফিটবিট ওয়েব এপিআই গুগল স্বাস্থ্য এপিআই
সর্বজনীন লিঙ্ক(গুলি) https://dev.fitbit.com/apps https://console.cloud.google.com
একটি নতুন অ্যাপ যোগ করা একটি নতুন অ্যাপ নিবন্ধন করতে চাপুন।
  1. একটি গুগল ক্লাউড প্রজেক্ট তৈরি করুন
  2. গুগল হেলথ এপিআই সক্রিয় করুন
মৌলিক তথ্য পূরণ করার জন্য ক্ষেত্রসমূহ:
  • আবেদনের নাম
  • বর্ণনা
  • অ্যাপ্লিকেশন ওয়েবসাইটের URL
  • সংগঠন
  • সংস্থার ওয়েবসাইটের ইউআরএল
  • পরিষেবার শর্তাবলীর URL
  • গোপনীয়তা নীতির ইউআরএল
পূরণ করার জন্য ক্ষেত্রসমূহ:
  • আবেদনের নাম
  • সহায়তার ইমেল
  • শ্রোতা (অভ্যন্তরীণ বা বাহ্যিক)
  • যোগাযোগের ইমেল
  • লোগো আইকন
  • অ্যাপ্লিকেশন ওয়েবসাইটের URL
  • গোপনীয়তা নীতির ইউআরএল
  • পরিষেবার শর্তাবলীর URL
  • অনুমোদিত ডোমেইন
আবেদনের প্রকারভেদ একজন ডেভেলপারকে নির্বাচন করতে হবে:
  • সার্ভার
  • ক্লায়েন্ট
  • ব্যক্তিগত
  • ওয়েব অ্যাপ্লিকেশন
  • অ্যান্ড্রয়েড
  • ক্রোম এক্সটেনশন
  • আইওএস
  • টিভি
  • ডেস্কটপ অ্যাপ
  • ইউনিভার্সাল উইন্ডোজ প্ল্যাটফর্ম
ক্লায়েন্ট আইডি অ্যাপ্লিকেশন সেটিংস সংরক্ষণ করার সময় নিবন্ধিত হয়। আলাদাভাবে নিবন্ধিত
অ্যাক্সেস টাইপ পঠন ও লিখন প্রবেশাধিকার অ্যাপ পর্যায়ে নিয়ন্ত্রিত হয়। স্কোপ স্তরে পঠন ও লিখন অ্যাক্সেস নিয়ন্ত্রণ করা হয়।
অতিরিক্ত ইউআরএল
  • পুনঃনির্দেশ ইউআরএল : যে সাইটে ব্যবহারকারীদের স্কোপগুলো অনুমোদন করার পর পুনঃনির্দেশিত করা হয়
  • অনুমোদিত জাভাস্ক্রিপ্ট অরিজিন : যে HTTP অরিজিনটি ওয়েব অ্যাপ্লিকেশনটি হোস্ট করে
  • পুনঃনির্দেশ ইউআরএল : যে সাইটে ব্যবহারকারীদের স্কোপগুলো অনুমোদন করার পর পুনঃনির্দেশিত করা হয়

OAuth বাস্তবায়ন

গুগল হেলথ এপিআই অ্যাপগুলো শুধুমাত্র গুগল OAuth2 ক্লায়েন্ট লাইব্রেরি সমর্থন করে। জনপ্রিয় ফ্রেমওয়ার্কগুলোর জন্য ক্লায়েন্ট লাইব্রেরিগুলো উপলব্ধ, যা OAuth 2.0 বাস্তবায়নকে আরও সহজ করে তোলে। গুগল OAuth2 লাইব্রেরি এবং ওপেন সোর্স OAuth2 লাইব্রেরির মধ্যে পার্থক্যগুলো নিম্নরূপ:

ফিটবিট ওয়েব এপিআই গুগল স্বাস্থ্য এপিআই
OAuth2 লাইব্রেরি সমর্থন ওপেন সোর্স গুগল OAuth2 ক্লায়েন্ট লাইব্রেরি
কার্যকারিতা বিভিন্ন প্ল্যাটফর্মে অসামঞ্জস্যপূর্ণ প্ল্যাটফর্ম জুড়ে সামঞ্জস্যপূর্ণ
অনুমোদন ইউআরএল https://www.fitbit.com/oauth2/authorize https://accounts.google.com/o/oauth2/v2/auth
টোকেন ইউআরএল https://api.fitbit.com/oauth2/token https://oauth2.googleapis.com/token
অ্যাক্সেস টোকেনের জীবনকাল ৮ ঘন্টা ১ ঘন্টা
অ্যাক্সেস টোকেনের আকার ১০২৪ বাইট ২০৪৮ বাইট
রিফ্রেশ টোকেন অথরাইজেশন কোড গ্র্যান্ট ফ্লো ব্যবহার করার সময় রিফ্রেশ টোকেন তৈরি হয়। একজন ব্যবহারকারীর জন্য কেবল ১টি রিফ্রেশ টোকেন তৈরি করা যায়। টোকেনগুলোর কোনো মেয়াদ শেষ হয় না এবং এগুলো শুধুমাত্র একবারই ব্যবহার করা যায়। একটি রিফ্রেশ টোকেন তৈরি করতে, অথরাইজেশন স্ট্রিং-এ অবশ্যই "access_type=offline" কোয়েরি প্যারামিটারটি থাকতে হবে। একজন ব্যবহারকারীর জন্য একাধিক রিফ্রেশ টোকেন তৈরি করা যেতে পারে। রিফ্রেশ টোকেন সময়-ভিত্তিক হতে পারে। যদি সেগুলি ৬ মাসের মধ্যে ব্যবহার না করা হয়, ব্যবহারকারী সময়-ভিত্তিক অ্যাক্সেস প্রদান করেন, অথবা অ্যাপটি "টেস্টিং" মোডে থাকে, তাহলে সেগুলির মেয়াদ শেষ হয়ে যাবে। আরও বিস্তারিত জানতে রিফ্রেশ টোকেনের মেয়াদ শেষ হওয়া দেখুন।
টোকেন প্রতিক্রিয়া JSON প্রতিক্রিয়াতে রয়েছে:
  • অ্যাক্সেস টোকেন
  • অ্যাক্সেস টোকেনের মেয়াদ শেষ হওয়া
  • পরিধি
  • টোকেন টাইপ
  • রিফ্রেশ টোকেন
  • ব্যবহারকারী আইডি
JSON প্রতিক্রিয়াতে রয়েছে:
  • অ্যাক্সেস টোকেন
  • অ্যাক্সেস টোকেনের মেয়াদ শেষ হওয়া
  • পরিধি
  • টোকেন টাইপ
  • রিফ্রেশ টোকেন

ইউজার আইডি পেতে users.getIdentity এন্ডপয়েন্টটি ব্যবহার করুন।

Fitbit ব্যবহারকারীদের আপনার নতুন ইন্টিগ্রেশনের জন্য পুনরায় সম্মতি দিতে হবে, কারণ আপনার অ্যাপটি একটি ভিন্ন OAuth লাইব্রেরি ব্যবহার করছে। অ্যাক্সেস টোকেন এবং রিফ্রেশ টোকেন Google Health API-তে স্থানান্তর করা এবং সেগুলোকে কার্যকর করা সম্ভব নয়।

স্কোপ

গুগল হেলথ এপিআই স্কোপ ব্যবহার করার জন্য আপনাকে অবশ্যই আপনার অনুমোদন অনুরোধটি আপডেট করতে হবে। স্কোপগুলো নির্ধারণ করে যে আপনার অ্যাপটি রিড বা রাইট অপারেশন সমর্থন করে কিনা। আপনার অ্যাপের জন্য অপ্রয়োজনীয় স্কোপ ব্যবহার করবেন না। আপনার অ্যাপের ডিজাইন পরিবর্তিত হলে আপনি পরবর্তীতে যেকোনো সময় আরও স্কোপ যোগ করতে পারেন।

গুগল হেলথ এপিআই স্কোপগুলো হলো একটি HTTP URL যা https://www.googleapis.com/auth/googlehealth.{scope} দিয়ে শুরু হয়। উদাহরণস্বরূপ, https://www.googleapis.com/auth/googlehealth.activity_and_fitness।

স্কোপ ম্যাপিং

ফিটবিট ওয়েব এপিআই স্কোপগুলো গুগল হেলথ এপিআই স্কোপের সাথে যেভাবে সংযুক্ত হয়, তা নিচে দেওয়া হলো:

সারণি: ফিটবিট ওয়েব এপিআই থেকে গুগল হেলথ এপিআই স্কোপ ম্যাপিং
ফিটবিট ওয়েব এপিআই স্কোপ গুগল হেলথ এপিআই স্কোপ
কার্যকলাপ .কার্যকলাপ_এবং_ফিটনেস
.activity_and_fitness.readonly
কার্ডিও_ফিটনেস .কার্যকলাপ_এবং_ফিটনেস
.activity_and_fitness.readonly
হৃদস্পন্দন স্বাস্থ্য_মেট্রিক্স_এবং_পরিমাপ
.health_metrics_and_measurements.readonly
অবস্থান .location.readonly
পুষ্টি পুষ্টি
.nutrition.readonly
অক্সিজেন_স্যাচুরেশন স্বাস্থ্য_মেট্রিক্স_এবং_পরিমাপ
.health_metrics_and_measurements.readonly
প্রোফাইল প্রোফাইল
.profile.readonly
শ্বাস-প্রশ্বাসের হার স্বাস্থ্য_মেট্রিক্স_এবং_পরিমাপ
.health_metrics_and_measurements.readonly
সেটিংস .সেটিংস
.settings.readonly
ঘুম ঘুম
.sleep.readonly
তাপমাত্রা স্বাস্থ্য_মেট্রিক্স_এবং_পরিমাপ
.health_metrics_and_measurements.readonly
ওজন স্বাস্থ্য_মেট্রিক্স_এবং_পরিমাপ
.health_metrics_and_measurements.readonly

ডেটা টাইপ

এখানে গুগল হেলথ এপিআই ডেটা টাইপগুলোর একটি তালিকা এবং ফিটবিট ওয়েব এপিআই-এর সাথে সেগুলোর সামঞ্জস্য তুলে ধরা হলো।

সারণি: ফিটবিট ওয়েব এপিআই থেকে গুগল হেলথ এপিআই ডেটা টাইপ ম্যাপিং
ফিটবিট ওয়েব এপিআই ডেটা টাইপ গুগল হেলথ এপিআই ডেটা টাইপ
এন্ডপয়েন্ট আইডি
সক্রিয় অঞ্চলের মিনিট সক্রিয় অঞ্চলের মিনিট
active-zone-minutes
ব্যবহারকারীর কার্যকলাপের স্তরের পরিবর্তন অন্তর্ভুক্ত। কার্যকলাপের স্তর
activity-level
উচ্চতা উচ্চতা
altitude
শরীরের চর্বি শরীরের চর্বি
body-fat
প্রতিটি হার্ট রেট জোনে caloriesOut হার্ট রেট জোনে ক্যালোরি
calories-in-heart-rate-zone
এইচআরভি সারাংশ দৈনিক হৃদস্পন্দন পরিবর্তনশীলতা
daily-heart-rate-variability
SpO2 সারাংশ দৈনিক অক্সিজেন স্যাচুরেশন
daily-oxygen-saturation
বিশ্রামের সময় হৃদস্পন্দন দৈনিক বিশ্রামকালীন হৃদস্পন্দন
daily-resting-heart-rate
ত্বকের তাপমাত্রা দৈনিক ঘুমের তাপমাত্রা নির্ণয়
daily-sleep-temperature-derivations
দূরত্ব দূরত্ব
distance
রেকর্ডকৃত কার্যকলাপ ব্যায়াম
exercise
মেঝে মেঝে
floors
হৃদস্পন্দন হৃদস্পন্দন
heart-rate
এইচআরভি ইন্ট্রাডে হৃদস্পন্দন পরিবর্তনশীলতা
heart-rate-variability
SpO2 ইন্ট্রাডে অক্সিজেন স্যাচুরেশন
oxygen-saturation
ব্যবহারকারী যখন দৌড়ায় তখন VO2 Max এর মান রান ভিও২ ম্যাক্স
run-vo2-max
কার্যকলাপের সময় সিরিজ মিনিট নিষ্ক্রিয় নিষ্ক্রিয় সময়কাল
sedentary-period
ঘুম ঘুম
sleep
পদক্ষেপ পদক্ষেপ
steps
কার্যকলাপের ফলে caloriesOut মোট ক্যালোরি
total-calories
VO2 সর্বোচ্চ মান ভিও২ ম্যাক্স
vo2-max
ওজন ওজন
weight

এন্ডপয়েন্ট

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 (ইন্ট্রাডে) যেখানে আপনি সূক্ষ্ম ডেটার জন্য অনুরোধ করছেন তালিকা পদ্ধতি
তারিখ বা ব্যবধান অনুসারে সময় সিরিজ (GET) তারিখের পরিসর সহ rollUp বা dailyRollUp পদ্ধতি
GET (লগ তালিকা) তালিকা পদ্ধতি
লগ তৈরি ও আপডেট করুন প্যাচ পদ্ধতি
লগ মুছে ফেলুন ব্যাচডিলিট পদ্ধতি
প্রোফাইল পান users.getProfile ব্যবহারকারীর নির্দিষ্ট তথ্য ফেরত দেয়।
users.getSettings ব্যবহারকারীর ইউনিট এবং টাইমজোন ফেরত দেয়।
প্রোফাইল আপডেট করুন users.updateProfile ব্যবহারকারীর নির্দিষ্ট তথ্য পরিবর্তন করে।
users.updateSettings ব্যবহারকারীর ইউনিট এবং টাইমজোন পরিবর্তন করে।
ব্যবহারকারী আইডি পান users.getIdentity ব্যবহারকারীর Fitbit লিগ্যাসি এবং Google ইউজার আইডি ফেরত দেয়।

আপনার ব্যবহারকারীদের স্থানান্তর করুন

Fitbit Web API থেকে Google Health API-তে স্থানান্তরিত হওয়াটা শুধু একটি প্রযুক্তিগত আপডেট নয়। OAuth লাইব্রেরি পরিবর্তনের কারণে আপনার ব্যবহারকারীদের নতুন ইন্টিগ্রেশনের জন্য পুনরায় সম্মতি দিতে হবে। অ্যাক্সেস টোকেন এবং রিফ্রেশ টোকেন Google Health API-তে স্থানান্তর করে কার্যকর করা সম্ভব নয়। আপনার মাইগ্রেশন চলাকালীন ব্যবহারকারী ধরে রাখতে সাহায্য করার জন্য, একটি সফল স্থানান্তরের লক্ষ্যে এখানে কিছু প্রযুক্তিগত এবং কৌশলগত পরামর্শ দেওয়া হলো।

দ্বৈত-লাইব্রেরি কৌশল

যেহেতু Fitbit Web API এবং Google Health API ভিন্ন ভিন্ন OAuth2 লাইব্রেরি ব্যবহার করে, তাই আপনাকে এমন একটি 'ব্রিজিং' পর্যায় পরিচালনা করতে হবে যেখানে আপনার কোডবেসে উভয় লাইব্রেরিই বিদ্যমান থাকে।

সমান্তরাল অনুমোদন ব্যবস্থাপনা

  • ক্লায়েন্ট এনক্যাপসুলেট করুন : আপনার "হেলথ সার্ভিস"-এর জন্য একটি অ্যাবস্ট্রাকশন লেয়ার বা ইন্টারফেস তৈরি করুন। এর ফলে, কোনো নির্দিষ্ট ব্যবহারকারীর জন্য কোন লাইব্রেরি (ফিটবিট OAuth বনাম গুগল OAuth) সক্রিয় আছে তা না জেনেই আপনার অ্যাপের বাকি অংশ ডেটার জন্য অনুরোধ করতে পারে।
  • ডাটাবেস স্কিমা আপডেট : আপনার ইউজার টেবিলে একটি oauth_type ফ্ল্যাগ অন্তর্ভুক্ত করতে তা আপডেট করুন। উদাহরণস্বরূপ, Fitbit OAuth-এর জন্য fitbit এবং Google OAuth-এর জন্য google ব্যবহার করুন।
    • নতুন ব্যবহারকারী : ডিফল্ট হিসেবে গুগল হেলথ এপিআই এবং গুগল ওঅথ লাইব্রেরি ব্যবহৃত হবে। oauth_type কে google এ সেট করুন।
    • বিদ্যমান ব্যবহারকারীগণ : পুনরায় সম্মতি প্রক্রিয়াটি সম্পন্ন না করা পর্যন্ত Fitbit Web API-তে থাকুন। oauth_type কে fitbit এ সেট করুন।

"স্টেপ-আপ" পুনঃসম্মতি প্রবাহ

জোরপূর্বক লগআউট করার পরিবর্তে, পর্যায়ক্রমিক অনুমোদন পদ্ধতি ব্যবহার করুন:

  1. ফিটবিট ওপেন সোর্স টোকেন সনাক্ত করুন : যখন কোনো ফিটবিট ওয়েব এপিআই ব্যবহারকারী অ্যাপটি খুলবেন, তখন একটি "সার্ভিস আপডেট" বিজ্ঞপ্তি চালু করুন।
  2. Google OAuth ফ্লো চালু করুন : যখন ব্যবহারকারী "আপডেট" বোতামে ক্লিক করবেন, তখন Google OAuth2 লাইব্রেরি ফ্লোটি চালু হবে।
  3. প্রতিস্থাপন ও প্রত্যাহার : গুগল OAuth টোকেন সফলভাবে পেয়ে গেলে, সেটি ব্যবহারকারীর প্রোফাইলে সংরক্ষণ করুন, oauth_type fitbit থেকে google এ আপডেট করুন, এবং (যদি সম্ভব হয়) ব্যবহারকারীর নিরাপত্তা প্রোফাইল পরিষ্কার রাখতে প্রোগ্রাম্যাটিকভাবে পুরোনো fitbit টোকেনটি প্রত্যাহার করুন।

ব্যবহারকারী ধরে রাখার হার সর্বোচ্চ করুন

পুনরায় সম্মতি চাওয়া ব্যবহারকারী চলে যাওয়ার একটি 'বিপজ্জনক ক্ষেত্র'। ব্যবহারকারীরা যাতে অ্যাপটি ব্যবহার করা ছেড়ে না দেয়, তা নিশ্চিত করতে এই ইউএক্স (UX) সেরা অনুশীলনগুলো অনুসরণ করুন:

"মূল্য-প্রথম" যোগাযোগ

"আমরা আমাদের এপিআই আপডেট করেছি" এই কথা দিয়ে শুরু করবেন না। বরং গুগল-সমর্থিত নতুন সিস্টেমটির সুবিধাগুলো দিয়ে শুরু করুন:

  • উন্নত নিরাপত্তা : গুগলের শীর্ষস্থানীয় অ্যাকাউন্ট সুরক্ষা এবং ২এফএ (2FA)-এর উল্লেখ করুন।
  • নির্ভরযোগ্যতা : দ্রুততর সিঙ্ক এবং অধিকতর স্থিতিশীল ডেটা সংযোগ।
  • ফিচার গেটিং : ব্যবহারকারীদের নম্রভাবে জানান যে নতুন ফিচার এবং ডেটা টাইপের জন্য আপডেট প্রয়োজন।

স্মার্ট টাইমিং

  • গুরুত্বপূর্ণ কাজে বাধা দেবেন না : কোনো ব্যবহারকারী যখন ব্যায়াম করছেন বা খাবারের তথ্য লিপিবদ্ধ করছেন, তখন কখনোই পুনঃসম্মতি স্ক্রিনটি চালু করবেন না।
  • ‘নাজ’ পর্যায় : প্রথম ৩০ দিনের জন্য, একটি বাতিলযোগ্য ব্যানার ব্যবহার করুন।
  • "হার্ড কাটঅফ" পর্যায় : বেশ কয়েক সপ্তাহ ধরে সতর্ক করার পর, অফিসিয়াল ফিটবিট ওয়েব এপিআই (Fitbit Web API) বাতিলের শেষ তারিখের সাথে মিলিয়ে, পুনরায় সম্মতি বাধ্যতামূলক করা।

অভিবাসন প্রবাহের তুলনা

পুরানো এবং নতুন ফ্লো-এর মধ্যে একটি সুস্পষ্ট দৃশ্যমান পার্থক্য ডেভেলপারদের বুঝতে সাহায্য করে যে লজিকটি কোথায় বিভক্ত হয়েছে।

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

অ্যাকাউন্ট মাইগ্রেশনের সূক্ষ্মতা সামলান

ফিটবিটের ডকুমেন্টেশন অনুসারে, ব্যবহারকারীরা তাদের অ্যাকাউন্ট গুগলে স্থানান্তর করলে সাধারণত সঙ্গে সঙ্গে তাদের থার্ড-পার্টি সংযোগগুলো হারান না, কিন্তু এপিআই (API) ভার্সন পরিবর্তন করা ডেভেলপারদের পক্ষ থেকে একটি আবশ্যিক কাজ।

  • টোকেনের বৈধতা যাচাই করুন : Fitbit টোকেনগুলো "Unauthorized" ত্রুটির কারণে ব্যর্থ হচ্ছে কিনা তা পরীক্ষা করতে একটি backgroundworker ব্যবহার করুন। এটি ইঙ্গিত দিতে পারে যে ব্যবহারকারী তার অ্যাকাউন্ট স্থানান্তর করেছেন কিন্তু আপনার অ্যাপটি এখনও তার সাথে তাল মেলাতে পারেনি।
  • সুষ্ঠু ব্যর্থতা : যদি কোনো Fitbit OAuth কল ব্যর্থ হয়, তবে ব্যবহারকারীকে একটি কাস্টম "Reconnect Fitbit" পৃষ্ঠায় পুনঃনির্দেশিত করুন যা বিশেষভাবে নতুন Google OAuth ফ্লো ব্যবহার করে।

কোডের উদাহরণ

পুরোনো Fitbit Web API থেকে Google Health API-তে স্থানান্তরিত হতে হলে, আপনাকে সাধারণ OAuth2 লাইব্রেরিগুলো থেকে Google Auth লাইব্রেরিতে যেতে হবে। এই "দ্বৈত-লাইব্রেরি" অবস্থাটি পরিচালনা করার জন্য নিচে একটি স্থাপত্যগত পরামর্শ এবং জাভাস্ক্রিপ্টে লেখা একটি সিউডো-কোড বাস্তবায়ন দেওয়া হলো।

১. "মিডলওয়্যার সুইচ"

যেহেতু আপনি একবারে সমস্ত ব্যবহারকারীকে মাইগ্রেট করতে পারবেন না, তাই আপনার ডেটাবেসে সংরক্ষিত ব্যবহারকারীর বর্তমান apiVersion উপর ভিত্তি করে কোন লাইব্রেরি ব্যবহার করতে হবে তা আপনার ব্যাকএন্ডকে নির্ধারণ করতে হবে।

বাস্তবায়ন

const { OAuth2Client } = require('google-auth-library');
const FitbitV1Strategy = require('fitbit-oauth2-library').Strategy;

// 1. Initialize the Google Health API Client
const GHAClient = new OAuth2Client(
  process.env.GOOGLE_CLIENT_ID,
  process.env.GOOGLE_CLIENT_SECRET,
  process.env.REDIRECT_URI
);

// 2. Create a Unified Fetcher
async function fetchSteps(user) {
  if (user.apiVersion === 4) {
    // ---- GOOGLE OAUTH LIBRARY LOGIC ----
    GHAClient.setCredentials({ refresh_token: user.refreshToken });
    const url = 'GET https://health.googleapis.com/v4/users/me/dataTypes/steps/dataPoints';
    const res = await GHAClient.request({ url });
    return res.data;
  } else {
    // ---- FITBIT WEB API LEGACY LOGIC ----
    // Use your existing Fitbit open-source library logic here
    return callLegacyV1Api(user.accessToken);
  }
}

২. ইউএক্স ফ্লো স্থানান্তর করুন

ব্যবহারকারী ধরে রাখার হার সর্বোচ্চ করতে, একটি "ইন্টারাপ্ট-অ্যান্ড-আপগ্রেড" প্যাটার্ন ব্যবহার করুন। এটি নিশ্চিত করে যে ব্যবহারকারী অ্যাপটির সাথে যুক্ত না হওয়া পর্যন্ত তাকে পুনরায় লগইন করতে বাধ্য করা হবে না।

পুনঃনির্দেশ যুক্তি

যখন কোনো Fitbit ওয়েব এপিআই ব্যবহারকারী একটি নির্দিষ্ট ফিচারে ক্লিক করেন, তখন মাইগ্রেশনটি চালু করুন:

app.get('/dashboard', async (req, res) => {
  const user = await db.users.find(req.user.id);

  if (user.apiVersion === 1) {
    // Render a "soft" migration page explaining the Google transition
    return res.render('migrate-to-google', {
      title: "Keep your data syncing",
      message: "Fitbit is moving to Google accounts. Re-connect now to stay updated."
    });
  }

  const data = await fetchSteps(user);
  res.render('dashboard', { data });
});

৩. মূল প্রযুক্তিগত পরিবর্তন

আপনার জাভাস্ক্রিপ্ট মাইগ্রেশন স্ক্রিপ্ট লেখার সময় এই পার্থক্যগুলো মনে রাখবেন:

বৈশিষ্ট্য ফিটবিট ওয়েব এপিআই (লেগ্যাসি) গুগল হেলথ এপিআই (গুগল-আইডেন্টিটি)
টোকেন এন্ডপয়েন্ট https://api.fitbit.com/oauth2/token https://oauth2.googleapis.com/token
প্রমাণীকরণ গ্রন্থাগার স্ট্যান্ডার্ড ওপেন সোর্স গুগল প্রমাণীকরণ
পরিধি কার্যকলাপ https://www.googleapis.com/auth/googlehealth.activity_and_fitness
ব্যবহারকারীর আইডি /oauth2/token প্রতিক্রিয়ায় Fitbit এনকোডেড আইডি ফেরত এসেছে users.getIdentity এন্ডপয়েন্ট থেকে প্রাপ্ত ইউজার আইডি

৪. ধরে রাখার চেকলিস্ট

  • সেশন স্থায়িত্ব : Google Health API access_token সফলভাবে যাচাই এবং আপনার ডেটাবেসে সংরক্ষিত না হওয়া পর্যন্ত ব্যবহারকারীর পুরানো Fitbit Web API সেশনটি মুছে ফেলবেন না।
  • স্বয়ংক্রিয় প্রত্যাহার : গুগল হেলথ এপিআই মাইগ্রেশন সম্পন্ন হয়ে গেলে, লিগ্যাসি ফিটবিট রিভোক এন্ডপয়েন্টে (https://api.fitbit.com/oauth2/revoke) একটি POST রিকোয়েস্ট পাঠান। এটি নিশ্চিত করে যে ব্যবহারকারী তার ফিটবিট সেটিংসে কোনো "ডুপ্লিকেট" অ্যাপ পারমিশন দেখতে পাবেন না।
  • ত্রুটি পরিচালনা : যদি কোনো ফিটবিট কল 401 Unauthorized ত্রুটি ফেরত দেয়, তাহলে ত্রুটির বার্তা দেখানোর পরিবর্তে স্বয়ংক্রিয়ভাবে Google OAuth ফ্লো-তে রিডাইরেক্ট করুন।