На этой странице представлены ссылки на удобные способы доступа к API Google Health.
клиентские библиотеки Google Health API
API Google Health построен на протоколах HTTP и JSON, поэтому любой стандартный HTTP-клиент может отправлять к нему запросы и анализировать ответы.
Однако вместо создания HTTP-запросов и анализа ответов вручную, вы можете использовать клиентские библиотеки Google API. Эти библиотеки обеспечивают лучшую интеграцию с различными языками программирования, улучшенную безопасность и поддержку вызовов, требующих авторизации пользователя.
Идти
Получите последнюю версию клиентской библиотеки Google Health API для Go . Ознакомьтесь с руководством для разработчиков по этой клиентской библиотеке.
Java
На этой странице представлена информация о начале работы с Google Health API с помощью клиентской библиотеки Google API для Java. Для получения дополнительной информации см. следующую документацию: Выберите среду сборки (Maven или Gradle) на следующих вкладках: Добавьте следующее в ваш файл Все доступные версии можно посмотреть в центральном репозитории Maven . Добавьте следующее в файл Все доступные версии можно посмотреть в центральном репозитории Maven . Добавьте клиентскую библиотеку в свой проект.
pom.xml : build.gradle :
JavaScript
Ознакомьтесь с руководством разработчика для клиентской библиотеки.
.СЕТЬ
На этой странице представлена информация о начале работы с Google Health API с помощью клиентской библиотеки Google API для .NET. Для получения дополнительной информации см. следующую документацию: Установите пакет NuGet: Google.Apis . Загрузка библиотеки
Node.js
Получите последнюю версию клиентской библиотеки Google Health API для Node.js. Ознакомьтесь с руководством для разработчиков по этой клиентской библиотеке.
Объект-С
Получите последнюю версию клиентской библиотеки Google Health API для Objective-C . Ознакомьтесь с руководством разработчика к клиентской библиотеке.
PHP
Получите последнюю версию клиентской библиотеки Google Health API для PHP . Ознакомьтесь с руководством разработчика к клиентской библиотеке.
Python
На этой странице представлена информация о начале работы с Google Health API с помощью клиентской библиотеки Google API для Python (версии 1/2). Для получения дополнительной информации см. следующую документацию: Вы можете либо использовать менеджер пакетов, либо вручную загрузить и установить клиентскую библиотеку Python: Для управления установкой используйте pip или setuptools. Возможно, сначала потребуется запустить Поскольку клиентские библиотеки Python не установлены в среде выполнения App Engine Python , вам необходимо скопировать их в ваше приложение так же, как и библиотеки сторонних разработчиков. Системные требования
Установите клиентскую библиотеку.
Управляемая установка
sudo .pip install --upgrade google-api-python-client
easy_install --upgrade google-api-python-client
Ручная установка
python setup.py install
App Engine
Руби
На этой странице представлена информация о начале работы с Google Health API с помощью клиентской библиотеки Google API для Ruby. Для получения дополнительной информации см. следующую документацию: В зависимости от вашей системы, возможно, вам потребуется добавить перед этими командами префикс Если вы ранее не устанавливали клиентскую библиотеку Google API для Ruby, установите её с помощью Установите гем
google-api-clientsudo .RubyGems :gem install google-api-client
Если у вас уже установлен гем, обновите его до последней версии:
gem update -y google-api-client
Начните работу с клиентской библиотекой Google API для Ruby.
Чтобы узнать, как отправить свой первый запрос, ознакомьтесь с руководством «Начало работы» .
gRPC
API Google Health также поддерживает gRPC для высокопроизводительного получения данных. Помимо установки клиентских библиотек, для использования gRPC необходимо получить определения Protocol Buffers API и сгенерировать заглушечный код на стороне клиента перед отправкой запросов.
- Установите библиотеки gRPC:
- Для установки зависимостей используйте
pip install grpcio grpcio-tools google-auth-oauthlib.
- Для установки зависимостей используйте
- Сгенерируйте клиентский код:
- Получите определения
.protoAPI Google Health (например,data_points.proto). - Для генерации заглушки кода выполните команду
python -m grpc_tools.protoc -I. --python_out=. --grpc_python_out=. path/to/your/data_points.proto.
- Получите определения
- Внедрить 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: Имя хоста для службы 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 и других ошибок.