Bu sayfada, Google Health API'ye erişmenin kolay yollarının bağlantıları verilmiştir.
Google Health API istemci kitaplıkları
Google Health API; HTTP ve JSON üzerine kurulu olduğundan herhangi bir standart HTTP istemcisi ona istek gönderebilir, yanıtları ayrıştırabilir.
Ancak HTTP istekleri oluşturup yanıtları manuel olarak ayrıştırmak yerine Google API'leri istemci kitaplıklarını kullanabilirsiniz. İstemci kitaplıkları daha iyi dil entegrasyonu ve daha yüksek güvenlik sağlamanın yanı sıra kullanıcı yetkilendirmesi gerektiren çağrıların yapılmasını da destekler.
Go
Go için Google Health API istemci kitaplığının en son sürümünü edinin. İstemci kitaplığının geliştirici kılavuzunu okuyun.
Java
Bu sayfada, Java için Google API İstemci Kitaplığı'nı kullanarak Google Health API'yi kullanmaya başlama hakkında bilgiler yer alır. Daha fazla bilgi için aşağıdaki dokümanlara bakın:
İstemci kitaplığını projenize ekleme
Aşağıdaki sekmelerden derleme ortamınızı (Maven veya Gradle) seçin:
pom.xml dosyanıza aşağıdakileri ekleyin:
build.gradle dosyanıza aşağıdakileri ekleyin:
JavaScript
İstemci kitaplığının geliştirici kılavuzunu okuyun.
.NET
Bu sayfada, .NET için Google API istemci kitaplığını kullanarak Google Health API'yi kullanmaya başlama hakkında bilgiler yer alır. Daha fazla bilgi için aşağıdaki belgelere bakın:
Kitaplığı indirme
NuGet paketini yükleyin: Google.Apis.
Node.js
Node.js için Google Health API istemci kitaplığının en son sürümünü edinin. İstemci kitaplığının geliştirici kılavuzunu okuyun.
Obj-C
Objective-C için Google Health API istemci kitaplığının en son sürümünü edinin. İstemci kitaplığının geliştirici kılavuzunu okuyun.
PHP
PHP için Google Health API istemci kitaplığının en son sürümünü edinin. İstemci kitaplığının geliştirici kılavuzunu okuyun.
Python
Bu sayfada, Python için Google API İstemci Kitaplığı'nı kullanarak Google Health API'yi kullanmaya başlama hakkında bilgiler yer alır (v1/v2). Daha fazla bilgi için aşağıdaki dokümanlara bakın:
Sistem gereksinimleri
- İşletim sistemleri:
- Linux
- macOS X
- Windows
- v1 istemci kitaplığı için Python 2.7 veya sonraki bir sürüm gerekir. v2 istemci kitaplığı için 3.7 veya sonraki bir sürüm gerekir.
İstemci kitaplığını yükleme
Paket yöneticisi kullanabilir ya da Python istemci kitaplığını manuel olarak indirip yükleyebilirsiniz:
Yönetilen yükleme
Yüklemenizi yönetmek için pip veya setuptools'u kullanın (Önce sudo öğesini çalıştırmanız gerekebilir.):
- pip (tercih edilen):
pip install --upgrade google-api-python-client
- Setuptools:
easy_install --upgrade google-api-python-client
Manuel yükleme
- Python için istemci kitaplığının en son sürümünü indirin.
- Kodu paketten çıkarın.
- Yükleme:
python setup.py install
App Engine
Python istemci kitaplıkları App Engine Python çalışma zamanı ortamında yüklenmediğinden, tıpkı üçüncü kitaplıklar gibi bunları uygulamanıza kopyalamanız gerekir.
Ruby
Bu sayfada, Ruby için Google API İstemci Kitaplığı'nı kullanarak Google Health API'yi kullanmaya başlama hakkında bilgiler yer alır. Daha fazla bilgi için aşağıdaki dokümanlara bakın:
google-api-client gem'ini yükleme
Sisteminize bağlı olarak, bu komutların başına sudo eklemeniz gerekebilir.
Daha önce Ruby için Google API istemci kitaplığını yüklemediyseniz RubyGems kullanarak yükleyin:
gem install google-api-client
Gem zaten yüklüyse en son sürüme güncelleyin:
gem update -y google-api-client
Ruby için Google API İstemci Kitaplığı'nı kullanmaya başlama
İlk kez nasıl istekte bulunacağınızı öğrenmek için Başlangıç kılavuzuna bakın.
gRPC
Google Health API, yüksek performanslı veri alma için gRPC'yi de destekler. gRPC'yi kullanmak için istemci kitaplıklarını yüklemenin yanı sıra istekte bulunmadan önce API'nin Protocol Buffers tanımlarını edinmeniz ve istemci tarafı saplama kodu oluşturmanız gerekir.
- gRPC kitaplıklarını yükleyin:
- Bağımlılıkları yüklemek için
pip install grpcio grpcio-tools google-auth-oauthlibkullanın.
- Bağımlılıkları yüklemek için
- İstemci kodu oluşturma:
- Google Health API
.prototanımlarını (örneğin,data_points.proto) edinin. python -m grpc_tools.protoc -I. --python_out=. --grpc_python_out=. path/to/your/data_points.protokomutunu çalıştırarak saplama kodu oluşturun.
- Google Health API
- OAuth 2.0'ı uygulayın ve gRPC istekleri oluşturun:
- Aşağıdaki örnekte gösterildiği gibi, yetkilendirme için
google-auth-oauthlib, gRPC istekleri göndermek için de oluşturulan istemci saplamasını kullanın.
- Aşağıdaki örnekte gösterildiği gibi, yetkilendirme için
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}")
- Kitaplıkları İçe Aktarma:
grpc: gRPC Python kitaplığı.google.auth.transport.grpc: Güvenli ve kimliği doğrulanmış kanallar oluşturmak için kullanılır.data_points_pb2,data_points_pb2_grpc:.protodosyalarından oluşturulan müşteri kodu.
- Yapılandırma:
CLIENT_SECRETS_FILE:client_secret.jsondosyanızın yolu.SCOPES: Gerekli izinler.TOKEN_FILE: OAuth jetonlarının depolanacağı yol.GRPC_ENDPOINT: Google Health gRPC hizmetinin ana makine adı.
get_credentials():- İstemci sırlarını dosyadan yükler, yetkilendirmeyi yönetmek için
InstalledAppFlowfromgoogle-auth-oauthlibkullanır, depolanmış kimlik bilgilerini yüklemeye çalışır veya gerekirse OAuth 2.0 akışını başlatır.
- İstemci sırlarını dosyadan yükler, yetkilendirmeyi yönetmek için
fetch_health_data_grpc():- Kullanıcının kimlik bilgilerini kullanarak güvenli ve kimliği doğrulanmış bir gRPC kanalı oluşturur.
- Kanal ile
DataPointsServiceStubbaşlatır. ListDataPointsRequestiçin adım verileri istemek üzereusers/meoluşturur.ListDataPointsRPC yöntemini çağırır ve yanıtı yazdırır.
- Hata İşleme: Kod, gRPC ve diğer hataları işlemek için temel
try...exceptbloklarını içerir.