本页提供了指向访问 Google Health API 的便捷方式的链接。
Google Health API 客户端库
Google Health API 基于 HTTP 和 JSON 构建,因此任何标准 HTTP 客户端都可以向其发送请求并解析响应。
不过,您可能并不想手动创建 HTTP 请求以及解析响应,而是想使用 Google API 客户端库。使用客户端库具有多项优势,例如更好的语言集成,更高的安全性,以及支持进行需要用户授权的调用。
Go
获取最新的 Go 版 Google Health API 客户端库。阅读该客户端库的开发者指南。
Java
此页面包含有关通过 Java 版 Google API 客户端库开始使用 Google Health API 的信息。如需了解详情,请参阅以下文档:
将客户端库添加到您的项目中
从以下标签页中选择构建环境(Maven 或 Gradle):
请将以下内容添加到 pom.xml 文件:
请将以下内容添加到 build.gradle 文件:
JavaScript
阅读该客户端库的开发者指南。
.NET
此页面包含有关通过 .NET 版 Google API 客户端库开始使用 Google Health API 的信息。如需了解详情,请参阅以下文档:
下载库
安装 NuGet 软件包:Google.Apis。
Node.js
获取最新的 Node.js 版 Google Health API 客户端库。阅读该客户端库的开发者指南。
Obj-C
获取最新的 Objective-C 版 Google Health API 客户端库。阅读该客户端库的开发者指南。
PHP
获取最新的 PHP 版 Google Health API 客户端库。阅读该客户端库的开发者指南。
Python
此页面包含有关通过 Python 版 Google API 客户端库 (v1/v2) 开始使用 Google Health API 的信息。如需了解详情,请参阅以下文档:
系统要求
- 操作系统:
- Linux
- macOS X
- Windows
- v1 客户端库需要 Python 2.7 或更高版本。v2 客户端库需要 Python 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
由于 App Engine Python 运行时环境中未安装 Python 客户端库,因此您必须像使用第三方库一样将这些库复制到您的应用中。
Ruby
此页面包含有关通过 Ruby 版 Google API 客户端库开始使用 Google Health API 的信息。如需了解详情,请参阅以下文档:
安装 google-api-client gem
您可能需要在这些命令前面加上 sudo,具体取决于您的系统。
如果您之前未安装过 Ruby 版 Google API 客户端库,请使用 RubyGems 进行安装:
gem install google-api-client
如果您已安装 gem,请更新至最新版本:
gem update -y google-api-client
Ruby 版 Google API 客户端库使用入门
如需了解如何发出第一个请求,请参阅入门指南。
gRPC
Google Health API 还支持 gRPC,以实现高性能的数据检索。除了安装客户端库之外,使用 gRPC 还需要获取 API 的协议缓冲区定义,并在发出请求之前生成客户端桩代码。
- 安装 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以生成桩代码。
- 获取 Google Health API
- 实现 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:Google Health gRPC 服务的主机名。
get_credentials():- 从文件中加载客户端密钥,使用
google-auth-oauthlib中的InstalledAppFlow管理授权,尝试加载存储的凭据,或在需要时启动 OAuth 2.0 流程。
- 从文件中加载客户端密钥,使用
fetch_health_data_grpc():- 使用用户的凭据创建经过身份验证的安全 gRPC 渠道。
- 使用渠道初始化
DataPointsServiceStub。 - 创建
ListDataPointsRequest以请求users/me的步数数据。 - 调用
ListDataPointsRPC 方法并打印响应。
- 错误处理:该代码包含用于处理 gRPC 和其他错误的基本
try...except代码块。