微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

403 在 Google Fit REST API 中为 com.google.blood_pressure 创建数据源时出错

如何解决403 在 Google Fit REST API 中为 com.google.blood_pressure 创建数据源时出错

目标:

我有一个简单的网络应用程序,用于提交我的血压和心率测量值。 现在我想将这些测量结果提交到我的 Google 健身帐户。

我尝试过 Google 教程:https://developers.google.com/fit/scenarios/write-bp-data

OAuth2 设置

我在现有 Cloud Console 项目之一中创建了新凭据。然后使用以下范围请求新的授权码(项目处于测试状态,我的帐户已注册为测试员):

请求令牌返回以下响应:

{
    "access_token": "ya29.XXXXXXXXXXXXXXXX","expires_in": 3599,"refresh_token": "1//XXXXXXXXXXXXXXXX","scope": "https://www.googleapis.com/auth/fitness.heart_rate.write https://www.googleapis.com/auth/fitness.blood_pressure.write","token_type": "Bearer"
}

如您所见,两个写入范围都被授予。 此外,如果我检查我的 Google 帐户中的权限,则会设置两个范围。

创建数据源

现在我创建了两个数据源(一个用于 com.google.heart_rate.bpm,一个用于 com.google.blood_pressure)。 创建心率数据源按预期工作,但为血压创建数据源返回 403 PERMISSION_DENIED 错误

请求(POST https://www.googleapis.com/fitness/v1/users/me/dataSources

{
    "dataStreamName": "BPA-BloodPressure","type": "raw","application": {
        "detailsUrl": "https://aaa.bbb.ccc","name": "Blood Pressure App","version": "1"
    },"dataType": {
        "name": "com.google.blood_pressure"
    }
}

回复

{
    "error": {
        "code": 403,"message": "Scope not included to modify data of type com.google.blood_pressure. Possible scopes: https://www.googleapis.com/auth/fitness.blood_pressure.write","errors": [
            {
                "message": "Scope not included to modify data of type com.google.blood_pressure. Possible scopes: https://www.googleapis.com/auth/fitness.blood_pressure.write","domain": "global","reason": "forbidden"
            }
        ],"status": "PERMISSION_DENIED"
    }
}

Google Fit REST API 告诉我缺少范围 fitness.blood_pressure.write,但正如您所见,范围是为使用的访问令牌提供的。

注意事项

  • 我正在与 Postman 合作测试所有请求。稍后将使用 Java/Groovy 或 PHP 后端。
  • 我还尝试了两种数据类型的读写范围。
  • 我可以在 Google 健身中的“已连接的应用程序”下看到我的应用程序的两个写入范围。

解决方法

将数据类型名称更改为“fitness.blood_pressure”而不是“com.google.blood_pressure”

身体会像这样。

{
    "dataStreamName": "BPA-BloodPressure","type": "raw","application": {
        "detailsUrl": "https://aaa.bbb.ccc","name": "Blood Pressure App","version": "1"
    },"dataType": {
        "name": "fitness.blood_pressure"
    }
}

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。