oauth2的多个作用域值

oauth2的多个作用域值,oauth,google-api,oauth-2.0,Oauth,Google Api,Oauth 2.0,我尝试发布几个范围值,以允许我的应用程序使用一些谷歌服务 我尝试使用两个输入字段 并带有一个带+分隔符的输入字段 当我发送只有一个作用域的表单时,它就工作了。 否则,使用sereval作用域值,google将使用以下错误描述重定向我: http://localhost:49972/redirect.aspx#error=invalid_request&error_description=OAuth+2+参数+只能+具有+单个+值:+范围和错误\u uri=http://code.goog

我尝试发布几个范围值,以允许我的应用程序使用一些谷歌服务

我尝试使用两个输入字段


并带有一个带+分隔符的输入字段


当我发送只有一个作用域的表单时,它就工作了。 否则,使用sereval作用域值,google将使用以下错误描述重定向我:

http://localhost:49972/redirect.aspx#error=invalid_request&error_description=OAuth+2+参数+只能+具有+单个+值:+范围和错误\u uri=http://code.google.com/apis/accounts/docs/OAuth2.html 
在google with oAuth2中,它使用两个范围值

这是我的密码:


将它们合并到一个字段时,您的思路是正确的 . 请求中应该只有一个范围参数,其值用空格分隔。如果你把它放在这样一个表单中,浏览器会为你编码空间


除了史蒂夫·巴兹尔的答案。当为同一个Google服务应用多个作用域时,作用域的顺序似乎很重要。F.e该字符串按预期工作:

"https://www.googleapis.com/auth/drive https://www.googleapis.com/auth/drive.metadata.readonly"
虽然这个对我不起作用:

"https://www.googleapis.com/auth/drive.metadata.readonly https://www.googleapis.com/auth/drive"

不过,我在文档中没有找到任何相关信息。

我直到明天才有代码,但谢谢你,埃文,如果2017年看起来有点奇怪,你应该使用
value=”https://www.googleapis.com/auth/calendar  给好奇的人发电子邮件“
,将
范围
参数定义为
。范围参数的值表示为空格分隔、区分大小写的字符串列表