আপনার প্রথম গুগল হেলথ এপিআই কলটি করুন

১. ভূমিকা

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

আপনি যদি ভিএস কোড এবং রেস্ট ক্লায়েন্ট ব্যবহার করতে না চান, তাহলে curl কমান্ডের মাধ্যমে এপিআই কলগুলো করা যেতে পারে।

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

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

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

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

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

ভিজ্যুয়াল স্টুডিও টুলস ইনস্টল করতে:

  1. ভিএস কোড ডাউনলোড করুন। সাধারণত, ডাউনলোডের মধ্যেই এক্সিকিউটেবল ফাইলটি থাকে।
  2. ভিএস কোড চালু করুন।
  3. হুয়াচাও মাও-এর তৈরি রেস্ট ক্লায়েন্ট এক্সটেনশনটি ইনস্টল করুন।
    • এক্সটেনশন আইকনে ক্লিক করুন সম্প্রসারণ IDE-র বাম দিকে।
    • হুয়াচাও মাও-এর তৈরি REST Client অনুসন্ধান করুন এবং Install চাপুন।

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

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

  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. মেট্রিক্স বিভাগে, 'Create OAuth client' বোতামটি চাপুন।
  10. অ্যাপ্লিকেশন টাইপ হিসেবে ওয়েব অ্যাপ্লিকেশন নির্বাচন করুন।
  11. ক্লায়েন্ট আইডি নামটি প্রবেশ করান।
  12. অনুমোদিত জাভাস্ক্রিপ্ট উৎস খালি রাখুন।
  13. অনুমোদিত রিডাইরেক্ট ইউআরআই (Authorized redirect URIs)- এর অধীনে, + অ্যাড ইউআরআই (+ Add URI) বোতামটি চাপুন। আপনার রিডাইরেক্ট ইউআরআই (redirect URI) হিসেবে "https://www.google.com" লিখুন।
  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. সেভ বাটনে ক্লিক করুন।

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

৩. অনুমোদন প্রবাহ তৈরি করুন

  1. আপনার কম্পিউটারে VS Code অ্যাপটি খুলুন।
  2. স্বাগতম স্ক্রিনে, ওপেন নির্বাচন করুন।
  3. এই প্রজেক্টটি তৈরি করার জন্য একটি ফোল্ডার নির্বাচন করুন এবং ওপেন চাপুন। আপনার স্ক্রিনটি দেখতে অনেকটা এইরকম হবে, যেখানে এক্সপ্লোরারে আপনার ফোল্ডার বা প্রজেক্টের নামটি দেখা যাবে।ভিএসসি
  4. প্রধান মেনু থেকে ফাইল -> নতুন টেক্সট ফাইল নির্বাচন করুন।
  5. ফাইলটির একটি নাম দেওয়ার জন্য এটি সেভ করুন। মূল মেনু থেকে, ফাইল -> সেভ অ্যাজ -> কোডল্যাব. http বেছে নিন। এটি আপনার প্রোজেক্টে ফাইলটি স্থাপন করবে। ফাইলটির এক্সটেনশন অবশ্যই .http অথবা .rest হতে হবে। এই কোডল্যাবের জন্য, আমরা .http ব্যবহার করছি।

এই প্রোজেক্ট জুড়ে আমরা বেশ কিছু মান একাধিকবার ব্যবহার করব। সেই মানগুলো হলো:

client_id

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

secret

গুগল কনসোল থেকে প্রাপ্ত ক্লায়েন্টের গোপন মান।

redirect_uri

আপনার অ্যাপের একটি এন্ডপয়েন্ট যা অথরাইজেশন কোডটি প্রসেস করে। কোডল্যাবের জন্য আমরা https://www.google.com ব্যবহার করছি।

access_token

সম্মতি প্রক্রিয়া সম্পন্ন হলে ব্যবহারকারীর জন্য অ্যাক্সেস টোকেন তৈরি করা হয়।

refresh_token

সম্মতি প্রক্রিয়াটি সম্পন্ন হয়ে গেলে ব্যবহারকারীর জন্য রিফ্রেশ টোকেন তৈরি করা হয়।

এই প্রজেক্টে ব্যবহৃত ভেরিয়েবলগুলো নির্ধারণ করার জন্য নিম্নলিখিত কোডটি যোগ করুন। এগুলো Codelab.http ফাইলের একদম উপরে থাকতে হবে। client_id এবং secret-এর জন্য মানগুলো পূরণ করুন।

### File Variables for the Codelab
@client_id =
@secret =
@redirect_uri = https://www.google.com
@accessToken={{user.response.body.access_token}}
@refreshToken={{user.response.body.refresh_token}}

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

গুগলের OAuth 2.0 এন্ডপয়েন্টটি https://accounts.google.com/o/oauth2/v2/auth -এ অবস্থিত। এই এন্ডপয়েন্টটি শুধুমাত্র HTTPS-এর মাধ্যমে অ্যাক্সেসযোগ্য। সাধারণ HTTP সংযোগ গ্রহণ করা হয় না।

ওয়েব সার্ভার অ্যাপ্লিকেশনগুলোর জন্য অথরাইজেশন ফ্লো কাস্টমাইজ করতে গুগল অথরাইজেশন সার্ভার অনেকগুলো কোয়েরি স্ট্রিং প্যারামিটার সমর্থন করে। আমরা নিম্নলিখিত প্রয়োজনীয় কোয়েরি প্যারামিটারগুলো ব্যবহার করব: client_id , redirect_uri , response_type এবং scope । ডকুমেন্টেশনে সমস্ত কোয়েরি প্যারামিটার এবং তাদের বিবরণের একটি তালিকা দেওয়া আছে।

কোয়েরি প্যারামিটারগুলির মানগুলি হল

client_id

গুগল কনসোল থেকে ক্লায়েন্ট আইডি মান

redirect_uri

আপনার অ্যাপের একটি এন্ডপয়েন্ট যা অথরাইজেশন কোডটি প্রসেস করে। কোডল্যাবের জন্য https://www.google.com ব্যবহার করুন।

response_type

code (ওয়েব অ্যাপের জন্য সমর্থিত মান)

scope

গুগল কনসোল থেকে স্কোপগুলো পেতে হলে প্রথমে https://www.googleapis.com এবং তারপরে স্কোপের নামটি লিখতে হয়। উদাহরণস্বরূপ, https://www.googleapis.com/auth/googlehealth.activity_and_fitness।

একাধিক স্কোপের অনুরোধ করতে, `scope` প্যারামিটারে সমস্ত স্কোপ স্পেস দিয়ে আলাদা করে অন্তর্ভুক্ত করুন (উদাহরণস্বরূপ, scope1 scope2 scope3 )। URL-এর অংশ হলে, স্পেস অবশ্যই URL-এনকোড করতে হবে (উদাহরণস্বরূপ, %20)।

ভেরিয়েবলগুলোর পরে, দেখানো অনুযায়ী আমাদের অথরাইজেশন ইউআরএলটি লিখুন। প্রজেক্টের শুরুতে সংজ্ঞায়িত প্যারামিটারগুলো অথরাইজেশন স্ট্রিং-এ ব্যবহার করা যাবে না। তাই, আমাদের client_id এবং redirect_uri এর ভ্যালুগুলো অন্তর্ভুক্ত করতে হবে। client-id স্ট্রিংটির জায়গায় আপনার ক্লায়েন্ট আইডি বসান।

### Google Health API Rest Client Example

### Authorization String
https://accounts.google.com/o/oauth2/v2/auth?client_id=client-id&redirect_uri=https://www.google.com&response_type=code&access_type=offline&scope=https://www.googleapis.com/auth/googlehealth.activity_and_fitness.readonly

যখন কোনো ব্যবহারকারী সম্মতি দেন, তখন গুগল একটি অথরাইজেশন কোড প্রদান করে, যা আপনি গুগলের টোকেন এন্ডপয়েন্টে কল করে একটি অ্যাক্সেস টোকেনের জন্য বিনিময় করেন। অথরাইজেশন স্ট্রিং-এর নিচে Codelab.http তে টোকেন এন্ডপয়েন্টে কল করার জন্য নিম্নলিখিত ডেফিনিশনটি যোগ করুন। পরবর্তী ধাপে আপনি authorization-code একটি অথরাইজেশন কোড দিয়ে প্রতিস্থাপন করবেন।

### AUTHORIZATION ENDPOINTS
######################################################################
# @name user
POST https://oauth2.googleapis.com/token
Content-Type: application/x-www-form-urlencoded

code=authorization-code&client_id={{clientId}}&client_secret={{secret}}&redirect_uri={{redirect_uri}}&grant_type=authorization_code

@name user বলতে সেই বর্তমান ব্যবহারকারীকে বোঝানো হয়, যার ডেটা আপনি অ্যাক্সেস করছেন।

৪. একটি অ্যাকাউন্ট অনুমোদন করুন এবং টোকেন সংগ্রহ করুন

এখন আমরা অথরাইজেশন টোকেন পাওয়ার জন্য অনুমোদন প্রক্রিয়াটি ধাপে ধাপে আলোচনা করব।

Codelab.http এর অথরাইজেশন স্ট্রিংটি গুগলের ব্রাউজার-ভিত্তিক সম্মতি প্রক্রিয়া শুরু করতে ব্যবহৃত হয়। রেস্ট ক্লায়েন্ট এক্সটেনশনটি এই URL-এর জন্য একটি 'অনুরোধ পাঠান' (Send Request ) লিঙ্ক প্রদর্শন করতে পারে। এই নির্দিষ্ট URL-টির জন্য 'অনুরোধ পাঠান' ব্যবহার করবেন না। এর পরিবর্তে, এটি কপি করে আপনার ব্রাউজারে পেস্ট করুন, অথবা আপনার ডিফল্ট ব্রাউজারে এটি খোলার জন্য VS Code-এ Ctrl+Click (Windows/Linux) বা Cmd+Click (Mac) ব্যবহার করুন।

https://accounts.google.com/o/oauth2/v2/auth?client_id=client-id&redirect_uri=https://www.google.com&response_type=code&access_type=offline&scope=https://www.googleapis.com/auth/googlehealth.activity_and_fitness.readonly
  1. আপনাকে আপনার গুগল অ্যাকাউন্টে সাইন ইন করতে বলা হবে। আপনাকে অবশ্যই 'টেস্ট ইউজার যোগ করুন' বিভাগে কনফিগার করা টেস্ট ইউজার অ্যাকাউন্টগুলোর মধ্যে একটি ব্যবহার করে সাইন ইন করতে হবে।
  2. আপনার সামনে একটি বার্তা আসতে পারে যে অ্যাপটি যাচাই করা হয়নি। এর কারণ হলো, অ্যাপটি এখনো প্রকাশ করা হয়নি। "চালিয়ে যান" চাপুন।

যাচাইবিহীন অ্যাপের সতর্কবার্তা দেখানো স্ক্রিনশট।

  1. সম্মতি পৃষ্ঠায় অনুরোধ করা স্কোপগুলোর তালিকা দেওয়া আছে। ব্যবহারকারী এই অ্যাপের সাথে তার ইচ্ছামত স্কোপগুলো বেছে নিতে পারেন। "চালিয়ে যান" বোতামে ক্লিক করুন।

অনুরোধ করা স্কোপগুলি শেয়ার করতে সম্মতি দেওয়ার পর, আপনাকে আপনার নির্দিষ্ট করা redirect_uri তে (এই কোডল্যাবে, https://www.google.com) রিডাইরেক্ট করা হয়। Google redirect_uri সাথে একটি অথরাইজেশন কোড এবং অন্যান্য প্যারামিটার যুক্ত করে, তাই আপনার ব্রাউজারের অ্যাড্রেস বারের URL-টি দেখতে অনেকটা এইরকম হবে:

https://www.google.com/?code=4/0Ab32j93oyGWqaXE112sP1IKmh3kV1fE4tcHIMXYJQYWgNEtAa_0-YsfkS9Ekj3Be89u3fw&scope=https://www.googleapis.com/auth/googlehealth.activity_and_fitness.readonly

অনুমোদন কোডটি হলো 'code=' এবং '&scope'-এর মধ্যবর্তী আলফানিউমেরিক মান। উপরের উদাহরণে মানটি হলো:

4/0Ab32j93oyGWqaXE112sP1IKmh3kV1fE4tcHIMXYJQYWgNEtAa_0-YsfkS9Ekj3Be89u3fw

প্রোডাকশন অ্যাপে, আপনার সার্ভার ইউআরএল প্যারামিটার থেকে এটি পার্স করে নেবে। এই কোডল্যাবের জন্য, আপনার ব্রাউজারের ইউআরএল থেকে অথরাইজেশন কোডটি কপি করুন।

এখন, এই অথরাইজেশন কোডটিকে একটি access_token এবং refresh_token দিয়ে বিনিময় করুন। Codelab.http এ, POST /token রিকোয়েস্ট বডিতে থাকা authorization-code জায়গায় আপনার কপি করা অথরাইজেশন কোডটি বসান।

POST https://oauth2.googleapis.com/token
Content-Type: application/x-www-form-urlencoded

code=authorization-code&client_id={{client_id}}&client_secret={{secret}}&redirect_uri={{redirect_uri}}&grant_type=authorization_code

POST https://oauth2.googleapis.com/token লাইনটির ঠিক উপরে থাকা Send Request লিঙ্কটিতে ক্লিক করুন।

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

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

আপনি এই প্রতিক্রিয়াটি পেলে, রেস্ট ক্লায়েন্ট পরবর্তী অনুরোধগুলিতে ব্যবহারের জন্য Codelab.http এর শীর্ষে সংজ্ঞায়িত @accessToken এবং @refreshToken ভেরিয়েবলগুলিকে স্বয়ংক্রিয়ভাবে পূরণ করে দেয়।

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

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

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

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

আরও বিস্তারিত জানতে, অ্যাক্সেস টোকেন রিফ্রেশ করা (অফলাইন অ্যাক্সেস) দেখুন।

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

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

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

৬. তালিকা পদ্ধতি ব্যবহার করে ডেটা পুনরুদ্ধার করুন।

list মেথডটি কল করতে, Codelab.http তে /token এন্ডপয়েন্টের ঠিক নিচে নিম্নলিখিত কোডটি যোগ করুন।

### users.dataTypes.dataPoints
#####################################################

### LIST exercise
GET https://health.googleapis.com/v4/users/me/dataTypes/exercise/dataPoints
Authorization: Bearer {{accessToken}}
Accept: application/json

এই কোডটি ব্যবহারকারীর Fitbit অ্যাকাউন্টে রেকর্ড করা পদক্ষেপগুলো প্রদর্শন করার জন্য list এন্ডপয়েন্টকে কল করে। Fitbit Web API v1 Activity Intraday এন্ডপয়েন্টের মতোই, প্রতি মিনিটের পদক্ষেপের সংখ্যা রেসপন্সে ফেরত দেওয়া হবে।

কলটি কার্যকর করতে, GET এন্ডপয়েন্টের জন্য 'Send Request' লিঙ্কে চাপ দিন। আপনার প্রতিক্রিয়াটি দেখতে এইরকম হবে:

{
  "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": ""
}

অনেক এন্ডপয়েন্ট ফিল্টারিং বা পেজিনেশনের জন্য কোয়েরি প্যারামিটার সমর্থন করে। উদাহরণস্বরূপ, exercise এন্ডপয়েন্টটি interval.civil_start_time ফিল্টারটি সমর্থন করে। একটি নির্দিষ্ট সময়সীমার মধ্যে এক্সারসাইজগুলোর তালিকা পেতে Codelab.http এ নিম্নলিখিত রিকোয়েস্টটি যোগ করুন:

### LIST exercise >= civil start time
GET https://health.googleapis.com/v4/users/me/dataTypes/exercise/dataPoints?filter=exercise.interval.civil_start_time >= "2026-02-22T00:00:00"
Authorization: Bearer {{accessToken}}
Accept: application/json

৭. অভিনন্দন

অভিনন্দন!

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

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