Клиентские библиотеки

На этой странице представлены ссылки на удобные способы доступа к 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) на следующих вкладках:

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. Возможно, сначала потребуется запустить 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 не установлены в среде выполнения App Engine Python , вам необходимо скопировать их в ваше приложение так же, как и библиотеки сторонних разработчиков.

Руби

На этой странице представлена ​​информация о начале работы с 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

API Google Health также поддерживает gRPC для высокопроизводительного получения данных. Помимо установки клиентских библиотек, для использования gRPC необходимо получить определения Protocol Buffers API и сгенерировать заглушечный код на стороне клиента перед отправкой запросов.

  1. Установите библиотеки gRPC:
    • Для установки зависимостей используйте pip install grpcio grpcio-tools google-auth-oauthlib .
  2. Сгенерируйте клиентский код:
    • Получите определения .proto API Google Health (например, 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 : Имя хоста для службы 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 и других ошибок.