首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在Google中为dataSource创建com.google.blood_pressure错误

在Google中为dataSource创建com.google.blood_pressure错误
EN

Stack Overflow用户
提问于 2021-01-03 08:59:26
回答 1查看 291关注 0票数 1

目标:

我有一个简单的网络应用程序,在那里我提交我的血压和心率测量。现在我想把这些测量结果提交给我的Google帐户。

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

OAuth2安装

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

请求令牌将返回以下响应:

代码语言:javascript
复制
{
    "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"
}

如您所见,这两个写入作用域都被授予。此外,如果我检查我的谷歌帐户的权限,这两个作用域将被设置。

创建dataSource

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

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

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

响应

代码语言:javascript
复制
{
    "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"
    }
}

告诉我,范围fitness.blood_pressure.write丢失了,但是正如您所看到的,这个作用域是为使用的访问令牌提供的。

Notes

  • 我正在和邮递员一起测试所有的请求。稍后将使用Java/Groovy或PHP后端。
  • 我还尝试为这两种数据类型使用读和写作用域。
  • 我可以看到我的应用程序在Google中的两个写入作用域都在“连接的应用程序”下。

EN

回答 1

Stack Overflow用户

发布于 2021-04-09 12:52:54

将dataType名称改为"fitness.blood_pressure“而不是"com.google.blood_pressure”

身体会是这样的。

代码语言:javascript
复制
{
    "dataStreamName": "BPA-BloodPressure",
    "type": "raw",
    "application": {
        "detailsUrl": "https://aaa.bbb.ccc",
        "name": "Blood Pressure App",
        "version": "1"
    },
    "dataType": {
        "name": "fitness.blood_pressure"
    }
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/65548122

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档