ספריות לקוח

בדף הזה מופיעים קישורים לדרכים נוחות לגשת אל Google Health API.

ספריות לקוח של Google Health API

ממשק Google Health API מבוסס על HTTP ועל JSON, כך שכל לקוח HTTP סטנדרטי יכול לשלוח אליו בקשות ולנתח את התשובות.

עם זאת, במקום ליצור בקשות HTTP ולנתח את התשובות באופן ידני, כדאי להשתמש בספריות הלקוח של Google APIs. ספריות הלקוח מספקות שילוב טוב יותר של שפות, אבטחה משופרת ותמיכה בשליחת קריאות שמחייבות הרשאת משתמש.

Go

אתם יכולים לקבל את ספריית הלקוח העדכנית של Google Health API ל-Go. בנוסף, כדאי לעיין במדריך למפתחים של ספריית הלקוח.

Java

בדף הזה נסביר על תחילת השימוש ב-Google Health API באמצעות ספריית הלקוח של Google API ל-Java. מידע נוסף זמין במשאבי העזרה הבאים:

הוספה של ספריית הלקוח לפרויקט

קובעים את סביבת ה-build ‏(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 (גרסה 1 או גרסה 2). מידע נוסף זמין במשאבי העזרה הבאים:

דרישות מערכת

התקנת ספריית הלקוח

אפשר להשתמש במנהל חבילות או להוריד ולהתקין באופן ידני את ספריית הלקוח של 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. מידע נוסף זמין במשאבי העזרה הבאים:

התקנה של gem‏ google-api-client

בהתאם למערכת שלכם, יכול להיות שתצטרכו להוסיף sudo לתחילת הפקודות האלה.

אם עדיין לא התקנתם את ספריית הלקוח של Google API ל-Ruby, התקינו אותה באמצעות RubyGems:

gem install google-api-client

אם כבר התקנתם את ה-gem, הורידו את הגרסה העדכנית:

gem update -y google-api-client

תחילת השימוש בספריית הלקוח של Google API ל-Ruby

כדי ללמוד איך ליצור את הבקשה הראשונה, היעזרו במדריך לתחילת השימוש.

gRPC

‫Google Health API תומך גם ב-gRPC לאחזור נתונים עם ביצועים גבוהים. בנוסף להתקנת ספריות לקוח, כדי להשתמש ב-gRPC צריך לקבל את ההגדרות של Protocol Buffers של ה-API וליצור קוד stub בצד הלקוח לפני ששולחים בקשות.

  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 כדי ליצור קוד stub.
  3. הטמעה של OAuth 2.0 ושליחת בקשות gRPC:
    • משתמשים ב-google-auth-oauthlib לאימות וב-stub של הלקוח שנוצר כדי לשלוח בקשות 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: שם המארח של שירות gRPC של Google Health.
  • get_credentials():
    • טוען סודות לקוח מקובץ, משתמש ב-InstalledAppFlow מ-google-auth-oauthlib כדי לנהל הרשאות, מנסה לטעון פרטי כניסה מאוחסנים או מתחיל את הרשאה באמצעות OAuth 2.0 אם צריך.
  • fetch_health_data_grpc():
    • יוצר ערוץ gRPC מאובטח ומאומת באמצעות פרטי הכניסה של המשתמש.
    • מאותחל DataPointsServiceStub עם הערוץ.
    • יוצר ListDataPointsRequest כדי לבקש נתוני צעדים עבור users/me.
    • מבצע קריאה ל-RPC של ListDataPoints ומדפיס את התשובה.
  • טיפול בשגיאות: הקוד כולל בלוקים בסיסיים של try...except לטיפול בשגיאות gRPC ושגיאות אחרות.