مكتبات العملاء

توفّر هذه الصفحة روابط تؤدي إلى طرق ملائمة للوصول إلى Google Health API.

مكتبات عملاء Google Health API

تم إنشاء Google Health API استنادًا إلى HTTP وJSON، ما يتيح لأي عميل HTTP عادي إرسال طلبات إلى الواجهة وتحليل استجاباتها.

في المقابل، بدلاً من إنشاء طلبات HTTP وتحليل الردود يدويًا، قد يكون من الأفضل استخدام مكتبات عملاء Google APIs. توفّر مكتبات العملاء نتائج أفضل على مستوى التكامل اللغوي والأمان المحسّن، كما تتيح إمكانية إجراء الطلبات التي تحتاج إلى إذن من المستخدم.

انتقال

يمكنك الحصول على أحدث مكتبة عملاء خاصة بواجهة Google Health API للغة Go. يُرجى مراجعة دليل المطوّر الخاص بـمكتبة العميل.

جافا

تضم هذه الصفحة معلومات حول بدء استخدام Google Health API من خلال مكتبة عملاء Google API للغة Java. لمزيد من المعلومات، يمكنك الاطّلاع على المستندات التالية:

إضافة مكتبة البرامج إلى مشروعك

يمكنك اختيار بيئة الإصدار (Maven أو Gradle) من بين علامات التبويب التالية:

JavaScript

راجِع دليل المطوّر الخاص بمكتبة البرامج.

NET.

تضم هذه الصفحة معلومات حول بدء استخدام Google Health API من خلال مكتبة عملاء Google API لنظام ‎.NET لمزيد من المعلومات، يمكنك الاطّلاع على المستندات التالية:

تنزيل المكتبة

ثبِّت حزمة NuGet:‫ Google.Apis.

Node.js

يمكنك الحصول على أحدث مكتبة عملاء خاصة بواجهة Google Health API لنظام Node.js. راجِع دليل المطوّر الخاص بمكتبة العملاء.

Obj-C

يمكنك الحصول على أحدث مكتبة عملاء خاصة بواجهة Google Health API للغة Objective-C. راجِع دليل المطوّر الخاص بمكتبة العملاء.

PHP

يمكنك الحصول على أحدث مكتبة عملاء خاصة بواجهة Google Health API للغة PHP. راجِع دليل المطوّر الخاص بمكتبة العملاء.

Python

تضم هذه الصفحة معلومات حول بدء استخدام Google Health API من خلال مكتبة عملاء Google API للغة Python (v1/v2). لمزيد من المعلومات، يمكنك الاطّلاع على المستندات التالية:

متطلبات النظام

تثبيت مكتبة البرامج

يمكنك استخدام أداة إدارة الحِزم أو تنزيل مكتبة برامج Python يدويًا وتثبيتها:

التثبيت المُدار

استخدِم pip أو setuptools لإدارة التثبيت. قد تحتاج إلى تشغيل أولاً. قد تحتاج إلى تشغيل sudo أولاً.

  • pip (يفضَّل استخدامها):
    pip install --upgrade google-api-python-client
  • Setuptools:
    easy_install --upgrade google-api-python-client

التثبيت اليدوي

  1. نزِّل مكتبة البرامج الأحدث للغة Python.
  2. فُكَّ حزمة الرمز.
  3. ثبِّت المكتبة:
    python setup.py install

App Engine

بما أنّ مكتبات برامج Python غير مثبَّتة في بيئة وقت تشغيل Python في App Engine، عليك نسخها إلى تطبيقك كما هي الحال مع مكتبات الجهات الخارجية.

Ruby

تضم هذه الصفحة معلومات حول بدء استخدام Google Health API من خلال مكتبة عملاء Google API للغة Ruby. لمزيد من المعلومات، يمكنك الاطّلاع على المستندات التالية:

تنزيل أداة google-api-client

وفقًا للنظام الذي تستخدمه، قد تحتاج إلى إضافة هذه الأوامر من خلال sudo.

في حال لم يسبق لك تثبيت مكتبة برامج Google API للغة Ruby، ثبِّتها باستخدام RubyGems:

gem install google-api-client

إذا سبق لك تثبيت الأداة، يمكن تحديثها إلى أحدث إصدار:

gem update -y google-api-client

بدء استخدام مكتبة برامج Google API للغة Ruby

للاطّلاع على كيفية تقديم طلبك الأول، راجِع دليل البدء .

gRPC

تتيح Google Health API أيضًا استخدام gRPC لاسترداد البيانات عالية الأداء. بالإضافة إلى تثبيت مكتبات العملاء، يتطلّب استخدام gRPC الحصول على تعريفات "مخازن البروتوكولات المؤقتة" لواجهة برمجة التطبيقات وإنشاء رمز ثانوي من جهة العميل قبل تقديم الطلبات.

  1. تثبيت مكتبات gRPC:
    • استخدِم pip install grpcio grpcio-tools google-auth-oauthlib لتثبيت التبعيات.
  2. إنشاء رمز العميل:
    • احصل على تعريفات .proto الخاصة بواجهة Google Health API (مثل 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 للغة Python
    • google.auth.transport.grpc: لإنشاء قنوات آمنة ومصادَق عليها
    • data_points_pb2، data_points_pb2_grpc: رمز العميل الذي تم إنشاؤه من .proto ملفات.
  • الإعداد:
    • CLIENT_SECRETS_FILE: مسار ملف client_secret.json
    • SCOPES: الأذونات المطلوبة
    • TOKEN_FILE: مسار تخزين رموز OAuth المميزة
    • GRPC_ENDPOINT: اسم المضيف لخدمة Google Health gRPC
  • get_credentials():
    • تحميل بيانات سرية للعميل من ملف، واستخدام InstalledAppFlow من google-auth-oauthlib لإدارة التفويض، ومحاولة تحميل بيانات الاعتماد المخزَّنة، أو بدء مسار OAuth 2.0 إذا لزم الأمر
  • fetch_health_data_grpc():
    • إنشاء قناة gRPC آمنة ومصادَق عليها باستخدام بيانات اعتماد المستخدم
    • تهيئة DataPointsServiceStub باستخدام القناة
    • إنشاء ListDataPointsRequest لطلب بيانات الخطوات لـ users/me
    • استدعاء طريقة ListDataPoints RPC وطباعة الردّ
  • التعامل مع الأخطاء: يتضمّن الرمز كتل try...except أساسية للتعامل مع أخطاء gRPC والأخطاء الأخرى.