OAuth2 প্লেগ্রাউন্ড ব্যবহার করে আপনার প্রথম গুগল হেলথ এপিআই কলটি করুন

১. ভূমিকা

OAuth 2.0 প্লেগ্রাউন্ড হলো একটি ওয়েব-ভিত্তিক টুল যা আপনাকে কোনো কোড না লিখেই গুগল OAuth 2.0 ফ্লো পরীক্ষা করতে সাহায্য করে। এই কোডল্যাবটি আপনাকে দেখাবে কীভাবে আপনার গুগল ক্লাউড প্রজেক্ট সেটআপ করতে হয়, ক্রেডেনশিয়াল সংগ্রহ করতে হয়, OAuth 2.0 প্লেগ্রাউন্ড ব্যবহার করে অথরাইজেশন ফ্লো শুরু করতে হয় এবং গুগল হেলথ এপিআই-এর যেকোনো একটি এন্ডপয়েন্টে আপনার প্রথম কলটি করতে হয়।

আপনি যা শিখবেন

  • গুগল ক্লাউড কনসোলে কীভাবে একটি ক্লায়েন্ট আইডি সেট আপ করবেন।
  • OAuth 2.0 প্লেগ্রাউন্ড ব্যবহার করে কীভাবে গুগল OAuth 2.0 অথরাইজেশন ফ্লো অনুসরণ করে অ্যাক্সেস টোকেন এবং রিফ্রেশ টোকেন পাওয়া যায়।
  • OAuth 2.0 প্লেগ্রাউন্ড ব্যবহার করে কীভাবে গুগল হেলথ এপিআই এন্ডপয়েন্টগুলিতে কল করতে হয়।

আপনার যা যা লাগবে

Fitbit মোবাইল অ্যাপ সেট আপ করতে:

  1. অ্যাপল অ্যাপ স্টোর অথবা গুগল প্লে স্টোর থেকে ফিটবিট মোবাইল অ্যাপটি খুঁজে ডাউনলোড করুন।
  2. অ্যাপ আইকনটি নির্বাচন করুন।
  3. Google দিয়ে সাইন ইন-এ ক্লিক করুন।
  4. আপনার গুগল অ্যাকাউন্টটি নির্বাচন করুন এবং ' চালিয়ে যান ' বোতামটি চাপুন।

২. গুগল ক্লাউড প্রজেক্ট সেটআপ করুন

আপনি গুগল ক্লাউড কনসোল ব্যবহার করে একটি ক্লায়েন্ট আইডি তৈরি করবেন এবং গুগল হেলথ এপিআই-এর ব্যবহার সক্রিয় করবেন।

  1. গুগল ক্লাউড কনসোলে সাইন ইন করুন।
  2. একটি নতুন প্রকল্প তৈরি করতে:
    1. প্রজেক্ট পিকার থেকে একটি প্রজেক্ট নির্বাচন করুন
    2. উপরের ডান কোণায়, নতুন প্রজেক্ট নির্বাচন করুন।
    3. আপনার প্রকল্পের নাম লিখুন।
    4. আপনার অবস্থান লিখুন (উদাহরণস্বরূপ, "কোনো প্রতিষ্ঠান নেই")।
    5. Create বাটনটিতে ক্লিক করুন।
    6. আপনার প্রকল্পটি নির্বাচন করুন।

Google Health API সক্রিয় করুন

  1. উপরের বাম কোণায়, মেনু আইকনটিতে ক্লিক করুন:মেনু
  2. এপিআই ও পরিষেবা > লাইব্রেরি নির্বাচন করুন।
  3. 'Google Health API' অনুসন্ধান করুন এবং এটি সক্রিয় করুন।

আপনার OAuth ক্রেডেনশিয়াল সেটআপ করুন।

আপনি যদি গুগল ক্লাউড কনসোলে না থাকেন, তাহলে গুগল ক্লাউড কনসোলে যান।

  1. উপরের বাম কোণায়, মেনু আইকনটিতে ক্লিক করুন:মেনু
  2. এপিআই ও পরিষেবা > পরিচয়পত্র নির্বাচন করুন।
  3. উপরে মাঝখানে, + Create Credentials > OAuth client ID নির্বাচন করুন।
  4. ‘Configure consent screen’ বোতামে ক্লিক করুন। যদি "Google Auth Platform not configured yet" বার্তাটি প্রদর্শিত হয়, তাহলে ‘Get Started’ বোতামে ক্লিক করুন।
  5. অনুচ্ছেদ ১-এ:
    1. অ্যাপের নাম লিখুন।
    2. ব্যবহারকারী সহায়তার ইমেলটি প্রবেশ করান।
    3. পরবর্তী বোতামে ক্লিক করুন।
  6. অনুচ্ছেদ ২-এ:
    1. বাহ্যিক নির্বাচন করুন।
    2. পরবর্তী বোতামে ক্লিক করুন।
  7. অনুচ্ছেদ ৩-এ:
    1. যোগাযোগের তথ্য ক্ষেত্রে আপনার ইমেল ঠিকানা লিখুন।
    2. পরবর্তী বোতামে ক্লিক করুন।
  8. অনুচ্ছেদ ৪-এ:
    1. গুগলের এপিআই পরিষেবা ব্যবহারকারীর তথ্য নীতিতে সম্মত হতে চেকবক্সটিতে ক্লিক করুন।
    2. Create বাটনটিতে ক্লিক করুন।
  9. APIs & Services > Credentials- এ যান এবং + Create Credentials > OAuth client ID নির্বাচন করুন।
  10. অ্যাপ্লিকেশন টাইপ হিসেবে ওয়েব অ্যাপ্লিকেশন নির্বাচন করুন।
  11. ক্লায়েন্ট আইডি নামটি প্রবেশ করান।
  12. অনুমোদিত জাভাস্ক্রিপ্ট উৎস খালি রাখুন।
  13. অনুমোদিত রিডাইরেক্ট ইউআরআই (Authorized redirect URIs)- এর অধীনে, + ইউআরআই যোগ করুন (+ Add URI)- এ ক্লিক করুন এবং নিম্নলিখিত ইউআরআইগুলো যোগ করুন:
    • https://www.google.com
    • https://developers.google.com/oauthplayground
  14. Create বাটনটিতে ক্লিক করুন।
  15. গুগল কনসোলে একটি বার্তা দেখানো হবে যে আপনার ক্লায়েন্ট আইডি তৈরি হয়েছে। ক্লায়েন্ট আইডি এবং ক্লায়েন্ট সিক্রেট ডাউনলোড করতে হয় 'Download JSON' লিঙ্কে ক্লিক করুন, অথবা মানগুলো লিখে রাখুন। এরপর আপনি আপনার ক্লায়েন্টের সিক্রেট পুনরুদ্ধার করতে পারবেন না।
  16. OK- তে ক্লিক করুন। আপনি "OAuth 2.0 ক্লায়েন্ট আইডি" পৃষ্ঠায় ফিরে আসবেন।
  17. আপনার ক্লায়েন্ট আইডি আপনার প্রজেক্টে যুক্ত করা হবে। বিস্তারিত দেখতে ক্লায়েন্ট আইডি ইউআরএল-এ ক্লিক করুন।

পরীক্ষামূলক ব্যবহারকারী যোগ করুন

  1. বাম দিকের প্যানে, 'Audience' নির্বাচন করুন। আপনি দেখবেন 'Publishing status'-এর মান 'Testing ' এবং 'User type'-এর মান ' External ' সেট করা আছে।
  2. "টেস্ট ইউজার্স" সেকশনের অধীনে, "+ অ্যাড ইউজার্স" বোতামে ক্লিক করুন। যে ব্যবহারকারীর ডেটা আপনি পুনরুদ্ধার করতে চান, তার ইমেল ঠিকানাটি লিখুন।
  3. সেভ বাটনে ক্লিক করুন।

ক্লায়েন্ট আইডিতে স্কোপ যোগ করুন

  1. বাম প্যানে, ডেটা অ্যাক্সেস নির্বাচন করুন।
  2. স্কোপ যোগ বা অপসারণ করুন বোতামটিতে ক্লিক করুন।
  3. API কলামে, 'Google Health API' অনুসন্ধান করুন। এই কোডল্যাবের জন্য আমরা .../auth/googlehealth.activity_and_fitness.readonly স্কোপটি ব্যবহার করছি।
  4. পরিধি নির্বাচন করার পর, ডেটা অ্যাক্সেস পৃষ্ঠায় ফিরে যেতে আপডেট বোতামটি চাপুন।
  5. সেভ বাটনে ক্লিক করুন।

আপনি আপনার ক্লায়েন্ট আইডি সেট আপ করা শেষ করেছেন।

৩. ফিটবিট মোবাইল অ্যাপে ডেটা যোগ করুন

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

  1. আপনার ডিভাইসে Fitbit মোবাইল অ্যাপটি খুলুন। প্রয়োজনে আপনার Fitbit অ্যাকাউন্টে সাইন ইন করুন।
  2. স্ক্রিনের নিচের ডান কোণায় থাকা + বোতামটিতে ট্যাপ করুন।
  3. 'ম্যানুয়ালি লগ' বিভাগে, অ্যাক্টিভিটিতে ট্যাপ করুন।
  4. 'হাঁটা' (Walk) ব্যায়ামের ধরণটি অনুসন্ধান করুন এবং এটি নির্বাচন করুন।
  5. আজকের জন্য একটি শুরুর সময় লিখুন।
  6. সময়কাল পরিবর্তন করে ১৫ মিনিট করুন।
  7. দূরত্ব ১.০ মাইল রাখুন।
  8. যোগ করুন-এ ট্যাপ করুন
  9. মোবাইল অ্যাপটিকে ফিটবিট সার্ভারের সাথে সিঙ্ক করতে স্ক্রিনে দীর্ঘক্ষণ চাপ দিয়ে আঙুলটি নিচের দিকে স্লাইড করুন। আঙুল ছেড়ে দিলে আপনি মোবাইল অ্যাপটি সিঙ্ক হতে দেখবেন।
  10. "অ্যাক্টিভিটি" বিভাগে, আপনি আপনার হাতে লেখা 'Walk' এন্ট্রিটি দেখতে পাবেন। হাঁটার কার্যকলাপ দেখানো স্ক্রিনশট।

৪. OAuth 2.0 প্লেগ্রাউন্ডে অনুমোদন করুন

OAuth 2.0 প্লেগ্রাউন্ডে যান।

গুগল হেলথ এপিআই ব্যবহারের জন্য প্লেগ্রাউন্ডে আপনার নিজস্ব OAuth ক্রেডেনশিয়াল ব্যবহার করতে হবে।

  1. উপরের ডানদিকে থাকা OAuth 2.0 কনফিগারেশন গিয়ার আইকনটিতে ক্লিক করুন।
  2. আপনার নিজের OAuth ক্রেডেনশিয়াল ব্যবহার করুন নির্বাচন করুন।
  3. গুগল ক্লাউড প্রজেক্ট সেটআপের সময় প্রাপ্ত OAuth ক্লায়েন্ট আইডি এবং OAuth ক্লায়েন্ট সিক্রেট প্রবেশ করান।

প্লেগ্রাউন্ড ইন্টারফেসটি তিনটি প্রধান ধাপে বিভক্ত, যা আমরা অনুসরণ করব:

  1. এপিআই নির্বাচন ও অনুমোদন করুন
  2. টোকেনগুলির জন্য বিনিময় অনুমোদন কোড
  3. এপিআই-তে একটি অনুরোধ পাঠান

এপিআই নির্বাচন ও অনুমোদন করুন

এখান থেকেই আপনি যে এপিআই স্কোপগুলোর জন্য অনুরোধ করতে চান, তা বেছে নেবেন।

  1. ধাপ ১- এ, API-গুলোর তালিকা থেকে Google Health API v4 খুঁজে বের করুন এবং সেটিকে প্রসারিত করুন।
  2. https://www.googleapis.com/auth/googlehealth.activity_and_fitness.readonly নির্বাচন করুন। যদি আপনার প্রয়োজনীয় স্কোপটি তালিকায় প্রদর্শিত না হয়, তবে আপনি "আপনার নিজস্ব স্কোপ ইনপুট করুন" ফিল্ডে এটি ম্যানুয়ালি প্রবেশ করাতে পারেন।
  3. API অনুমোদন করুন- এ ক্লিক করুন।
  4. গুগলের OAuth 2.0 অনুমোদন এন্ডপয়েন্টে একটি অনুরোধ পাঠানো হয়, অনুরোধটিতে নির্বাচিত স্কোপগুলো অন্তর্ভুক্ত করা হয় এবং তারপরে আপনাকে গুগল অ্যাকাউন্ট সম্মতি স্ক্রিনে পুনঃনির্দেশিত করা হয়।
  5. গুগল ক্লাউড প্রজেক্ট সেটআপ বিভাগে আপনার কনফিগার করা একটি টেস্ট ইউজার অ্যাকাউন্ট দিয়ে সাইন ইন করুন (যদি আগে থেকে সাইন ইন করা না থাকে)।
  6. অনুরোধ করা অনুমতিগুলো পর্যালোচনা করুন এবং অ্যাক্সেস মঞ্জুর করতে ' চালিয়ে যান' -এ ক্লিক করুন।

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

ডানদিকের রিকোয়েস্ট / রেসপন্স প্যানেলটি সম্পূর্ণ HTTP রিডাইরেকশন ফ্লো প্রদর্শন করে।

প্রাথমিক অনুমোদন অনুরোধের প্রতিক্রিয়া হল একটি 302 Found রিডাইরেক্ট:

HTTP/1.1 302 Found
Location: https://accounts.google.com/o/oauth2/v2/auth?redirect_uri=https%3A%2F%2Fdevelopers.google.com%2Foauthplayground&prompt=consent&response_type=code&client_id=your_client_id&scope=https%3A%2F%2Fwww.googleapis.com%2Fauth%2Fgooglehealth.activity_and_fitness.readonly&access_type=offline

প্লেগ্রাউন্ডে পুনঃনির্দেশিত অনুরোধটিতে অনুমোদন কোডটি থাকে:

GET /oauthplayground/?iss=https://accounts.google.com&code=authorization_code&scope=https://www.googleapis.com/auth/googlehealth.activity_and_fitness.readonly HTTP/1.1
Host: developers.google.com

অথরাইজেশন কোড হলো একটি আলফানিউমেরিক ভ্যালু, যা GET রিকোয়েস্ট URL-এ code= এবং &scope মধ্যে authorization_code দ্বারা প্রকাশ করা হয়। এই উদাহরণে, ভ্যালুটি দেখতে অনেকটা এরকম: 4/0AbPOj...

টোকেনগুলির জন্য বিনিময় অনুমোদন কোড

এই ধাপে, কোডটি টোকেনের সাথে বিনিময় করা হয়, যা আপনাকে এপিআই (API) অনুরোধ করার অনুমতি দেয়।

এপিআই নির্বাচন ও অনুমোদন সম্পন্ন করার পর, প্লেগ্রাউন্ড স্বয়ংক্রিয়ভাবে অনুমোদন কোড ক্ষেত্রটি পূরণ করে দেয়। এটিকে টোকেনের জন্য বিনিময় করতে:

  1. ধাপ ২-থাকা টোকেনগুলির জন্য এক্সচেঞ্জ অনুমোদন কোড বোতামটিতে ক্লিক করুন।
  2. ডানদিকের রিকোয়েস্ট/রেসপন্স প্যানেলে অ্যাক্সেস টোকেন এবং রিফ্রেশ টোকেন দেখা যায়।

আপনি নিম্নলিখিতের অনুরূপ একটি প্রতিক্রিয়া দেখতে পাবেন:

{
  "access_token": "ya29.a0AFH6S....",
  "refresh_token_expires_in": 604799,
  "expires_in": 3599,
  "token_type": "Bearer",
  "scope": "https://www.googleapis.com/auth/googlehealth.activity_and_fitness.readonly",
  "refresh_token": "1/og..."
}

রিফ্রেশ টোকেন সম্পর্কে

যখন আপনি অনুমোদন কোডটি বিনিময় করেন, তখন প্রাপ্ত উত্তরে access_token পাশাপাশি একটি refresh_token ও থাকতে পারে। access_token গুলোর মেয়াদ স্বল্পস্থায়ী হয় (সাধারণত ১ ঘণ্টা)। যখন কোনো access_token মেয়াদ শেষ হয়ে যায়, তখন ব্যবহারকারীকে পুনরায় সাইন ইন বা সম্মতি দেওয়ার প্রয়োজন ছাড়াই একটি নতুন access_token পাওয়ার জন্য আপনাকে অবশ্যই refresh_token ব্যবহার করতে হবে। এটি সম্ভব হয়েছে কারণ আমরা আমাদের অনুমোদন অনুরোধে access_type=offline অন্তর্ভুক্ত করেছি।

যদি আপনি রেসপন্সে একটি refresh_token না পান, তাহলে এর কারণ হতে পারে যে আপনি ইতিমধ্যেই এই অ্যাপ এবং স্কোপগুলোর জন্য সম্মতি দিয়েছেন। রিফ্রেশ টোকেন সাধারণত তখনই ইস্যু করা হয় যখন কোনো ব্যবহারকারী প্রথমবার আপনার অ্যাপের জন্য সম্মতি দেন, অথবা যখন অথরাইজেশন URL-এ prompt=consent যোগ করা হয়, যাতে পরবর্তী অথরাইজেশনের সময়েও কনসেন্ট স্ক্রিনটি প্রদর্শিত হতে বাধ্য থাকে।

refresh_token এর মেয়াদ দীর্ঘস্থায়ী, কিন্তু ৬ মাস ধরে ব্যবহার না করা হলে, ব্যবহারকারী আপনার অ্যাপে তার অ্যাক্সেস প্রত্যাহার করলে, বা অন্য কোনো কারণে এটির মেয়াদ শেষ হয়ে যেতে পারে বা এটি অকার্যকর হয়ে যেতে পারে। ভবিষ্যতে ব্যবহারের জন্য আপনার refresh_token নিরাপদে সংরক্ষণ করা উচিত।

৫. এপিআই-তে একটি অনুরোধ পাঠান

এখন আপনি আপনার অ্যাক্সেস টোকেন ব্যবহার করে গুগল হেলথ এপিআই-তে অনুরোধ পাঠাতে পারবেন। প্লেগ্রাউন্ডের ধাপ ৩- এ, রিকোয়েস্ট ইউআরআই , এইচটিটিপি মেথড , হেডার এবং রিকোয়েস্ট বডি উল্লেখ করে আপনার এইচটিটিপি অনুরোধটি কনফিগার করুন।

  1. HTTP মেথড GET- এ সেট করুন।
  2. অনুরোধ URI https://health.googleapis.com/v4/users/me/dataTypes/exercise/dataPoints -এ সেট করুন।
  3. অনুরোধটি পাঠান-এ ক্লিক করুন।

প্রতিক্রিয়াটি দেখতে এইরকম হওয়া উচিত:

{
  "dataPoints": [
    {
      "name": "users/2515055256096816351/dataTypes/exercise/dataPoints/8896720705097069096",
      "dataSource": {
        "recordingMethod": "MANUAL",
        "platform": "FITBIT"
      },
      "exercise": {
        "interval": {
          "startTime": "2026-02-23T13:10:00Z",
          "startUtcOffset": "-18000s",
          "endTime": "2026-02-23T13:25:00Z",
          "endUtcOffset": "-18000s"
        },
        "exerciseType": "WALKING",
        "metricsSummary": {
          "caloriesKcal": 16,
          "distanceMillimiters": 1609344,
          "steps": "2038",
          "averagePaceSecondsPerMeter": 0.55923407301360051,
          "activeZoneMinutes": "0"
        },
        "exerciseMetadata": {},
        "displayName": "Walk",
        "activeDuration": "900s",
        "exerciseEvents": [
          {
            "eventTime": "2026-02-23T13:10:00Z",
            "eventUtcOffset": "-18000s",
            "exerciseEventType": "START"
          },
          {
            "eventTime": "2026-02-23T13:25:00Z",
            "eventUtcOffset": "-18000s",
            "exerciseEventType": "STOP"
          }
        ],
        "updateTime": "2026-02-24T01:19:22.450466Z"
      }
    },
    {
      "name": "users/2515055256096816351/dataTypes/exercise/dataPoints/5870930690409355408",
      "dataSource": {
        "recordingMethod": "MANUAL",
        "platform": "FITBIT"
      },
      "exercise": {
        "interval": {
          "startTime": "2026-02-23T06:00:00Z",
          "startUtcOffset": "-18000s",
          "endTime": "2026-02-23T06:15:00Z",
          "endUtcOffset": "-18000s"
        },
        "exerciseType": "WALKING",
        "metricsSummary": {
          "caloriesKcal": 17,
          "distanceMillimiters": 1609344,
          "steps": "2038",
          "averagePaceSecondsPerMeter": 0.55923407301360051,
          "averageHeartRateBeatsPerMinute": "81",
          "activeZoneMinutes": "0",
          "heartRateZoneDurations": {
            "lightTime": "900s"
          }
        },
        "exerciseMetadata": {},
        "displayName": "Walk",
        "activeDuration": "900s",
        "exerciseEvents": [
          {
            "eventTime": "2026-02-23T06:00:00Z",
            "eventUtcOffset": "-18000s",
            "exerciseEventType": "START"
          },
          {
            "eventTime": "2026-02-23T06:15:00Z",
            "eventUtcOffset": "-18000s",
            "exerciseEventType": "STOP"
          }
        ],
        "updateTime": "2026-02-23T08:29:39.480437Z"
      }
    }
  ],
  "nextPageToken": ""
}

অনেক এন্ডপয়েন্ট ফিল্টারিং বা পেজিনেশনের জন্য কোয়েরি প্যারামিটার সমর্থন করে। উদাহরণস্বরূপ, একটি নির্দিষ্ট সময়সীমার মধ্যে অনুশীলনীগুলোর তালিকা পেতে, রিকোয়েস্ট URI পরিবর্তন করে একটি ফিল্টার প্যারামিটার অন্তর্ভুক্ত করুন:

https://health.googleapis.com/v4/users/me/dataTypes/exercise/dataPoints?filter=exercise.interval.civil_start_time >= "2026-02-22T00:00:00"

ফিল্টার করা ফলাফল দেখতে আবার অনুরোধ পাঠান-এ ক্লিক করুন।

৬. অভিনন্দন

অভিনন্দন!

আপনি বেসিক কোডল্যাবটি সম্পন্ন করেছেন এবং সফলভাবে শিখেছেন কীভাবে OAuth2 Playground ব্যবহার করে OAuth 2.0 অথরাইজেশন পরীক্ষা করতে হয় ও Google Health API এন্ডপয়েন্টগুলিতে কল করতে হয়।

আমরা আশা করি আপনি গুগল হেলথ এপিআই ইকোসিস্টেমের সাথে সমন্বিত অ্যাপ তৈরি করা উপভোগ করবেন। আরও তথ্যের জন্য, রেফারেন্স ডকুমেন্টেশনে অন্যান্য গুগল হেলথ এপিআই এন্ডপয়েন্টগুলো দেখুন এবং ওয়েব সার্ভার অ্যাপ্লিকেশনের জন্য গুগল ওঅথ ২.০ সম্পর্কে আরও জানুন।