ক্লায়েন্ট লাইব্রেরি

এই পৃষ্ঠায় গুগল হেলথ এপিআই অ্যাক্সেস করার সুবিধাজনক উপায়গুলোর লিঙ্ক দেওয়া আছে।

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

গুগল হেলথ এপিআই HTTP এবং JSON-এর উপর ভিত্তি করে তৈরি, তাই যেকোনো সাধারণ HTTP ক্লায়েন্ট এতে অনুরোধ পাঠাতে এবং প্রতিক্রিয়াগুলো পার্স করতে পারে।

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

যান

Go-এর জন্য সর্বশেষ Google Health API ক্লায়েন্ট লাইব্রেরিটি ডাউনলোড করুন। ক্লায়েন্ট লাইব্রেরির ডেভেলপার গাইডটি পড়ুন।

জাভা

এই পৃষ্ঠায় জাভার জন্য গুগল এপিআই ক্লায়েন্ট লাইব্রেরি ব্যবহার করে গুগল হেলথ এপিআই দিয়ে কাজ শুরু করার বিষয়ে তথ্য রয়েছে। আরও তথ্যের জন্য, নিম্নলিখিত ডকুমেন্টেশন দেখুন:

আপনার প্রজেক্টে ক্লায়েন্ট লাইব্রেরি যোগ করুন

নিচের ট্যাবগুলো থেকে আপনার বিল্ড এনভায়রনমেন্ট (Maven অথবা Gradle) নির্বাচন করুন:

জাভাস্ক্রিপ্ট

ক্লায়েন্ট লাইব্রেরির ডেভেলপার গাইডটি পড়ুন।

.NET

এই পৃষ্ঠায় .NET-এর জন্য Google API ক্লায়েন্ট লাইব্রেরি ব্যবহার করে Google Health API-এর সাথে কাজ শুরু করার বিষয়ে তথ্য রয়েছে। আরও তথ্যের জন্য, নিম্নলিখিত ডকুমেন্টেশন দেখুন:

লাইব্রেরি ডাউনলোড করা হচ্ছে

Google.Apis NuGet প্যাকেজটি ইনস্টল করুন।

নোড.জেএস

Node.js-এর জন্য সর্বশেষ Google Health API ক্লায়েন্ট লাইব্রেরিটি ডাউনলোড করুন। ক্লায়েন্ট লাইব্রেরির ডেভেলপার গাইডটি পড়ুন।

অবজেক্ট-সি

Objective-C-এর জন্য সর্বশেষ Google Health API ক্লায়েন্ট লাইব্রেরিটি ডাউনলোড করুন। ক্লায়েন্ট লাইব্রেরির ডেভেলপার গাইডটি পড়ুন।

পিএইচপি

PHP-এর জন্য সর্বশেষ গুগল হেলথ এপিআই ক্লায়েন্ট লাইব্রেরিটি ডাউনলোড করুন। ক্লায়েন্ট লাইব্রেরির ডেভেলপার গাইডটি পড়ুন।

পাইথন

এই পৃষ্ঠায় পাইথনের জন্য গুগল এপিআই ক্লায়েন্ট লাইব্রেরি (v1/v2) ব্যবহার করে গুগল হেলথ এপিআই দিয়ে কাজ শুরু করার বিষয়ে তথ্য রয়েছে। আরও তথ্যের জন্য, নিম্নলিখিত ডকুমেন্টেশন দেখুন:

সিস্টেমের প্রয়োজনীয়তা

ক্লায়েন্ট লাইব্রেরি ইনস্টল করুন

আপনি প্যাকেজ ম্যানেজার ব্যবহার করতে পারেন অথবা ম্যানুয়ালি পাইথন ক্লায়েন্ট লাইব্রেরি ডাউনলোড ও ইনস্টল করতে পারেন:

পরিচালিত ইনস্টল

আপনার ইনস্টলেশন পরিচালনা করতে pip বা setuptools ব্যবহার করুন। প্রথমে আপনাকে sudo চালাতে হতে পারে।

ম্যানুয়াল ইনস্টল

  1. পাইথনের জন্য সর্বশেষ ক্লায়েন্ট লাইব্রেরিটি ডাউনলোড করুন
  2. কোডটি আনপ্যাক করুন।
  3. ইনস্টল করুন:
    python setup.py install

অ্যাপ ইঞ্জিন

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

রুবি

এই পৃষ্ঠায় রুবি-র জন্য গুগল এপিআই ক্লায়েন্ট লাইব্রেরি ব্যবহার করে গুগল হেলথ এপিআই দিয়ে কাজ শুরু করার বিষয়ে তথ্য রয়েছে। আরও তথ্যের জন্য, নিম্নলিখিত ডকুমেন্টেশন দেখুন:

google-api-client জেমটি ইনস্টল করুন

আপনার সিস্টেমের ওপর নির্ভর করে, এই কমান্ডগুলোর শুরুতে sudo যোগ করার প্রয়োজন হতে পারে।

আপনি যদি আগে রুবির জন্য গুগল এপিআই ক্লায়েন্ট লাইব্রেরি ইনস্টল না করে থাকেন, তবে RubyGems ব্যবহার করে এটি ইনস্টল করুন:

gem install google-api-client

যদি আপনার কাছে জেমটি আগে থেকেই ইনস্টল করা থাকে, তবে সর্বশেষ সংস্করণে আপডেট করুন:

gem update -y google-api-client

রুবির জন্য গুগল এপিআই ক্লায়েন্ট লাইব্রেরি দিয়ে শুরু করুন।

আপনার প্রথম অনুরোধটি কীভাবে করতে হয় তা জানতে, ‘ শুরু করার নির্দেশিকা’ দেখুন।

জিআরপিসি

গুগল হেলথ এপিআই উচ্চ-পারফরম্যান্স ডেটা পুনরুদ্ধারের জন্য gRPC-ও সমর্থন করে। ক্লায়েন্ট লাইব্রেরি ইনস্টল করার পাশাপাশি, gRPC ব্যবহার করার জন্য এপিআই-এর প্রোটোকল বাফার ডেফিনিশন সংগ্রহ করতে হয় এবং রিকোয়েস্ট পাঠানোর আগে ক্লায়েন্ট-সাইড স্টাব কোড তৈরি করতে হয়।

  1. gRPC লাইব্রেরি ইনস্টল করুন:
    • ডিপেন্ডেন্সিগুলো ইনস্টল করতে pip install grpcio grpcio-tools google-auth-oauthlib ব্যবহার করুন।
  2. ক্লায়েন্ট কোড তৈরি করুন:
    • Google Health API-এর .proto ডেফিনিশনগুলো সংগ্রহ করুন (উদাহরণস্বরূপ, data_points.proto )।
    • স্টাব কোড তৈরি করতে python -m grpc_tools.protoc -I. --python_out=. --grpc_python_out=. path/to/your/data_points.proto চালান।
  3. OAuth 2.0 প্রয়োগ করুন এবং gRPC অনুরোধ পাঠান:
    • নিম্নলিখিত উদাহরণে দেখানো অনুযায়ী, অনুমোদনের জন্য google-auth-oauthlib এবং gRPC অনুরোধ পাঠানোর জন্য তৈরি করা ক্লায়েন্ট স্টাবটি ব্যবহার করুন।
import google.auth
from google.auth.transport.grpc import secure_authorized_channel
from google.auth.transport.requests import Request
from google.oauth2.credentials import Credentials
from google_auth_oauthlib.flow import InstalledAppFlow
import os
import json
import grpc

# Generated gRPC code from data_points.proto
# These imports depend on the output of grpc_tools
try:
    import data_points_pb2
    import data_points_pb2_grpc
except ImportError:
    print("Please generate gRPC code from data_points.proto")
    data_points_pb2 = None
    data_points_pb2_grpc = None

# --- REPLACE WITH YOUR VALUES ---
CLIENT_SECRETS_FILE = 'path/to/your/client_secret.json'
SCOPES = ['https://www.googleapis.com/auth/health']  # Add other scopes as needed
TOKEN_FILE = 'token.json'
GRPC_ENDPOINT = 'health.googleapis.com' # Google Health API gRPC endpoint

def get_credentials():
    """Gets or creates OAuth 2.0 credentials."""
    creds = None
    # The file token.json stores the user's access and refresh tokens, and is
    # created automatically when the authorization flow completes for the first
    # time.
    if os.path.exists(TOKEN_FILE):
        with open(TOKEN_FILE, 'r') as token:
            creds = Credentials.from_authorized_user_info(json.load(token), SCOPES)
    # If there are no (valid) credentials available, let the user log in.
    if creds and creds.expired and creds.refresh_token:
        try:
            creds.refresh(Request())
        except Exception as e:
            creds = None  # Force re-auth if refresh fails
    if not creds or not creds.valid:
        flow = InstalledAppFlow.from_client_secrets_file(
            CLIENT_SECRETS_FILE, SCOPES
        )
        creds = flow.run_local_server(port=0)
        # Save the credentials for the next run
        with open(TOKEN_FILE, 'w') as token:
            token.write(creds.to_json())
    return creds

def fetch_health_data_grpc(creds):
    """Fetches health data using gRPC."""
    if not data_points_pb2_grpc:
        return
    try:
        # Create an authenticated gRPC channel
        channel = secure_authorized_channel(creds, Request(), f'{GRPC_ENDPOINT}:443')
        # Create a stub for the DataPointsService
        stub = data_points_pb2_grpc.DataPointsServiceStub(channel)

        # Example: list steps data points for the authenticated user 'me'
        request = data_points_pb2.ListDataPointsRequest(parent='users/me/dataTypes/steps')
        response = stub.ListDataPoints(request)
        print('Health data via gRPC:', response)
    except grpc.RpcError as e:
        print(f'Error fetching data via gRPC: {e.code()} - {e.details()}')
    except Exception as e:
        print(f'An error occurred during gRPC call: {e}')

if __name__ == '__main__':
    try:
        creds = get_credentials()
        print("Fetching data using gRPC...")
        fetch_health_data_grpc(creds)
    except Exception as e:
        print(f"An error occurred: {e}")
  • লাইব্রেরি আমদানি করুন:
    • grpc : gRPC পাইথন লাইব্রেরি।
    • google.auth.transport.grpc : নিরাপদ ও প্রমাণীকৃত চ্যানেল তৈরি করার জন্য।
    • data_points_pb2 , data_points_pb2_grpc : .proto ফাইল থেকে তৈরি ক্লায়েন্ট কোড।
  • কনফিগারেশন:
    • CLIENT_SECRETS_FILE : আপনার client_secret.json ফাইলের পাথ।
    • SCOPES : প্রয়োজনীয় অনুমতিসমূহ।
    • TOKEN_FILE : OAuth টোকেন সংরক্ষণের পাথ।
    • GRPC_ENDPOINT : গুগল হেলথ gRPC পরিষেবার হোস্টনেম।
  • get_credentials() :
    • ফাইল থেকে ক্লায়েন্ট সিক্রেট লোড করে, অথরাইজেশন পরিচালনার জন্য google-auth-oauthlib এর InstalledAppFlow ব্যবহার করে, সংরক্ষিত ক্রেডেনশিয়াল লোড করার চেষ্টা করে, অথবা প্রয়োজনে OAuth 2.0 ফ্লো শুরু করে।
  • fetch_health_data_grpc() :
    • ব্যবহারকারীর পরিচয়পত্র ব্যবহার করে একটি সুরক্ষিত ও প্রমাণীকৃত gRPC চ্যানেল তৈরি করে।
    • চ্যানেলটি ব্যবহার করে একটি DataPointsServiceStub শুরু করে।
    • users/me জন্য পদক্ষেপের ডেটা অনুরোধ করতে একটি ListDataPointsRequest তৈরি করে।
    • ListDataPoints RPC মেথডটি কল করে এবং রেসপন্সটি প্রিন্ট করে।
  • ত্রুটি পরিচালনা: কোডটিতে gRPC এবং অন্যান্য ত্রুটি পরিচালনার জন্য সাধারণ try...except ব্লক অন্তর্ভুক্ত রয়েছে।