Google Health API 的访问权限通过 Google Cloud 提供。如需启用 API 并授权 Google 账号,您需要一个 Google Cloud 项目。
无论您是现有的 Fitbit API 开发者,还是 Google Health API 新手,都需要完成此步骤才能调用该 API。
创建项目和 OAuth 客户端
使用启用 API 并获取 OAuth 2.0 客户端 ID 按钮启用 Google Health API 并获取 OAuth 2.0 客户端 ID:
- 如果您有想要用于 Google Health API 的现有 Google Cloud 项目,请先确保您已登录该项目的管理员账号。然后,在点击该按钮后,从可用项目列表中选择现有项目。 否则,请创建一个新项目。
- 当系统询问“您从何处致电?”时,请选择网站服务器。
- 输入 https://www.google.com 作为授权重定向 URI 的值。必须使用重定向 URI 才能通过 OAuth 2.0 获取授权代码。
- 设置完成后,复制 OAuth 2.0 客户端 ID 和客户端密钥值,并将凭据 JSON 下载到本地计算机。
如果您想手动设置 Google Cloud 项目,或再次验证设置并检索凭据,请执行以下操作:
如需详细了解如何使用 Google 控制台设置 OAuth 2.0,请参阅使用 OAuth 2.0 访问 Google API。
添加测试用户
默认情况下,新创建的 OAuth 客户端处于未验证状态,无论出于测试目的还是正式版目的,用户上限均为 100 人。如需在此期间启用授权,您必须手动将每个用户的电子邮件地址添加到项目配置中的“测试用户”列表中。
在受众群体页面上更新测试用户列表:
- 在此页面上,您应该会看到“发布状态”设置为测试,并且“用户类型”设置为外部。
- 在“测试用户”部分下,点击 + 添加用户。输入应允许向您的应用授予健康数据访问权限的任何测试用户的电子邮件地址。
- 点击保存。
如果使用 Google Health API 的用户超过 100 人,则需要完成第三方安全审核。如需了解详情,请参阅 OAuth 应用验证帮助中心。
添加范围
您必须在数据访问页面上指定客户端可以调用的范围:
- 在此页面上,点击添加或移除范围。
- 在“API”列中,搜索“Google Health API”。选择应用所需的范围。
- 选择所有需要的范围后,点击更新返回“数据访问权限”页面。
- 点击保存。
您已完成客户端 ID 的设置,现在应该可以调用 Google Health API 了。
OAuth2 客户端库
如需查看可用于与热门框架集成的 OAuth2 客户端库列表,请参阅使用 OAuth 2.0 访问 Google API。
刷新令牌
为了保持对 Google API 的长期访问权限,而无需用户不断重新进行身份验证,您的应用必须使用刷新令牌。如需了解全面的实现细节(包括所需的特定 HTTP 请求和参数),请参阅 Google Identity Platform 文档。
如需将刷新令牌换成访问令牌,请向 Google OAuth 2.0 令牌端点发出 HTTPS POST 调用。以下代码段展示了请求和响应示例:
请求
curl -L -X POST 'https://oauth2.googleapis.com/token' \ -H 'Content-Type: application/x-www-form-urlencoded' \ -d 'client_id=client-id&client_secret=client-secret&refresh_token=refresh-token&grant_type=refresh_token'
响应
{
"access_token": "access-token",
"expires_in": 3599,
"scope": "scope-list",
"token_type": "Bearer",
"refresh_token": "refresh-token",
"refresh_token_expires_in": 112154
}测试期间的令牌行为
请注意,刷新令牌的行为取决于 Google Cloud 项目的发布状态:
- 测试模式:如果您的 OAuth 权限请求页面配置为“测试”发布状态,则系统发放的刷新令牌是基于时间的,会在 7 天后过期。在此期间,您将收到一个刷新令牌,该令牌将保持有效,并且可用于获取新的访问令牌,直到达到其失效日期为止。
- 发布模式:应用移至“正式版”状态后,刷新令牌通常不会过期,除非被撤消或长时间(通常为六个月)未使用。
为确保用户体验顺畅,请务必在应用移至生产环境之前发布应用,以免出现 7 天令牌过期的情况。