Google oauth 403在google Fit REST API中为com.google.blood_pressure创建数据源时出错
目标: 我有一个简单的web应用程序,我可以在其中提交血压和心率测量值。 现在,我想将这些测量数据提交到我的Google Fit帐户 我试过谷歌教程: OAuth2设置 我在现有的一个云控制台项目中创建了新凭据。然后使用以下作用域请求新的授权代码(项目处于测试状态,我的帐户注册为tester):Google oauth 403在google Fit REST API中为com.google.blood_pressure创建数据源时出错,google-oauth,google-fit,google-fit-api,Google Oauth,Google Fit,Google Fit Api,目标: 我有一个简单的web应用程序,我可以在其中提交血压和心率测量值。 现在,我想将这些测量数据提交到我的Google Fit帐户 我试过谷歌教程: OAuth2设置 我在现有的一个云控制台项目中创建了新凭据。然后使用以下作用域请求新的授权代码(项目处于测试状态,我的帐户注册为tester): 请求令牌将返回以下响应: { "access_token": "ya29.XXXXXXXXXXXXXXXX", "expires
{
"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\u rate.bpm,一个用于com.google.blood\u pressure)。
创建心率数据源按预期工作,但创建血压数据源会返回403权限\u拒绝错误:
请求(员额)
回应
{
"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缺失,但正如您所看到的,范围是为所使用的访问令牌提供的
注释
- 我正在和邮递员一起测试所有的请求。稍后将使用Java/Groovy或PHP后端
- 我还尝试了这两种数据类型的读写作用域
- 我可以在“已连接的应用程序”下的Google Fit中看到我的应用程序具有两个写入范围
{
"dataStreamName": "BPA-BloodPressure",
"type": "raw",
"application": {
"detailsUrl": "https://aaa.bbb.ccc",
"name": "Blood Pressure App",
"version": "1"
},
"dataType": {
"name": "fitness.blood_pressure"
}
}
将数据类型名称更改为“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"
}
}
仔细检查您使用的访问令牌是否具有corect权限。仔细检查您使用的访问令牌是否具有corect权限。