בדף הזה מופיעים קישורים לדרכים נוחות לגשת אל 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) לפי הכרטיסיות הבאות:
מוסיפים לקובץ pom.xml את הנתונים הבאים:
מוסיפים לקובץ build.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). מידע נוסף זמין במשאבי העזרה הבאים:
דרישות מערכת
- מערכות הפעלה:
- Linux
- macOS X
- Windows
- ספריית הלקוח v1 דורשת Python בגרסה 2.7 ואילך. ספריית הלקוח v2 דורשת גרסה 3.7 ומעלה.
התקנת ספריית הלקוח
אפשר להשתמש במנהל חבילות או להוריד ולהתקין באופן ידני את ספריית הלקוח של Python:
התקנה מנוהלת
כדי לנהל את ההתקנה, השתמשו ב-pip או ב-setuptools. יכול להיות שקודם כול תצטרכו להריץ את הפקודה sudo.
- pip (האפשרות המועדפת):
pip install --upgrade google-api-python-client
- Setuptools:
easy_install --upgrade google-api-python-client
התקנה ידנית
- מורידים את ספריית הלקוח העדכנית של Python.
- פורקים את הקוד.
- מתקינים את:
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 בצד הלקוח לפני ששולחים בקשות.
- מתקינים ספריות gRPC:
- משתמשים בפקודה
pip install grpcio grpcio-tools google-auth-oauthlibכדי להתקין תלות.
- משתמשים בפקודה
- יצירת קוד לקוח:
- מקבלים את ההגדרות של 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.
- מקבלים את ההגדרות של Google Health API
- הטמעה של 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 ושגיאות אחרות.