Java Uber API:请求或发出令牌时指定多个作用域返回无效的请求参数

Java Uber API:请求或发出令牌时指定多个作用域返回无效的请求参数,java,oauth,oauth-2.0,Java,Oauth,Oauth 2.0,我知道OAuth 2.0规范允许在请求或发出令牌时指定多个作用域,但Uber不喜欢多个作用域 例如: 1)[无错误] 参数={ 'response_type': 'code', 'redirect_uri': 'INSERT_ROUTE_TO_STEP_TWO', 'scope': 'profile', 'response_type': 'code', 'redirect_uri': 'INSERT_ROUTE_TO_STEP_TWO', 'scope': 'profile%20history

我知道OAuth 2.0规范允许在请求或发出令牌时指定多个作用域,但Uber不喜欢多个作用域

例如:

1)[无错误]

参数={

'response_type': 'code',
'redirect_uri': 'INSERT_ROUTE_TO_STEP_TWO',
'scope': 'profile',
'response_type': 'code',
'redirect_uri': 'INSERT_ROUTE_TO_STEP_TWO',
'scope': 'profile%20history',
}

返回正确的令牌,我可以通过“”检索用户配置文件

2)[错误]

参数={

'response_type': 'code',
'redirect_uri': 'INSERT_ROUTE_TO_STEP_TWO',
'scope': 'profile',
'response_type': 'code',
'redirect_uri': 'INSERT_ROUTE_TO_STEP_TWO',
'scope': 'profile%20history',
}

Uber返回“无效的请求参数”。我尝试了“范围”:“配置文件%20history”和“范围”:“配置文件历史”。这两种情况都返回相同的错误

我是一名Android开发人员,将其用作测试


谢谢

我相信您现在已经解决了这个问题,但是您正在使用一个空格来分隔范围参数,并且api调用了逗号

作用域使用空格分隔符

您应该将作用域作为
'scope':'profile history'
传递,并让底层http库处理URI转换,而不是自己显式地进行转换