Oauth 2.0 Soundcloud OAuth2 API:在用户连接后获取无效的\u作用域错误

Oauth 2.0 Soundcloud OAuth2 API:在用户连接后获取无效的\u作用域错误,oauth-2.0,soundcloud,Oauth 2.0,Soundcloud,我正在尝试实现Soundcloud connect,但遇到了一个奇怪的问题 我要做的第一件事是将我的用户发送到 https://soundcloud.com/connect?client_id=MY_CLIENT_ID&redirect_uri=http://myredirecturl.example.com&state=RANDOM_STRING&display=page&response_type=code&scope=email 当用户连接时,他们

我正在尝试实现Soundcloud connect,但遇到了一个奇怪的问题

我要做的第一件事是将我的用户发送到

https://soundcloud.com/connect?client_id=MY_CLIENT_ID&redirect_uri=http://myredirecturl.example.com&state=RANDOM_STRING&display=page&response_type=code&scope=email
当用户连接时,他们会被重定向到

http://myredirecturl.example.com?error=invalid_scope&error_description=The+requested+scope+is+invalid%2C+unknown%2C+or+malformed.&state=RANDOM_STRING
如果我使用
scope=*
,也会发生同样的情况

但是,如果我使用
scope=non-expiring
它可以让我通过,但是我需要用户的电子邮件,并且这种类型的scope没有足够的授权

我认为这与我的应用程序处于开发模式有关,但是


谢谢。

并非所有集成都可以使用“电子邮件”范围。它用于一些定制集成,为我们提供了公认的服务条款/隐私政策。使用SoundCloudAPI无法获取用户的电子邮件地址

但是,您应该能够使用“*”作用域来获取过期的访问令牌。我将与我们的应用程序团队核实,以了解这会给您带来错误的原因。我将编辑我的答案,一旦我有更多的信息


出于您的目的,我将继续使用“非过期”范围,并简单地提示用户输入他们的电子邮件地址(为他们提供一种同意您的使用条款/隐私信息的方式)。

使用
范围=*
有时不起作用,因为url编码不正确。如果您在使用
*
通配符时遇到此错误,请尝试使用(对于PHP)之类的函数对url进行正确编码

谢谢你,保罗。正如我通过电子邮件所说的:这个想法是让用户使用Facebook、Twitter和Soundcloud登录到我的网站(只需要一封电子邮件和一个密码)。在实施过程中,我注意到Twitter不会给我用户电子邮件,所以我放弃了它,因为让用户使用外部服务连接到自己的网站的全部目的是为了加快注册过程(不是吗?)。如果我仍然需要询问他们的电子邮件地址,那么这一点就失去了意义。